diff options
| -rw-r--r-- | xmake/core/package/package.lua | 1 | ||||
| -rw-r--r-- | xmake/core/package/scheme.lua | 17 |
2 files changed, 16 insertions, 2 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua index a3e09217c..60391c745 100644 --- a/xmake/core/package/package.lua +++ b/xmake/core/package/package.lua @@ -2490,6 +2490,7 @@ function _instance:schemes_orderlist() table.insert(schemes_orderlist, scheme.new(name, {package = self})) end self._SCHEMES_ORDERLIST = schemes_orderlist + self._CURRENT_SCHEME = schemes_orderlist[1] end return schemes_orderlist end diff --git a/xmake/core/package/scheme.lua b/xmake/core/package/scheme.lua index a7166283a..1aa392437 100644 --- a/xmake/core/package/scheme.lua +++ b/xmake/core/package/scheme.lua @@ -60,6 +60,11 @@ function _instance:type() return "scheme" end +-- is default scheme? +function _instance:is_default() + return self:name() == "__default__" +end + -- get the it's package function _instance:package() return self._PACKAGE @@ -67,7 +72,11 @@ end -- get the scheme configuration function _instance:get(name) - return self._INFO:get(name) + local value = self._INFO:get(name) + if value == nil and self:is_default() and self:package() then + value = self:package():get(name) + end + return value end -- set the value to scheme info @@ -82,7 +91,11 @@ end -- get the extra configuration function _instance:extraconf(name, item, key) - return self._INFO:extraconf(name, item, key) + local value = self._INFO:extraconf(name, item, key) + if value == nil and self:is_default() and self:package() then + value = self:package():extraconf(name, item, key) + end + return value end -- set the extra configuration |
