summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/build_modules/gcc.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2022-04-03 13:40:24 +0800
committerruki <[email protected]>2022-04-03 13:40:24 +0800
commitcd159c7c62fb2746f85484fa813628598d068072 (patch)
treec2f5ff7bc12550f9650890080826b46f542a1ff1 /xmake/rules/c++/modules/build_modules/gcc.lua
parentfa972ccbdda55a44ae8f245f727e410fc9e179e9 (diff)
improve c++ modules and jobpool
Diffstat (limited to 'xmake/rules/c++/modules/build_modules/gcc.lua')
-rw-r--r--xmake/rules/c++/modules/build_modules/gcc.lua20
1 files changed, 4 insertions, 16 deletions
diff --git a/xmake/rules/c++/modules/build_modules/gcc.lua b/xmake/rules/c++/modules/build_modules/gcc.lua
index 2abaa4f7f..3bf8b8fcc 100644
--- a/xmake/rules/c++/modules/build_modules/gcc.lua
+++ b/xmake/rules/c++/modules/build_modules/gcc.lua
@@ -59,16 +59,13 @@ function build_with_batchjobs(target, batchjobs, sourcebatch, opt)
end
-- load moduledeps
- local moduledeps = module_parser.load(target, sourcebatch, opt)
-
- -- build moduledeps
- local moduledeps_files = module_parser.build(moduledeps)
+ local moduledeps, moduledeps_files = module_parser.load(target, sourcebatch, opt)
-- compile module files to object files
for i = 1, #sourcebatch.sourcefiles do
local sourcefile = sourcebatch.sourcefiles[i]
- local moduledep = assert(moduledeps_files[sourcefile], "moduledep(%s) not found!", sourcefile)
- moduledep.job = batchjobs:newjob(sourcefile, function (index, total)
+ local moduleinfo = assert(moduledeps_files[sourcefile], "moduleinfo(%s) not found!", sourcefile)
+ moduleinfo.job = batchjobs:newjob(sourcefile, function (index, total)
local opt2 = table.join(opt, {configs = {force = {cxxflags = {"-x c++"}}}})
opt2.progress = (index * 100) / total
opt2.objectfile = sourcebatch.objectfiles[i]
@@ -82,15 +79,6 @@ function build_with_batchjobs(target, batchjobs, sourcebatch, opt)
target:add("cxxflags", modulesflag)
-- build batchjobs
- local rootjob = opt.rootjob
- for _, moduledep in pairs(moduledeps) do
- if moduledep.parents then
- for _, parent in ipairs(moduledep.parents) do
- batchjobs:add(moduledep.job, parent.job)
- end
- else
- batchjobs:add(moduledep.job, rootjob)
- end
- end
+ module_parser.build_batchjobs(moduledeps, batchjobs, opt.rootjob)
end