From b7680a66385dde34c8e8dbdeafc22156425cb38c Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 26 Jun 2018 10:16:37 -0300 Subject: mingw32: do not link Lua statically --- src/luarocks/deps.lua | 6 ++++++ src/luarocks/fun.lua | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/luarocks/deps.lua b/src/luarocks/deps.lua index 8abde2c2..90c7b3d9 100644 --- a/src/luarocks/deps.lua +++ b/src/luarocks/deps.lua @@ -6,6 +6,7 @@ local cfg = require("luarocks.core.cfg") local manif = require("luarocks.manif") local path = require("luarocks.path") local dir = require("luarocks.dir") +local fun = require("luarocks.fun") local util = require("luarocks.util") local vers = require("luarocks.core.vers") local queries = require("luarocks.queries") @@ -370,6 +371,11 @@ local function check_external_dependency(name, ext_files, vars, mode) local err_testfile for _, extdir in ipairs(cfg.external_deps_dirs) do local dirs = get_external_deps_dirs(mode) + if cfg.is_platform("mingw32") and name == "LUA" then + dirs.LIBDIR.pattern = fun.filter(util.deep_copy(dirs.LIBDIR.pattern), function(s) + return not s:match("%.a$") + end) + end local ok ok, err_dirname, err_testfile = check_external_dependency_at(extdir, name, ext_files, vars, dirs, err_files) if ok then diff --git a/src/luarocks/fun.lua b/src/luarocks/fun.lua index a4dc6840..9ba02bf5 100644 --- a/src/luarocks/fun.lua +++ b/src/luarocks/fun.lua @@ -31,6 +31,17 @@ function fun.map(xs, f) return rs end +function fun.filter(xs, f) + local rs = {} + for i = 1, #xs do + local v = xs[i] + if f(v) then + rs[#rs+1] = v + end + end + return rs +end + function fun.traverse(t, f) return fun.map(t, function(x) return type(x) == "table" and fun.traverse(x, f) or f(x) -- cgit v1.2.3-55-g6feb