summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/xmake.lua
diff options
context:
space:
mode:
authorArthur LAURENT <[email protected]>2024-02-04 20:24:24 +0100
committerArthur LAURENT <[email protected]>2024-02-05 13:58:27 +0100
commit2328ca4f94c6a7680c72fc92f43a39c4f753d7a3 (patch)
treeaa3584bc921b737b5e00830754075a46e67156b1 /xmake/rules/c++/modules/xmake.lua
parent4a6acafb07f5af250c51604c731dba7fafdd8547 (diff)
fix missing objectfiles for private modules
Diffstat (limited to 'xmake/rules/c++/modules/xmake.lua')
-rw-r--r--xmake/rules/c++/modules/xmake.lua18
1 files changed, 14 insertions, 4 deletions
diff --git a/xmake/rules/c++/modules/xmake.lua b/xmake/rules/c++/modules/xmake.lua
index d9e26e41f..96446e2ec 100644
--- a/xmake/rules/c++/modules/xmake.lua
+++ b/xmake/rules/c++/modules/xmake.lua
@@ -76,7 +76,12 @@ rule("c++.build.modules.builder")
end
-- append std module
- table.join2(sourcebatch.sourcefiles, compiler_support.get_stdmodules(target) or {})
+ local std_modules = compiler_support.get_stdmodules(target)
+ if std_modules then
+ table.join2(sourcebatch.sourcefiles, std_modules)
+ target:fileconfig_set(std_modules[1], {external = true})
+ target:fileconfig_set(std_modules[2], {external = true})
+ end
-- extract packages modules dependencies
local package_modules_data = dependency_scanner.get_all_packages_modules(target, opt)
@@ -84,7 +89,7 @@ rule("c++.build.modules.builder")
-- append to sourcebatch
for _, package_module_data in table.orderpairs(package_modules_data) do
table.insert(sourcebatch.sourcefiles, package_module_data.file)
- target:fileconfig_add(package_module_data.file, {external = true, defines = package_module_data.metadata.defines})
+ target:fileconfig_set(package_module_data.file, {external = true, defines = package_module_data.metadata.defines})
end
end
@@ -123,7 +128,12 @@ rule("c++.build.modules.builder")
end
-- append std module
- table.join2(sourcebatch.sourcefiles, compiler_support.get_stdmodules(target) or {})
+ local std_modules = compiler_support.get_stdmodules(target)
+ if std_modules then
+ table.join2(sourcebatch.sourcefiles, std_modules)
+ target:fileconfig_set(std_modules[1], {external = true})
+ target:fileconfig_set(std_modules[2], {external = true})
+ end
-- extract packages modules dependencies
local package_modules_data = dependency_scanner.get_all_packages_modules(target, opt)
@@ -131,7 +141,7 @@ rule("c++.build.modules.builder")
-- append to sourcebatch
for _, package_module_data in table.orderpairs(package_modules_data) do
table.insert(sourcebatch.sourcefiles, package_module_data.file)
- target:fileconfig_add(package_module_data.file, {external = true, defines = package_module_data.metadata.defines})
+ target:fileconfig_set(package_module_data.file, {external = true, defines = package_module_data.metadata.defines})
end
end