summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2026-01-05 23:55:13 +0800
committerruki <[email protected]>2026-01-09 17:59:01 +0800
commit7d506590468cc2fc0984a9890b4cefead1a37718 (patch)
treeca9e27730e787916518bd0c6616203406d5348dc
parent4255491d58e9a1ea99520f9b04640c6eabd6e84f (diff)
improve scheme
-rw-r--r--xmake/core/package/component.lua4
-rw-r--r--xmake/core/package/package.lua4
-rw-r--r--xmake/core/package/scheme.lua10
3 files changed, 13 insertions, 5 deletions
diff --git a/xmake/core/package/component.lua b/xmake/core/package/component.lua
index cfe0a9901..d93a4f7fb 100644
--- a/xmake/core/package/component.lua
+++ b/xmake/core/package/component.lua
@@ -78,8 +78,8 @@ end
-- get the extra configuration
function _instance:extraconf(name, item, key)
local conf = self._INFO:extraconf(name, item, key)
- if conf == nil and self:base() then
- conf = self:base():extraconf(name, item, key)
+ if conf == nil then
+ conf = self:package():extraconf(name, item, key)
end
return conf
end
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index 36bb034d8..b6c444778 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -2440,6 +2440,10 @@ function _instance:schemes()
for _, name in ipairs(table.wrap(self:get("schemes"))) do
schemes[name] = scheme.new(name, {package = self})
end
+ -- add default scheme if no schemes are defined
+ if table.empty(schemes) then
+ schemes["__default__"] = scheme.new("__default__", {package = self})
+ end
self._SCHEMES = schemes
end
return schemes
diff --git a/xmake/core/package/scheme.lua b/xmake/core/package/scheme.lua
index 5932f22a6..c2231543a 100644
--- a/xmake/core/package/scheme.lua
+++ b/xmake/core/package/scheme.lua
@@ -67,7 +67,11 @@ end
-- get the scheme configuration
function _instance:get(name)
- return self._INFO:get(name)
+ local value = self._INFO:get(name)
+ if value == nil then
+ value = self:package():get(name)
+ end
+ return value
end
-- set the value to scheme info
@@ -83,8 +87,8 @@ end
-- get the extra configuration
function _instance:extraconf(name, item, key)
local conf = self._INFO:extraconf(name, item, key)
- if conf == nil and self:base() then
- conf = self:base():extraconf(name, item, key)
+ if conf == nil then
+ conf = self:package():extraconf(name, item, key)
end
return conf
end