diff options
| author | ruki <[email protected]> | 2021-01-05 00:42:37 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-01-05 00:42:37 +0800 |
| commit | 252f06e4e77be844729db3bcc704f17c255cca9f (patch) | |
| tree | e9446cb88c9104b538c76f6126f5887680bb87e4 /xmake | |
| parent | 021021c87eb0709396682330e1b489eb33343f98 (diff) | |
improve merge rule for add_requireconfs
Diffstat (limited to 'xmake')
| -rw-r--r-- | xmake/actions/require/impl/package.lua | 16 |
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 |
