2
0
mirror of https://github.com/koreader/koreader synced 2024-10-31 21:20:20 +00:00
koreader/setupkoenv.lua
Qingping Hou dae4a5a413 refactor: move bootstrap code into setupkoenv.lua
add ffi.load patch
add kodev prompt command
2016-11-12 23:48:56 -08:00

32 lines
890 B
Lua

-- set search path for 'require()'
package.path =
"common/?.lua;rocks/share/lua/5.1/?.lua;frontend/?.lua;" ..
package.path
package.cpath =
"common/?.so;common/?.dll;/usr/lib/lua/?.so;rocks/lib/lua/5.1/?.so;" ..
package.cpath
-- set search path for 'ffi.load()'
local ffi = require("ffi")
ffi.cdef[[
char *getenv(const char *name);
int putenv(const char *envvar);
int _putenv(const char *envvar);
]]
if ffi.os == "Windows" then
ffi.C._putenv("PATH=libs;common;")
end
local ffi_load = ffi.load
-- patch ffi.load for thirdparty luajit libraries
ffi.load = function(lib)
local loaded, re = pcall(ffi_load, lib)
if loaded then return re end
local lib_path = package.searchpath(lib, "./lib?.so;./libs/lib?.so")
if not lib_path then
error('Not able to load dynamic library: ' .. lib)
else
return ffi_load(lib_path)
end
end