diff options
| author | ruki <[email protected]> | 2022-04-03 13:40:24 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-04-03 13:40:24 +0800 |
| commit | cd159c7c62fb2746f85484fa813628598d068072 (patch) | |
| tree | c2f5ff7bc12550f9650890080826b46f542a1ff1 /xmake/rules/c++/modules/build_modules/gcc.lua | |
| parent | fa972ccbdda55a44ae8f245f727e410fc9e179e9 (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.lua | 20 |
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 |
