summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/build_modules/module_parser.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/rules/c++/modules/build_modules/module_parser.lua')
-rw-r--r--xmake/rules/c++/modules/build_modules/module_parser.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/xmake/rules/c++/modules/build_modules/module_parser.lua b/xmake/rules/c++/modules/build_modules/module_parser.lua
index 5ac4e42e9..17e0f4d24 100644
--- a/xmake/rules/c++/modules/build_modules/module_parser.lua
+++ b/xmake/rules/c++/modules/build_modules/module_parser.lua
@@ -94,3 +94,21 @@ function load(target, sourcebatch, opt)
end
return moduledeps
end
+
+-- build module deps
+function build(moduledeps)
+ local moduledeps_files = {}
+ for _, moduledep in pairs(moduledeps) do
+ if moduledep.deps then
+ for _, depname in ipairs(moduledep.deps) do
+ local dep = moduledeps[depname]
+ if dep then
+ dep.parents = dep.parents or {}
+ table.insert(dep.parents, moduledep)
+ end
+ end
+ end
+ moduledeps_files[moduledep.file] = moduledep
+ end
+ return moduledeps_files
+end