update swig on windows
This commit is contained in:
42
winx64/bin/swigwin-4.0.0/Examples/lua/import.lua
Normal file
42
winx64/bin/swigwin-4.0.0/Examples/lua/import.lua
Normal file
@@ -0,0 +1,42 @@
|
||||
-- import
|
||||
-- the lua 5.0 loading mechanism is rather poor & relies upon the loadlib() fn
|
||||
-- the lua 5.1 loading mechanism is simplicity itself
|
||||
-- for now we need a bridge which will use the correct version
|
||||
|
||||
function import_5_0(module)
|
||||
-- imports the file into the program
|
||||
-- for a module 'example'
|
||||
-- this must load 'example.dll' or 'example.so'
|
||||
-- and look for the fn 'Example_Init()' (note the capitalisation)
|
||||
if rawget(_G,module)~=nil then return end -- module appears to be loaded
|
||||
|
||||
-- capitalising the first letter
|
||||
local c=string.upper(string.sub(module,1,1))
|
||||
local fnname=c..string.sub(module,2).."_Init"
|
||||
|
||||
local suffix,lib
|
||||
-- note: as there seems to be no way in lua to determine the platform
|
||||
-- we will try loading all possible names
|
||||
-- providing one works, we can load
|
||||
for _,suffix in pairs{".dll",".so"} do
|
||||
lib=loadlib(module..suffix,fnname)
|
||||
if lib then -- found
|
||||
break
|
||||
end
|
||||
end
|
||||
assert(lib,"error loading module:"..module)
|
||||
|
||||
lib() -- execute the function: initialising the lib
|
||||
local m=rawget(_G,module) -- gets the module object
|
||||
assert(m~=nil,"no module table found")
|
||||
end
|
||||
|
||||
function import_5_1(module)
|
||||
require(module)
|
||||
end
|
||||
|
||||
if string.sub(_VERSION,1,7)=='Lua 5.0' then
|
||||
import=import_5_0
|
||||
else
|
||||
import=import_5_1
|
||||
end
|
||||
Reference in New Issue
Block a user