summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-06-22 23:17:06 +0800
committerruki <[email protected]>2020-06-22 13:42:41 +0800
commitce6d63d5a4ea3df28fc21db6b4501d4b65480584 (patch)
treefd1ab981ab8c102c173a4679fcbac218f6c79311
parent4e18de04e01386bf7304bbf9d08ec826a1fa6285 (diff)
fix mingw/gcc envs
-rw-r--r--xmake/modules/core/tools/ar.lua3
-rw-r--r--xmake/modules/core/tools/gcc.lua3
-rw-r--r--xmake/modules/core/tools/ml.lua4
-rw-r--r--xmake/modules/core/tools/rc.lua4
-rw-r--r--xmake/modules/detect/tools/gcc/features.lua2
-rw-r--r--xmake/modules/detect/tools/gcc/has_flags.lua12
6 files changed, 14 insertions, 14 deletions
diff --git a/xmake/modules/core/tools/ar.lua b/xmake/modules/core/tools/ar.lua
index 576d40695..3e520f887 100644
--- a/xmake/modules/core/tools/ar.lua
+++ b/xmake/modules/core/tools/ar.lua
@@ -71,7 +71,8 @@ function link(self, objectfiles, targetkind, targetfile, flags)
os.tryrm(targetfile)
-- link it
- os.runv(linkargv(self, objectfiles, targetkind, targetfile, flags))
+ local program, argv = linkargv(self, objectfiles, targetkind, targetfile, flags)
+ os.runv(program, argv, {envs = self:runenvs()})
end
-- extract the static library to object directory
diff --git a/xmake/modules/core/tools/gcc.lua b/xmake/modules/core/tools/gcc.lua
index 04839ceaf..4e16875c9 100644
--- a/xmake/modules/core/tools/gcc.lua
+++ b/xmake/modules/core/tools/gcc.lua
@@ -424,7 +424,8 @@ function compile(self, sourcefile, objectfile, dependinfo, flags)
end
-- do compile
- return os.iorunv(compargv(self, sourcefile, objectfile, compflags))
+ local program, argv = compargv(self, sourcefile, objectfile, compflags)
+ return os.iorunv(program, argv, {envs = self:runenvs()})
end,
catch
{
diff --git a/xmake/modules/core/tools/ml.lua b/xmake/modules/core/tools/ml.lua
index a6523243d..3d6fb7c18 100644
--- a/xmake/modules/core/tools/ml.lua
+++ b/xmake/modules/core/tools/ml.lua
@@ -96,7 +96,7 @@ function compargv(self, sourcefile, objectfile, flags)
end
-- compile the source file
-function compile(self, sourcefile, objectfile, dependinfo, flags, opt)
+function compile(self, sourcefile, objectfile, dependinfo, flags)
-- ensure the object directory
os.mkdir(path.directory(objectfile))
@@ -106,7 +106,7 @@ function compile(self, sourcefile, objectfile, dependinfo, flags, opt)
function ()
-- @note we need not uses vstool.runv to enable unicode output for ml.exe
local program, argv = compargv(self, sourcefile, objectfile, flags)
- os.runv(program, argv, {envs = opt.envs})
+ os.runv(program, argv, {envs = self:runenvs()})
end,
catch
{
diff --git a/xmake/modules/core/tools/rc.lua b/xmake/modules/core/tools/rc.lua
index 4d5d79a86..a0379ca57 100644
--- a/xmake/modules/core/tools/rc.lua
+++ b/xmake/modules/core/tools/rc.lua
@@ -49,7 +49,7 @@ function compargv(self, sourcefile, objectfile, flags)
end
-- compile the source file
-function compile(self, sourcefile, objectfile, dependinfo, flags, opt)
+function compile(self, sourcefile, objectfile, dependinfo, flags)
-- ensure the object directory
os.mkdir(path.directory(objectfile))
@@ -60,7 +60,7 @@ function compile(self, sourcefile, objectfile, dependinfo, flags, opt)
function ()
-- @note we need not uses vstool.iorunv to enable unicode output for rc.exe
local program, argv = compargv(self, sourcefile, objectfile, flags)
- local outdata, errdata = os.iorunv(program, argv, {envs = opt.envs})
+ local outdata, errdata = os.iorunv(program, argv, {envs = self:runenvs()})
return (outdata or "") .. (errdata or "")
end,
catch
diff --git a/xmake/modules/detect/tools/gcc/features.lua b/xmake/modules/detect/tools/gcc/features.lua
index 6f339f664..ad4cb3214 100644
--- a/xmake/modules/detect/tools/gcc/features.lua
+++ b/xmake/modules/detect/tools/gcc/features.lua
@@ -32,7 +32,7 @@ function _get_macro_defines(snippets, extension, opt)
-- get defines
local results = {}
- local defines = try { function () return os.iorunv(opt.program, table.join(opt.flags or {}, {"-dM", "-E", sourcefile})) end }
+ local defines = try { function () return os.iorunv(opt.program, table.join(opt.flags or {}, {"-dM", "-E", sourcefile}), {envs = opt.envs}) end }
if defines then
for _, define in ipairs(defines:split("\n")) do
local name = define:match("#define%s+(.-)%s+")
diff --git a/xmake/modules/detect/tools/gcc/has_flags.lua b/xmake/modules/detect/tools/gcc/has_flags.lua
index 28b4cd254..04956998b 100644
--- a/xmake/modules/detect/tools/gcc/has_flags.lua
+++ b/xmake/modules/detect/tools/gcc/has_flags.lua
@@ -37,11 +37,9 @@ function _islinker(flags, opt)
end
-- try running
-function _try_running(...)
-
- local argv = {...}
+function _try_running(program, argv, opt)
local errors = nil
- return try { function () os.runv(unpack(argv)); return true end, catch { function (errs) errors = (errs or ""):trim() end }}, errors
+ return try { function () os.runv(program, argv, opt); return true end, catch { function (errs) errors = (errs or ""):trim() end }}, errors
end
-- attempt to check it from the argument list
@@ -67,7 +65,7 @@ function _check_from_arglist(flags, opt, islinker)
-- get argument list
allflags = {}
- local arglist = os.iorunv(opt.program, {"--help"})
+ local arglist = os.iorunv(opt.program, {"--help"}, {envs = opt.envs})
if arglist then
for arg in arglist:gmatch("%s+(%-[%-%a%d]+)%s+") do
allflags[arg] = true
@@ -98,12 +96,12 @@ function _check_try_running(flags, opt, islinker)
-- check flags for linker
if islinker then
- return _try_running(opt.program, table.join(flags, "-o", os.tmpfile(), sourcefile))
+ return _try_running(opt.program, table.join(flags, "-o", os.tmpfile(), sourcefile), opt)
end
-- check flags for compiler
-- @note we cannot use os.nuldev() as the output file, maybe run failed for some flags, e.g. --coverage
- return _try_running(opt.program, table.join(flags, "-S", "-o", os.tmpfile(), sourcefile))
+ return _try_running(opt.program, table.join(flags, "-S", "-o", os.tmpfile(), sourcefile), opt)
end
-- has_flags(flags)?