mirror of
https://github.com/koreader/koreader
synced 2024-11-13 19:11:25 +00:00
d350418367
We *do* actually use the optional global argument sometime... Namely, for librt in ffi/posix_h. c.f., https://github.com/koreader/koreader-base/pull/1586#issuecomment-1637184501
33 lines
1.0 KiB
Lua
33 lines
1.0 KiB
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")
|
|
require("ffi/posix_h")
|
|
local C = ffi.C
|
|
if ffi.os == "Windows" then
|
|
C._putenv("PATH=libs;common;")
|
|
end
|
|
local ffi_load = ffi.load
|
|
-- patch ffi.load for thirdparty luajit libraries
|
|
ffi.load = function(lib, global)
|
|
io.write("ffi.load: ", lib, global and " (RTLD_GLOBAL)\n" or "\n")
|
|
local loaded, re = pcall(ffi_load, lib)
|
|
if loaded then return re end
|
|
|
|
local lib_path = package.searchpath(lib, "./lib?.so;./libs/lib?.so;./libs/lib?.so.1;./rocks/lib/lua/5.1/lib?.so")
|
|
|
|
if not lib_path then
|
|
io.write("ffi.load (warning): ", re, "\n")
|
|
error("Not able to load dynamic library: " .. lib)
|
|
else
|
|
io.write("ffi.load (assisted searchpath): ", lib_path, "\n")
|
|
return ffi_load(lib_path, global)
|
|
end
|
|
end
|