summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2025-05-17 00:49:56 +0800
committerruki <[email protected]>2025-05-17 00:49:56 +0800
commit9ee2368e99edc1907c4cd609d20829aada974d1c (patch)
tree6dca5e919b00b1464900d7a7d95f710812563c42
parent8048be7eefdbffde9ed7a9fb1106af885fc3472b (diff)
improve c++modules exts
-rw-r--r--xmake/rules/c++/modules/support.lua2
-rw-r--r--xmake/rules/c++/modules/xmake.lua15
2 files changed, 4 insertions, 13 deletions
diff --git a/xmake/rules/c++/modules/support.lua b/xmake/rules/c++/modules/support.lua
index 9353fae8a..faaa57369 100644
--- a/xmake/rules/c++/modules/support.lua
+++ b/xmake/rules/c++/modules/support.lua
@@ -158,7 +158,7 @@ function has_module_extension(sourcefile, opt)
opt = opt or {}
local modulexts = _g.modulexts
if modulexts == nil then
- modulexts = hashset.of(".mpp", ".mxx", ".cppm", ".ixx")
+ modulexts = hashset.of(".cppm", ".ccm", ".cxxm", ".c++m", ".mpp", ".mxx", ".ixx")
_g.modulexts = modulexts
end
local extension = opt.extension or path.extension(sourcefile)
diff --git a/xmake/rules/c++/modules/xmake.lua b/xmake/rules/c++/modules/xmake.lua
index 64de8e017..482c773f8 100644
--- a/xmake/rules/c++/modules/xmake.lua
+++ b/xmake/rules/c++/modules/xmake.lua
@@ -20,7 +20,6 @@
-- define rule: c++.build.modules
rule("c++.build.modules")
-
-- @note support.contains_modules() need it
set_extensions(".cppm", ".ccm", ".cxxm", ".c++m", ".mpp", ".mxx", ".ixx")
@@ -36,37 +35,29 @@ rule("c++.build.modules")
-- scan modules
rule("c++.build.modules.scanner")
set_sourcekinds("cxx")
- set_extensions(".mpp", ".mxx", ".cppm", ".ixx")
-
- -- generate module dependencies
+ set_extensions(".cppm", ".ccm", ".cxxm", ".c++m", ".mpp", ".mxx", ".ixx")
on_prepare_files("scanner", {jobgraph = true})
-
- -- insert objectfiles
after_prepare_files("scanner.after_scan")
-- build modules
rule("c++.build.modules.builder")
set_sourcekinds("cxx")
- set_extensions(".mpp", ".mxx", ".cppm", ".ixx")
-
+ set_extensions(".cppm", ".ccm", ".cxxm", ".c++m", ".mpp", ".mxx", ".ixx")
add_orders("c++.build.modules.scanner", "c++.build.modules.builder")
-- parallel build support to accelerate `xmake build` to build modules
before_build_files("builder.build_bmis", {jobgraph = true, batch = true})
-
on_build_files("builder.build_objectfiles", {jobgraph = true, batch = true})
-- serial compilation only, usually used to support project generator
before_buildcmd_files("builder.build_bmis")
-
on_buildcmd_files("builder.build_objectfiles")
after_clean("builder.clean")
-- install modules
rule("c++.build.modules.install")
- set_extensions(".mpp", ".mxx", ".cppm", ".ixx")
+ set_extensions(".cppm", ".ccm", ".cxxm", ".c++m", ".mpp", ".mxx", ".ixx")
before_install("install.install")
-
before_uninstall("install.uninstall")