diff options
| author | ruki <[email protected]> | 2020-06-22 23:17:06 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-06-22 13:42:41 +0800 |
| commit | ce6d63d5a4ea3df28fc21db6b4501d4b65480584 (patch) | |
| tree | fd1ab981ab8c102c173a4679fcbac218f6c79311 /xmake/modules/detect/tools | |
| parent | 4e18de04e01386bf7304bbf9d08ec826a1fa6285 (diff) | |
fix mingw/gcc envs
Diffstat (limited to 'xmake/modules/detect/tools')
| -rw-r--r-- | xmake/modules/detect/tools/gcc/features.lua | 2 | ||||
| -rw-r--r-- | xmake/modules/detect/tools/gcc/has_flags.lua | 12 |
2 files changed, 6 insertions, 8 deletions
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)? |
