summaryrefslogtreecommitdiff
path: root/xmake
diff options
context:
space:
mode:
authorruki <[email protected]>2023-04-14 23:59:22 +0800
committerruki <[email protected]>2023-04-14 23:59:22 +0800
commitd63fec3fff009d046fa413f597197edd9957d953 (patch)
treeba342afc353065048c9d7a59a3241525def97973 /xmake
parentd6ee79eeddbe08617a41c24c2040aff37626f845 (diff)
improve set_base for configs #3622
Diffstat (limited to 'xmake')
-rw-r--r--xmake/core/package/package.lua14
1 files changed, 9 insertions, 5 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 2df0adf72..7508b207f 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -88,7 +88,15 @@ end
-- get the package configuration
function _instance:get(name)
local value = self._INFO:get(name)
- if value == nil and self:base() then
+ if name == "configs" then
+ -- we need merge it, because current builtin configs always exists
+ if self:base() then
+ local configs_base = self:base():get("configs")
+ if configs_base then
+ value = table.unique(table.join(value or {}, configs_base))
+ end
+ end
+ elseif value == nil and self:base() then
value = self:base():get(name)
end
if value ~= nil then
@@ -1299,10 +1307,6 @@ function _instance:config(name)
if configs then
value = configs[name]
end
- -- we cannot get it from `self:get()`, because there are always some builtin configs.
- if value == nil and self:base() then
- value = self:base():config(name)
- end
return value
end