diff options
| author | Arthur LAURENT <[email protected]> | 2025-05-10 22:07:13 +0200 |
|---|---|---|
| committer | Arthur LAURENT <[email protected]> | 2025-05-10 22:07:13 +0200 |
| commit | 8149a35e80a5ec233956cdb02a93e0a4b62855a0 (patch) | |
| tree | 658d278fc22a84ef242d75285075907300fa51f7 /xmake/rules/c++/modules/scanner.lua | |
| parent | fdc7b4ee8cec6f9164f0a42f1d2c5c0b44f2025f (diff) | |
(C++ modules support) fix modules not saved in cache if missing dependencies
Diffstat (limited to 'xmake/rules/c++/modules/scanner.lua')
| -rw-r--r-- | xmake/rules/c++/modules/scanner.lua | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/xmake/rules/c++/modules/scanner.lua b/xmake/rules/c++/modules/scanner.lua index da15e9177..efbaa20c3 100644 --- a/xmake/rules/c++/modules/scanner.lua +++ b/xmake/rules/c++/modules/scanner.lua @@ -391,6 +391,8 @@ function _do_parse(target, sourcebatch) local moduleinfos = support.load_moduleinfos(target, sourcebatch) modules = _parse_dependencies_data(target, moduleinfos) local localcache = support.localcache() + localcache:set2(target:fullname(), "c++.modules", modules) + localcache:save() mapper.feed(target, modules, sourcebatch.sourcefiles) @@ -408,13 +410,11 @@ function _do_parse(target, sourcebatch) end end end - localcache:set2(target:fullname(), "c++.modules", modules) - localcache:save() else modules = get_modules(target) end - -- steal from c++.build sourcebatch named modules + -- steal from c++.build sourcebatch named modules with cpp extensions local cxx_sourcebatch = target:sourcebatches()["c++.build"] if cxx_sourcebatch then cxx_sourcebatch.sourcefiles = {} @@ -771,7 +771,8 @@ function after_scan(target) local sourcebatch_scanner = target:sourcebatches()["c++.build.modules.scanner"] local sourcebatch_builder = target:sourcebatches()["c++.build.modules.builder"] if target:data("cxx.has_modules") and not target:is_moduleonly() then - local _, _, objectfiles = sort_modules_by_dependencies(target, get_modules(target), {jobgraph = target:policy("build.jobgraph")}) + local modules = get_modules(target) + local _, _, objectfiles = sort_modules_by_dependencies(target, modules, {jobgraph = target:policy("build.jobgraph")}) sourcebatch_scanner.objectfiles = objectfiles sourcebatch_builder.objectfiles = objectfiles elseif sourcebatch_scanner then |
