diff options
| author | ruki <[email protected]> | 2022-08-06 00:48:30 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-08-06 00:48:30 +0800 |
| commit | bee2b91e6e7171c5034f2beef7bb6d0f1af247d8 (patch) | |
| tree | 95fc537824794b6bed7c5eba40873f8e561bc6e3 /xmake/rules/c++/modules | |
| parent | 9d29942180b6b623632ec133484f3c058937f3d5 (diff) | |
wrap generate deps
Diffstat (limited to 'xmake/rules/c++/modules')
| -rw-r--r-- | xmake/rules/c++/modules/modules_support/common.lua | 14 | ||||
| -rw-r--r-- | xmake/rules/c++/modules/xmake.lua | 20 |
2 files changed, 18 insertions, 16 deletions
diff --git a/xmake/rules/c++/modules/modules_support/common.lua b/xmake/rules/c++/modules/modules_support/common.lua index 88b9ab9fd..2cba5fe89 100644 --- a/xmake/rules/c++/modules/modules_support/common.lua +++ b/xmake/rules/c++/modules/modules_support/common.lua @@ -405,3 +405,17 @@ function fallback_generate_dependencies(target, jsonfile, sourcefile) io.writefile(jsonfile, jsondata) end +-- generate dependencies +function generate_dependencies(target, opt) + + -- get sourcebatch + local sourcebatch = target:sourcebatches()["c++.build.modules.builder"] + patch_sourcebatch(target, sourcebatch) + + -- generate dependencies + modules_support(target).generate_dependencies(target, sourcebatch, opt) + + -- load and parse module dependencies + local moduleinfos = load_moduleinfos(target, sourcebatch) + return parse_dependency_data(target, moduleinfos) +end diff --git a/xmake/rules/c++/modules/xmake.lua b/xmake/rules/c++/modules/xmake.lua index fcfcc18df..d3dac2b69 100644 --- a/xmake/rules/c++/modules/xmake.lua +++ b/xmake/rules/c++/modules/xmake.lua @@ -52,23 +52,11 @@ rule("c++.build.modules") -- build dependencies rule("c++.build.modules.dependencies") before_buildcmd(function(target, batchcmds, opt) - if not target:data("cxx.has_modules") then - return + if target:data("cxx.has_modules") then + import("modules_support.common") + local modules = common.generate_dependencies(target, opt) + target:data_set("cxx.modules", modules) end - - -- patch sourcebatch - import("modules_support.common") - local sourcebatch = target:sourcebatches()["c++.build.modules.builder"] - common.patch_sourcebatch(target, sourcebatch) - - -- generate dependencies - local modules_support = common.modules_support(target) - modules_support.generate_dependencies(target, sourcebatch, opt) - - -- load and parse module dependencies - local moduleinfos = common.load_moduleinfos(target, sourcebatch) - local modules = common.parse_dependency_data(target, moduleinfos) - target:data_set("cxx.modules", modules) end) -- build modules |
