summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules
diff options
context:
space:
mode:
authorArthur LAURENT <[email protected]>2023-01-07 17:44:36 +0100
committerArthur LAURENT <[email protected]>2023-01-07 17:44:36 +0100
commit3755a6f67399b8e42df9f39ec7c506918dbb433a (patch)
tree6fdf938868f75790e828c86e64319d0c558885d1 /xmake/rules/c++/modules
parent887d301d4117d9fcb36077441fa75fb704e322fc (diff)
reenable old clang modules by default and fix tests
Diffstat (limited to 'xmake/rules/c++/modules')
-rw-r--r--xmake/rules/c++/modules/modules_support/clang.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/xmake/rules/c++/modules/modules_support/clang.lua b/xmake/rules/c++/modules/modules_support/clang.lua
index 9cf7edcdf..7a63c027d 100644
--- a/xmake/rules/c++/modules/modules_support/clang.lua
+++ b/xmake/rules/c++/modules/modules_support/clang.lua
@@ -67,11 +67,19 @@ end
-- load module support for the current target
function load(target)
local modulesflag = get_modulesflag(target)
+ local builtinmodulemapflag = get_builtinmodulemapflag(target)
+ local implicitmodulesflag = get_implicitmodulesflag(target)
local noimplicitmodulemapsflag = get_noimplicitmodulemapsflag(target)
-- add module flags
target:add("cxxflags", modulesflag)
- target:add("cxxflags", noimplicitmodulemapsflag, {force = true})
+
+ if not target:values("c++.clang.modules.strict") then
+ target:add("cxxflags", builtinmodulemapflag, {force = true})
+ target:add("cxxflags", implicitmodulesflag, {force = true})
+ else
+ target:add("cxxflags", noimplicitmodulemapsflag, {force = true})
+ end
-- fix default visibility for functions and variables [-fvisibility] differs in PCH file vs. current file
-- module.pcm cannot be loaded due to a configuration mismatch with the current compilation.