summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/xmake.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2025-05-15 23:35:16 +0800
committerruki <[email protected]>2025-05-15 23:35:16 +0800
commit8fe7c166f84ee0460c79a63f5dc19d4ca77dade1 (patch)
tree1bb7372dfbd7ec92f6f85b7cebb76d14d0719c06 /xmake/rules/c++/modules/xmake.lua
parenta68eff4a47e81b8ea430ee4f4a86d1fd8ccc7df9 (diff)
fix link objectfiles conflicts
Diffstat (limited to 'xmake/rules/c++/modules/xmake.lua')
-rw-r--r--xmake/rules/c++/modules/xmake.lua19
1 files changed, 5 insertions, 14 deletions
diff --git a/xmake/rules/c++/modules/xmake.lua b/xmake/rules/c++/modules/xmake.lua
index 64de8e017..9afd4f6cc 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")
@@ -35,38 +34,30 @@ rule("c++.build.modules")
-- scan modules
rule("c++.build.modules.scanner")
- set_sourcekinds("cxx")
- set_extensions(".mpp", ".mxx", ".cppm", ".ixx")
-
- -- generate module dependencies
+ set_sourcekinds("cxx", {objectfiles = false})
+ 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_sourcekinds("cxx", {objectfiles = false})
+ 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")