summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xmake/modules/detect/tools/cl/has_flags.lua3
-rw-r--r--xmake/modules/detect/tools/gcc/has_flags.lua3
-rw-r--r--xmake/rules/c++/modules/modules_support/clang.lua4
3 files changed, 6 insertions, 4 deletions
diff --git a/xmake/modules/detect/tools/cl/has_flags.lua b/xmake/modules/detect/tools/cl/has_flags.lua
index ceb3561d4..fe57e38b0 100644
--- a/xmake/modules/detect/tools/cl/has_flags.lua
+++ b/xmake/modules/detect/tools/cl/has_flags.lua
@@ -83,7 +83,8 @@ end
function main(flags, opt)
-- attempt to check it from the argument list
- if _check_from_arglist(flags, opt) then
+ opt = opt or {}
+ if not opt.tryrun and _check_from_arglist(flags, opt) then
return true
end
diff --git a/xmake/modules/detect/tools/gcc/has_flags.lua b/xmake/modules/detect/tools/gcc/has_flags.lua
index f7cf1d29e..b8e63423a 100644
--- a/xmake/modules/detect/tools/gcc/has_flags.lua
+++ b/xmake/modules/detect/tools/gcc/has_flags.lua
@@ -101,10 +101,11 @@ end
function main(flags, opt)
-- is linker?
+ opt = opt or {}
local islinker = _islinker(flags, opt)
-- attempt to check it from the argument list
- if _check_from_arglist(flags, opt, islinker) then
+ if not opt.tryrun and _check_from_arglist(flags, opt, islinker) then
return true
end
diff --git a/xmake/rules/c++/modules/modules_support/clang.lua b/xmake/rules/c++/modules/modules_support/clang.lua
index 0095444ed..b00d059b9 100644
--- a/xmake/rules/c++/modules/modules_support/clang.lua
+++ b/xmake/rules/c++/modules/modules_support/clang.lua
@@ -371,8 +371,8 @@ function has_headerunitsupport(target)
local support_headerunits = _g.support_headerunits
if support_headerunits == nil then
local compinst = target:compiler("cxx")
- if compinst:has_flags("-x c++-user-header", "cxxflags", {flagskey = "clang_user_header_unit_support"}) and
- compinst:has_flags("-x c++-system-header", "cxxflags", {flagskey = "clang_system_header_unit_support"}) then
+ if compinst:has_flags("-x c++-user-header", "cxxflags", {flagskey = "clang_user_header_unit_support", tryrun = true}) and
+ compinst:has_flags("-x c++-system-header", "cxxflags", {flagskey = "clang_system_header_unit_support", tryrun = true}) then
support_headerunits = true
end
_g.support_headerunits = support_headerunits or false