summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-08-13 11:33:18 +0800
committerruki <[email protected]>2022-08-13 11:33:18 +0800
commit595a078ba33abd374cf900a07570222151caf605 (patch)
tree75008a8b195df028f2d88a81adf62c1e983cfcbb
parent85759892a32f733dd5d368f17547a65501dce88f (diff)
expand requires flags
-rw-r--r--xmake/rules/c++/modules/modules_support/msvc.lua14
1 files changed, 10 insertions, 4 deletions
diff --git a/xmake/rules/c++/modules/modules_support/msvc.lua b/xmake/rules/c++/modules/modules_support/msvc.lua
index d09275e9d..4f7c8edc2 100644
--- a/xmake/rules/c++/modules/modules_support/msvc.lua
+++ b/xmake/rules/c++/modules/modules_support/msvc.lua
@@ -384,7 +384,7 @@ function build_modules_for_batchjobs(target, batchjobs, objectfiles, modules, op
-- @note we add it at the end to ensure that the full modulemap are already stored in the mapper
local requiresflags
if module.requires then
- requiresflags = get_requiresflags(target, module.requires)
+ requiresflags = get_requiresflags(target, module.requires, {expand = true})
end
depend.on_changed(function()
progress.show((index * 100) / total, "${color.build.object}generating.cxx.module.bmi %s", name)
@@ -464,7 +464,7 @@ function build_modules_for_batchcmds(target, batchcmds, objectfiles, modules, op
-- append required modulemap flags to module
local requiresflags
if module.requires then
- requiresflags = get_requiresflags(target, module.requires)
+ requiresflags = get_requiresflags(target, module.requires, {expand = true})
end
local bmifile = provide.bmi
@@ -633,7 +633,8 @@ function get_scandependenciesflag(target)
end
-- get requireflags from module mapper
-function get_requiresflags(target, requires)
+function get_requiresflags(target, requires, opt)
+ opt = opt or {}
local flags = {}
local modulemap = _get_modulemap_from_mapper(target)
-- add deps required module flags
@@ -662,7 +663,12 @@ function get_requiresflags(target, requires)
local value = flags[i + 1]
if not contains[value] then
local key = flags[i]
- table.insert(requireflags, {key, value})
+ if opt.expand then
+ table.insert(requireflags, key)
+ table.insert(requireflags, value)
+ else
+ table.insert(requireflags, {key, value})
+ end
contains[value] = true
end
end