summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/xmake.lua
diff options
context:
space:
mode:
authorArthur LAURENT <[email protected]>2024-02-05 16:18:41 +0100
committerArthur LAURENT <[email protected]>2024-02-05 16:18:41 +0100
commit0b8ea930d1d9cc7dbb38fa62d1331f2addbbdc66 (patch)
tree21f185317734f8202ad9aa4a5968e2d68cdbc55a /xmake/rules/c++/modules/xmake.lua
parent750aa4ca36eb7189ac810e9c4bd9b468dfc1af08 (diff)
cull unreferenced modules and fix gcc module mapper
Diffstat (limited to 'xmake/rules/c++/modules/xmake.lua')
-rw-r--r--xmake/rules/c++/modules/xmake.lua6
1 files changed, 6 insertions, 0 deletions
diff --git a/xmake/rules/c++/modules/xmake.lua b/xmake/rules/c++/modules/xmake.lua
index 96446e2ec..c8385da03 100644
--- a/xmake/rules/c++/modules/xmake.lua
+++ b/xmake/rules/c++/modules/xmake.lua
@@ -98,6 +98,9 @@ rule("c++.build.modules.builder")
compiler_support.patch_sourcebatch(target, sourcebatch, opt)
local modules = dependency_scanner.get_module_dependencies(target, sourcebatch, opt)
+ -- avoid linking culled objectfiles
+ sourcebatch.objectfiles = dependency_scanner.sort_modules_by_dependencies(sourcebatch.objectfiles, modules)
+
-- build modules
builder.build_modules_for_batchjobs(target, batchjobs, sourcebatch, modules, opt)
@@ -150,6 +153,9 @@ rule("c++.build.modules.builder")
compiler_support.patch_sourcebatch(target, sourcebatch, opt)
local modules = dependency_scanner.get_module_dependencies(target, sourcebatch, opt)
+ -- avoid linking culled objectfiles
+ sourcebatch.objectfiles = dependency_scanner.sort_modules_by_dependencies(sourcebatch.objectfiles, modules)
+
-- build headerunits
builder.build_headerunits_for_batchcmds(target, batchcmds, sourcebatch, modules, opt)