diff options
| author | ruki <[email protected]> | 2023-08-18 22:41:39 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2023-08-18 22:41:39 +0800 |
| commit | 15c58268db07aae1652fc59ec462defcb45eb99c (patch) | |
| tree | fb0f5a4ca5bf9c2070ac3ba25cf03e3f0d689f66 | |
| parent | bdffbd192fa1f41da7945756b6f20e8ed8bbf080 (diff) | |
merge and override multiple require confs #3952
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua index 9f2683fe5..4a94677b4 100644 --- a/xmake/modules/private/action/require/impl/package.lua +++ b/xmake/modules/private/action/require/impl/package.lua @@ -562,7 +562,7 @@ function _merge_requireinfo(requireinfo, requirepath) end end - -- append requireconf_extra into requireinfo + -- Append requireconf_extra into requireinfo -- and the configs of add_requires have a higher priority than add_requireconfs. -- -- e.g. @@ -571,16 +571,20 @@ function _merge_requireinfo(requireinfo, requirepath) -- -- foo and bar will be debug mode -- - -- we can also override the configs of add_requires + -- We can also override the configs of add_requires -- -- e.g. -- add_requires("zlib 1.2.11") -- add_requireconfs("zlib", {override = true, version = "1.2.10"}) -- - -- we override the version of zlib to 1.2.10 + -- We override the version of zlib to 1.2.10 -- - if #requireconf_result == 1 then - local requireconf_extra = requireconf_result[1].requireconf_extra + -- If the same dependency is matched to multiple configurations, + -- the configurations are merged by default, + -- and if override is set, then it rewrites the previous configurations. + -- + for _, item in ipairs(requireconf_result) do + local requireconf_extra = item.requireconf_extra if requireconf_extra then -- preprocess requireconf_extra, (debug, override ..) local override = requireconf_extra.override @@ -604,12 +608,6 @@ function _merge_requireinfo(requireinfo, requirepath) end end end - elseif #requireconf_result > 1 then - local confs = {} - for _, item in ipairs(requireconf_result) do - table.insert(confs, item.requireconf) - end - raise("package(%s) will match multiple add_requireconfs(%s)!", requirepath, table.concat(confs, " ")) end end |
