summaryrefslogtreecommitdiff
path: root/xmake/core/tool/builder.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2023-10-24 22:53:05 +0800
committerruki <[email protected]>2023-10-24 22:53:05 +0800
commit66b43560f7cf25b20ecb78a85dc17fe1f975bb48 (patch)
tree52e461ab60c8c76d6b5a8ae8a379121991573df9 /xmake/core/tool/builder.lua
parent645d407a01aa69d35d5340c66f5e109583e4c427 (diff)
pass extras to tools
Diffstat (limited to 'xmake/core/tool/builder.lua')
-rw-r--r--xmake/core/tool/builder.lua12
1 files changed, 10 insertions, 2 deletions
diff --git a/xmake/core/tool/builder.lua b/xmake/core/tool/builder.lua
index dbd716082..a6cea93c0 100644
--- a/xmake/core/tool/builder.lua
+++ b/xmake/core/tool/builder.lua
@@ -281,6 +281,14 @@ function builder:_add_flags_from_argument(flags, target, args)
local extras = args.extras
self:_add_flags_from_language(flags, nil, {
target = function (name)
+ -- we need also to get extras from arguments
+ -- @see https://github.com/xmake-io/xmake/issues/4274
+ --
+ -- e.g.
+ -- package/add_linkgroups("xxx", {group = true})
+ -- {linkgroups = , extras = {
+ -- linkgroups = {z = {group = true}}
+ -- }}
return args[name], extras and extras[name]
end,
toolchain = function (name)
@@ -437,7 +445,7 @@ function builder:_add_flags_from_language(flags, target, getters)
local mapper = item.mapper
local extras = item.extras
if item.multival then
- local results = mapper(self:_tool(), item.values, target, self:_targetkind())
+ local results = mapper(self:_tool(), item.values, {target = target, targetkind = self:_targetkind(), extras = extras})
for _, flag in ipairs(table.wrap(results)) do
if flag and flag ~= "" and (not check or self:has_flags(flag)) then
table.insert(flags, flag)
@@ -445,7 +453,7 @@ function builder:_add_flags_from_language(flags, target, getters)
end
else
for _, flagvalue in ipairs(item.values) do
- local flag = mapper(self:_tool(), flagvalue, target, self:_targetkind())
+ local flag = mapper(self:_tool(), flagvalue, {target = target, targetkind = self:_targetkind(), extras = extras})
if flag and flag ~= "" and (not check or self:has_flags(flag)) then
table.insert(flags, flag)
end