From 12e7b9e5ee00041d0695863f5d4c639a2fe8f760 Mon Sep 17 00:00:00 2001 From: Vasek Sraier Date: Mon, 27 Jan 2020 14:42:15 +0100 Subject: [PATCH] sysrepo-lua: fixed absolute path shared object loading from within Lua --- modules/sysrepo-lua/{ffi.lua => ffi.lua.in} | 7 +++---- modules/sysrepo-lua/meson.build | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) rename modules/sysrepo-lua/{ffi.lua => ffi.lua.in} (97%) diff --git a/modules/sysrepo-lua/ffi.lua b/modules/sysrepo-lua/ffi.lua.in similarity index 97% rename from modules/sysrepo-lua/ffi.lua rename to modules/sysrepo-lua/ffi.lua.in index 355dcb149..6fcfc16dc 100644 --- a/modules/sysrepo-lua/ffi.lua +++ b/modules/sysrepo-lua/ffi.lua.in @@ -1,8 +1,7 @@ local ffi = require("ffi") --- FIXME remove absolute path --- the load opens the file relative to CWD. That could be anywhere. So we need to know, where is knot installed. -local clib = ffi.load("/tmp/kr/lib/knot-resolver/kres_modules/sysrepo-lua/cbindings.so") +-- The exact path is configured during project build by meson +local clib = ffi.load("@modules_dir@/sysrepo-lua/cbindings.so") ------------------------------------------------------------------------------- -- FFI initialization @@ -110,7 +109,7 @@ else _KNOT_SYSREPO_FFI_INITIALIZED = true end --- TODO version check so that we cant load new module into an old Knot +-- TODO version check so that we can not load new module into an old Knot ------------------------------------------------------------------------------- -- Data convertsion helpers diff --git a/modules/sysrepo-lua/meson.build b/modules/sysrepo-lua/meson.build index e8ad92316..9391753db 100644 --- a/modules/sysrepo-lua/meson.build +++ b/modules/sysrepo-lua/meson.build @@ -1,9 +1,18 @@ # lua module: sysrepo-lua -sysrepo_lua_src = files([ - 'ffi.lua', - 'init.lua', -]) +lua_config = configuration_data() +lua_config.set('modules_dir', modules_dir) + +ffi = configure_file( + input: 'ffi.lua.in', + output: 'ffi.lua', + configuration: lua_config, +) + +sysrepo_lua_src = [ + ffi, + files('init.lua'), +] sysrepo_src = files([ 'cbindings/sysrepo_clib.h', -- 2.47.2