summaryrefslogtreecommitdiff
path: root/xmake/actions/require/impl/package.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2021-01-05 00:42:37 +0800
committerruki <[email protected]>2021-01-05 00:42:37 +0800
commit252f06e4e77be844729db3bcc704f17c255cca9f (patch)
treee9446cb88c9104b538c76f6126f5887680bb87e4 /xmake/actions/require/impl/package.lua
parent021021c87eb0709396682330e1b489eb33343f98 (diff)
improve merge rule for add_requireconfs
Diffstat (limited to 'xmake/actions/require/impl/package.lua')
-rw-r--r--xmake/actions/require/impl/package.lua16
1 files changed, 14 insertions, 2 deletions
diff --git a/xmake/actions/require/impl/package.lua b/xmake/actions/require/impl/package.lua
index 1a3e77edf..fab5e8f7a 100644
--- a/xmake/actions/require/impl/package.lua
+++ b/xmake/actions/require/impl/package.lua
@@ -380,16 +380,28 @@ function _load_requireinfo(packagename, requireinfo, requirepath)
end
-- merge requireconf_extra into requireinfo
+ -- and the configs of add_requires have a higher priority than add_requireconfs.
+ --
+ -- for example:
+ -- add_requireconfs("*", {configs = {debug = false}})
+ -- add_requires("foo", "bar", {configs = {debug = true}})
+ --
+ -- foo and bar will be debug mode
+ --
if #requireconf_result == 1 then
local requireconf_extra = requireconf_result[1].requireconf_extra
if requireconf_extra then
for k, v in pairs(requireconf_extra.configs) do
requireinfo.configs = requireinfo.configs or {}
- requireinfo.configs[k] = v
+ if requireinfo.configs[k] == nil then
+ requireinfo.configs[k] = v
+ end
end
for k, v in pairs(requireconf_extra) do
if k ~= "configs" then
- requireinfo[k] = v
+ if requireinfo[k] == nil then
+ requireinfo[k] = v
+ end
end
end
end