summaryrefslogtreecommitdiff
path: root/xmake/rules/c++/modules/modules_support
diff options
context:
space:
mode:
authorruki <[email protected]>2025-03-31 23:05:27 +0800
committerruki <[email protected]>2025-04-08 15:31:57 +0800
commitc0867ffd08915f2f80decbf97da17b685fb74525 (patch)
treee5f3df31625158e6c1251254b351c0d5161c30e6 /xmake/rules/c++/modules/modules_support
parent8b0ba84af0611cc61e9398c579ab55e9087320d4 (diff)
fix build modules
Diffstat (limited to 'xmake/rules/c++/modules/modules_support')
-rw-r--r--xmake/rules/c++/modules/modules_support/builder.lua26
-rw-r--r--xmake/rules/c++/modules/modules_support/clang/builder.lua6
-rw-r--r--xmake/rules/c++/modules/modules_support/gcc/builder.lua7
-rw-r--r--xmake/rules/c++/modules/modules_support/msvc/builder.lua7
4 files changed, 24 insertions, 22 deletions
diff --git a/xmake/rules/c++/modules/modules_support/builder.lua b/xmake/rules/c++/modules/modules_support/builder.lua
index 59f00b64f..0fd9920b1 100644
--- a/xmake/rules/c++/modules/modules_support/builder.lua
+++ b/xmake/rules/c++/modules/modules_support/builder.lua
@@ -46,7 +46,7 @@ function _build_modules(target, sourcebatch, modules, opt)
local deps = {}
for _, dep in ipairs(table.keys(module.requires or {})) do
- local depname = jobgraph and (target:fullname() .. "/" .. dep) or dep
+ local depname = jobgraph and (target:fullname() .. "/module/" .. dep) or dep
table.insert(deps, depname)
end
@@ -263,11 +263,11 @@ end
-- build modules for batchjobs
function build_modules_for_batchjobs(target, batchjobs, sourcebatch, modules, opt)
opt.rootjob = batchjobs:group_leave() or opt.rootjob
- batchjobs:group_enter(target:fullname() .. "/build_modules", {rootjob = opt.rootjob})
+ batchjobs:group_enter(target:fullname() .. "/module/build_modules", {rootjob = opt.rootjob})
-- add populate module job
local modulesjobs = {}
- local populate_jobname = target:fullname() .. "/populate_module_map"
+ local populate_jobname = target:fullname() .. "/module/populate_module_map"
modulesjobs[populate_jobname] = {
name = populate_jobname,
job = batchjobs:newjob(populate_jobname, function(_, _)
@@ -279,7 +279,7 @@ function build_modules_for_batchjobs(target, batchjobs, sourcebatch, modules, op
-- add module jobs
_build_modules(target, sourcebatch, modules, table.join(opt, {
build_module = function(deps, module, name, objectfile, cppfile)
- local job_name = target:fullname() .. "/" .. (name or cppfile)
+ local job_name = target:fullname() .. "/module/" .. (name or cppfile)
modulesjobs[job_name] = _builder(target).make_module_buildjobs(target, batchjobs, job_name, deps,
{module = module, objectfile = objectfile, cppfile = cppfile})
end
@@ -292,11 +292,11 @@ end
-- build modules for jobgraph
function build_modules_for_jobgraph(target, jobgraph, sourcebatch, modules, opt)
local jobdeps = {}
- local build_modules_group = target:fullname() .. "/build_modules"
+ local build_modules_group = target:fullname() .. "/module/build_modules"
jobgraph:group(build_modules_group, function ()
-- add populate module job
- local populate_jobname = target:fullname() .. "/populate_module_map"
+ local populate_jobname = target:fullname() .. "/module/populate_module_map"
jobgraph:add(populate_jobname, function(index, total, opt)
_try_reuse_modules(target, modules)
_builder(target).populate_module_map(target, modules)
@@ -305,7 +305,7 @@ function build_modules_for_jobgraph(target, jobgraph, sourcebatch, modules, opt)
-- add module jobs
_build_modules(target, sourcebatch, modules, table.join(opt, {
build_module = function(deps, module, name, objectfile, cppfile)
- local jobname = target:fullname() .. "/" .. (name or cppfile)
+ local jobname = target:fullname() .. "/module/" .. (name or cppfile)
_builder(target).make_module_jobgraph(target, jobgraph, {
module = module, objectfile = objectfile, cppfile = cppfile
})
@@ -349,13 +349,13 @@ function build_headerunits_for_batchjobs(target, batchjobs, sourcebatch, modules
-- we need new group(headerunits)
-- e.g. group(build_modules) -> group(headerunits)
opt.rootjob = batchjobs:group_leave() or opt.rootjob
- batchjobs:group_enter(target:fullname() .. "/build_headerunits", {rootjob = opt.rootjob})
+ batchjobs:group_enter(target:fullname() .. "/module/build_headerunits", {rootjob = opt.rootjob})
local build_headerunits = function(headerunits)
local modulesjobs = {}
_build_headerunits(target, headerunits, table.join(opt, {
build_headerunit = function(headerunit, key, bmifile, outputdir, build)
- local job_name = target:fullname() .. "/" .. key
+ local job_name = target:fullname() .. "/module/" .. key
local job = _builder(target).make_headerunit_buildjobs(target, job_name, batchjobs, headerunit, bmifile, outputdir, table.join(opt, {build = build}))
if job then
modulesjobs[job_name] = job
@@ -385,14 +385,14 @@ function build_headerunits_for_jobgraph(target, jobgraph, sourcebatch, modules,
-- we need new group(headerunits)
-- e.g. group(build_modules) -> group(headerunits)
- local build_modules_group = target:fullname() .. "/build_modules"
- local build_headerunits_group = target:fullname() .. "/build_headerunits"
+ local build_modules_group = target:fullname() .. "/module/build_modules"
+ local build_headerunits_group = target:fullname() .. "/module/build_headerunits"
jobgraph:group(build_headerunits_group, function ()
local build_headerunits = function(headerunits)
local modulesjobs = {}
_build_headerunits(target, headerunits, table.join(opt, {
build_headerunit = function(headerunit, key, bmifile, outputdir, build)
- local job_name = target:fullname() .. "/" .. key
+ local job_name = target:fullname() .. "/module/" .. key
_builder(target).make_headerunit_buildjobs(target,
job_name, jobgraph, headerunit, bmifile, outputdir, table.join(opt, {build = build}))
end
@@ -458,7 +458,7 @@ function generate_metadata(target, modules)
end
local jobs = option.get("jobs") or os.default_njob()
- runjobs(target:fullname() .. "/install_modules", function(index, total, jobopt)
+ runjobs(target:fullname() .. "/module/install_modules", function(index, total, jobopt)
local module = public_modules[index]
local name, _, cppfile = compiler_support.get_provided_module(module)
local metafilepath = compiler_support.get_metafile(target, cppfile)
diff --git a/xmake/rules/c++/modules/modules_support/clang/builder.lua b/xmake/rules/c++/modules/modules_support/clang/builder.lua
index dd9a6fad5..ec6692c35 100644
--- a/xmake/rules/c++/modules/modules_support/clang/builder.lua
+++ b/xmake/rules/c++/modules/modules_support/clang/builder.lua
@@ -216,9 +216,9 @@ function make_module_buildjobs(target, batchjobs, job_name, deps, opt)
return {
name = job_name,
- deps = table.join(target:fullname() .. "/populate_module_map", deps),
+ deps = table.join(target:fullname() .. "/module/populate_module_map", deps),
sourcefile = opt.cppfile,
- job = batchjobs:newjob(target:fullname() .. "/" .. (name or opt.cppfile), function(index, total, jobopt)
+ job = batchjobs:newjob(target:fullname() .. "/module/" .. (name or opt.cppfile), function(index, total, jobopt)
local mapped_bmi
if provide and compiler_support.memcache():get2(target:fullname() .. name, "reuse") then
mapped_bmi = get_from_target_mapper(target, name).bmi
@@ -285,7 +285,7 @@ function make_module_jobgraph(target, jobgraph, opt)
local bmifile = provide and compiler_support.get_bmi_path(provide.bmi)
local dryrun = option.get("dry-run")
- local jobname = target:fullname() .. "/" .. (name or opt.cppfile)
+ local jobname = target:fullname() .. "/module/" .. (name or opt.cppfile)
jobgraph:add(jobname, function(index, total, jobopt)
local mapped_bmi
if provide and compiler_support.memcache():get2(target:fullname() .. name, "reuse") then
diff --git a/xmake/rules/c++/modules/modules_support/gcc/builder.lua b/xmake/rules/c++/modules/modules_support/gcc/builder.lua
index 38a9e3d04..05e8380da 100644
--- a/xmake/rules/c++/modules/modules_support/gcc/builder.lua
+++ b/xmake/rules/c++/modules/modules_support/gcc/builder.lua
@@ -182,9 +182,9 @@ function make_module_buildjobs(target, batchjobs, job_name, deps, opt)
return {
name = job_name,
- deps = table.join(target:fullname() .. "/populate_module_map", deps),
+ deps = table.join(target:fullname() .. "/module/populate_module_map", deps),
sourcefile = opt.cppfile,
- job = batchjobs:newjob(target:fullname() .. "/" .. (name or opt.cppfile), function(index, total, jobopt)
+ job = batchjobs:newjob(target:fullname() .. "/module/" .. (name or opt.cppfile), function(index, total, jobopt)
local mapped_bmi
if provide and compiler_support.memcache():get2(target:fullname() .. name, "reuse") then
mapped_bmi = get_from_target_mapper(target, name).bmi
@@ -247,7 +247,8 @@ function make_module_jobgraph(target, jobgraph, opt)
local bmifile = provide and compiler_support.get_bmi_path(provide.bmi)
local module_mapperflag = compiler_support.get_modulemapperflag(target)
- jobgraph:add(target:fullname() .. "/" .. (name or opt.cppfile), function(index, total, jobopt)
+ local jobname = target:fullname() .. "/module/" .. (name or opt.cppfile)
+ jobgraph:add(jobname, function(index, total, jobopt)
local mapped_bmi
if provide and compiler_support.memcache():get2(target:fullname() .. name, "reuse") then
mapped_bmi = get_from_target_mapper(target, name).bmi
diff --git a/xmake/rules/c++/modules/modules_support/msvc/builder.lua b/xmake/rules/c++/modules/modules_support/msvc/builder.lua
index fe1f25bb4..8f582438b 100644
--- a/xmake/rules/c++/modules/modules_support/msvc/builder.lua
+++ b/xmake/rules/c++/modules/modules_support/msvc/builder.lua
@@ -263,9 +263,9 @@ function make_module_buildjobs(target, batchjobs, job_name, deps, opt)
return {
name = job_name,
- deps = table.join(target:fullname() .. "/populate_module_map", deps),
+ deps = table.join(target:fullname() .. "/module/populate_module_map", deps),
sourcefile = opt.cppfile,
- job = batchjobs:newjob(target:fullname() .. "/" .. (name or opt.cppfile), function(index, total, jobopt)
+ job = batchjobs:newjob(target:fullname() .. "/module/" .. (name or opt.cppfile), function(index, total, jobopt)
local mapped_bmi
if provide and compiler_support.memcache():get2(target:fullname() .. name, "reuse") then
@@ -331,7 +331,8 @@ function make_module_jobgraph(target, jobgraph, opt)
local bmifile = provide and compiler_support.get_bmi_path(provide.bmi)
local dryrun = option.get("dry-run")
- jobgraph:add(target:fullname() .. "/" .. (name or opt.cppfile), function(index, total, jobopt)
+ local jobname = target:fullname() .. "/module/" .. (name or opt.cppfile)
+ jobgraph:add(jobname, function(index, total, jobopt)
local mapped_bmi
if provide and compiler_support.memcache():get2(target:fullname() .. name, "reuse") then
mapped_bmi = get_from_target_mapper(target, name).bmi