diff options
| author | ruki <[email protected]> | 2021-01-05 22:35:40 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-01-05 22:35:40 +0800 |
| commit | af0c96cf00f119c5eb2a54db50da4c68c4c8f010 (patch) | |
| tree | fc0ddc3da879a560a7806081d2413833f9f4380b /xmake/actions/require/impl/package.lua | |
| parent | 283e882d0d7d9efc006f8e70849cc84b744425f4 (diff) | |
add override option for add_requireconfs
Diffstat (limited to 'xmake/actions/require/impl/package.lua')
| -rw-r--r-- | xmake/actions/require/impl/package.lua | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/xmake/actions/require/impl/package.lua b/xmake/actions/require/impl/package.lua index 38092ccc9..88d7701cf 100644 --- a/xmake/actions/require/impl/package.lua +++ b/xmake/actions/require/impl/package.lua @@ -361,7 +361,7 @@ end -- add_requireconfs("*", {system = false, configs = {vs_runtime = "MD"}}) -- add_requireconfs("lib*", {system = false, configs = {vs_runtime = "MD"}}) -- add_requireconfs("libwebp", {system = false, configs = {vs_runtime = "MD"}}) --- add_requireconfs("libpng.zlib", {system = false, configs = {cxflags = "-DTEST1"}, version = "1.2.10"}) +-- add_requireconfs("libpng.zlib", {system = false, override = true, configs = {cxflags = "-DTEST1"}, version = "1.2.10"}) -- add_requireconfs("libtiff.*", {system = false, configs = {cxflags = "-DTEST2"}}) -- add_requireconfs("libwebp.**|cmake|autoconf", {system = false, configs = {cxflags = "-DTEST3"}}) -- recursive deps -- @@ -379,32 +379,44 @@ function _load_requireinfo(packagename, requireinfo, requirepath) end end - -- merge requireconf_extra into requireinfo + -- append requireconf_extra into requireinfo -- and the configs of add_requires have a higher priority than add_requireconfs. -- - -- for example: + -- e.g. -- add_requireconfs("*", {configs = {debug = false}}) -- add_requires("foo", "bar", {configs = {debug = true}}) -- -- foo and bar will be debug mode -- + -- 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 + -- if #requireconf_result == 1 then local requireconf_extra = requireconf_result[1].requireconf_extra if requireconf_extra then + -- preprocess requireconf_extra, (debug, override ..) + local override = requireconf_extra.override + requireconf_extra.override = nil if requireconf_extra.debug then requireconf_extra.configs = requireconf_extra.configs or {} requireconf_extra.configs.debug = true requireconf_extra.debug = nil end + -- append or override configs and extra options for k, v in pairs(requireconf_extra.configs) do requireinfo.configs = requireinfo.configs or {} - if requireinfo.configs[k] == nil then + if override or requireinfo.configs[k] == nil then requireinfo.configs[k] = v end end for k, v in pairs(requireconf_extra) do if k ~= "configs" then - if requireinfo[k] == nil then + if override or requireinfo[k] == nil then requireinfo[k] = v end end |
