Skip to content

Commit 518ad00

Browse files
committed
(C++ modules support) check if c++.build sourcebatch is not null
1 parent 396cb8f commit 518ad00

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

xmake/rules/c++/modules/scanner.lua

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -374,8 +374,6 @@ end
374374
-- patch sourcebatch
375375
function _patch_sourcebatch(target, sourcebatch)
376376

377-
local cachekey = target:fullname() .. ".patched_sourcebatch"
378-
379377
-- target deps modules
380378
local depsmodules = _get_targetdeps_modules(target) or {}
381379

@@ -386,9 +384,8 @@ function _patch_sourcebatch(target, sourcebatch)
386384
local keys = #externalmodules > 0 and table.concat(table.orderkeys(externalmodules)) or " "
387385
local md5sum = hash.md5(bytes(keys))
388386
local localcache = support.localcache()
389-
local cached_patched_sourcebatch = localcache:get(cachekey)
387+
local cached_patched_sourcebatch = localcache:get2(target:fullname(), "patched_sourcebatch")
390388
if not cached_patched_sourcebatch or md5sum ~= cached_patched_sourcebatch.md5sum then
391-
-- insert std package and deps modules, try to reused them if possible
392389
local reuse = target:policy("build.c++.modules.reuse") or
393390
target:policy("build.c++.modules.tryreuse")
394391
local reused = {}
@@ -423,7 +420,7 @@ function _patch_sourcebatch(target, sourcebatch)
423420
local dependfile = _target:dependfile(sourcefile or objectfile)
424421
table.insert(sourcebatch.dependfiles, dependfile)
425422
end
426-
localcache:set(cachekey, {sourcefile = sourcebatch.sourcefiles, dependfiles = sourcebatch.dependfiles, reused = reused, md5sum = md5sum})
423+
localcache:set2(target:fullname(), "patched_sourcebatch", {sourcefile = sourcebatch.sourcefiles, dependfiles = sourcebatch.dependfiles, reused = reused, md5sum = md5sum})
427424
else
428425
local reused = hashset.from(cached_patched_sourcebatch.reused)
429426
for sourcefile, fileconfig in pairs(externalmodules) do
@@ -503,11 +500,11 @@ function _do_parse(target, sourcebatch)
503500
table.insert(cxx_sourcebatch.objectfiles, objectfile)
504501
end
505502
end
506-
localcache:set2("c++.modules", target:fullname() .. ".c++.build.sourcebatch", cxx_sourcebatch)
503+
localcache:set2(target:fullname(), "c++.build.sourcebatch", cxx_sourcebatch)
507504
end
508505
else
509506
modules = get_modules(target)
510-
local cxx_sourcebatch_cached = localcache:get2("c++.modules", target:fullname() .. ".c++.build.sourcebatch")
507+
local cxx_sourcebatch_cached = localcache:get2(target:fullname(), "c++.build.sourcebatch")
511508
if cxx_sourcebatch_cached then
512509
local cxx_sourcebatch = target:sourcebatches()["c++.build"]
513510
cxx_sourcebatch.sourcefiles = cxx_sourcebatch_cached.sourcefiles
@@ -517,7 +514,7 @@ function _do_parse(target, sourcebatch)
517514
end
518515

519516
-- sort modules
520-
sort_modules_by_dependencies(target, modules, {jobgraph = target:policy("build.jobgraph")})
517+
sort_modules_by_dependencies(target, modules)
521518
profiler.leave(target:fullname(), "c++ modules", "scanner", "parse module dependencies and compute dependency graph")
522519

523520
-- save cache if all other target finished

0 commit comments

Comments
 (0)