diff options
| author | ruki <[email protected]> | 2026-01-05 23:55:13 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-01-09 17:59:01 +0800 |
| commit | 7d506590468cc2fc0984a9890b4cefead1a37718 (patch) | |
| tree | ca9e27730e787916518bd0c6616203406d5348dc | |
| parent | 4255491d58e9a1ea99520f9b04640c6eabd6e84f (diff) | |
improve scheme
| -rw-r--r-- | xmake/core/package/component.lua | 4 | ||||
| -rw-r--r-- | xmake/core/package/package.lua | 4 | ||||
| -rw-r--r-- | xmake/core/package/scheme.lua | 10 |
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 |
