diff options
author | Thijs Schreijer <thijs@thijsschreijer.nl> | 2013-05-02 20:41:03 +0200 |
---|---|---|
committer | Thijs Schreijer <thijs@thijsschreijer.nl> | 2013-05-02 20:41:03 +0200 |
commit | 0d8edd1fe84f57cbbde28c3ae8dd94f5cd537834 (patch) | |
tree | 738a16108bcaa234ef2bc13fb33d2a2c1247a1fb /install.bat | |
parent | 5d6292787b62bdb47516a50f2a983a631ccd08c1 (diff) | |
download | luarocks-0d8edd1fe84f57cbbde28c3ae8dd94f5cd537834.tar.gz luarocks-0d8edd1fe84f57cbbde28c3ae8dd94f5cd537834.tar.bz2 luarocks-0d8edd1fe84f57cbbde28c3ae8dd94f5cd537834.zip |
fix; no longer check link lib when interpreter has no runtime specified, but list all dll's interpreter depends upon and check those for the runtime (1 level deep only)
Diffstat (limited to 'install.bat')
-rw-r--r-- | install.bat | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/install.bat b/install.bat index 5bed6bbd..e1e7cb76 100644 --- a/install.bat +++ b/install.bat | |||
@@ -264,6 +264,9 @@ local function look_for_headers (directory) | |||
264 | return false | 264 | return false |
265 | end | 265 | end |
266 | 266 | ||
267 | -- Checks a binary file for the runtime dll used by it. If nu runtime is found, it returns an | ||
268 | -- array of dll's is depends upon. | ||
269 | -- result: string = runtime used, table = list of dll's depended upon, nil = nothing found. | ||
267 | local function get_file_runtime(p,f) -- path, filename | 270 | local function get_file_runtime(p,f) -- path, filename |
268 | local infile = p.."\\"..f | 271 | local infile = p.."\\"..f |
269 | local outfile = "output.txt" | 272 | local outfile = "output.txt" |
@@ -293,6 +296,12 @@ local function get_file_runtime(p,f) -- path, filename | |||
293 | print(" "..f.." uses "..tostring(result)..".DLL as runtime") | 296 | print(" "..f.." uses "..tostring(result)..".DLL as runtime") |
294 | else | 297 | else |
295 | print(" No runtime found for "..f) | 298 | print(" No runtime found for "..f) |
299 | -- so; create a list of dll's this file is depending upon, next level of the tree | ||
300 | result = {} | ||
301 | for name in content:gmatch("DLL NAME%: (.-%.DLL)") do | ||
302 | --print("found dll:", name) | ||
303 | table.insert(result, name) | ||
304 | end | ||
296 | end | 305 | end |
297 | return result | 306 | return result |
298 | end | 307 | end |
@@ -300,11 +309,19 @@ end | |||
300 | local function get_runtime() | 309 | local function get_runtime() |
301 | -- first check interpreter | 310 | -- first check interpreter |
302 | vars.LUA_RUNTIME = get_file_runtime(vars.LUA_BINDIR, vars.LUA_INTERPRETER) | 311 | vars.LUA_RUNTIME = get_file_runtime(vars.LUA_BINDIR, vars.LUA_INTERPRETER) |
303 | if not vars.LUA_RUNTIME then | 312 | if type(vars.LUA_RUNTIME) == "table" then |
304 | -- not found, check link library | 313 | -- a table with dll's depended upon was returned, check this list |
305 | vars.LUA_RUNTIME = get_file_runtime(vars.LUA_LIBDIR, vars.LUA_LIBNAME) | 314 | -- note: we only check 1 level deep |
315 | for _,dll in ipairs(vars.LUA_RUNTIME) do | ||
316 | local t = get_file_runtime(vars.LUA_BINDIR, dll) | ||
317 | if type(t) == "string" then | ||
318 | -- found it | ||
319 | vars.LUA_RUNTIME = t | ||
320 | break | ||
321 | end | ||
322 | end | ||
306 | end | 323 | end |
307 | return (vars.LUA_RUNTIME ~= nil) | 324 | return (type(vars.LUA_RUNTIME) == "string") |
308 | end | 325 | end |
309 | 326 | ||
310 | local function look_for_lua_install () | 327 | local function look_for_lua_install () |