diff --git a/luametalatex-init.lua b/luametalatex-init.lua index 0f20008..ff66bf5 100644 --- a/luametalatex-init.lua +++ b/luametalatex-init.lua @@ -1,7 +1,18 @@ do local ourpath ourpath, texconfig.formatname = lua.startupfile:match('(.*[/\\])([^/\\]*)%-init%.lua$') - kpse = assert(package.loadlib(ourpath .. 'kpse.' .. (os.type == 'windows' and 'dll' or 'so'), 'luaopen_kpse'))() + local function try_lib(name) + local path = string.format('%s%s.%s', ourpath, name, + os.type == 'windows' and 'dll' or 'so') + return package.loadlib(path, '*') and path + end + local library = try_lib'luametalatex' or try_lib'kpse' + if not library then + error[[C support library not found. Please fix your installation]] + end + kpse = assert(package.loadlib(library, 'luaopen_luametalatex_kpse') or package.loadlib(library, 'luaopen_kpse'))() + package.loaded.kpse = kpse + package.preload.luaharfbuzz = package.loadlib(library, 'luaopen_luametalatex_harfbuzz') or package.loadlib(library, 'luaopen_luametalatex_harfbuzz') or nil end do local arg_pattern = '-' * lpeg.P'-'^-1 * lpeg.C((1-lpeg.P'=')^1) * ('=' * lpeg.C(lpeg.P(1)^0) + lpeg.Cc(true)) diff --git a/luametalatex.so b/luametalatex.so new file mode 100755 index 0000000..d076ed1 Binary files /dev/null and b/luametalatex.so differ