diff options
| author | ruki <[email protected]> | 2026-01-08 00:53:46 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-01-09 17:59:07 +0800 |
| commit | 5a0021308f56cd3399425e87945d66839753c5c3 (patch) | |
| tree | 520b662b0e0f30291f4258cc48a7039b7ceb2b6f | |
| parent | 3b1f621c6b25958eef72dd98df074fcb6bc81d5e (diff) | |
improve schemes
| -rw-r--r-- | xmake/core/package/package.lua | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua index 4f4ec06f0..a3e09217c 100644 --- a/xmake/core/package/package.lua +++ b/xmake/core/package/package.lua @@ -2458,10 +2458,7 @@ end -- get current scheme function _instance:current_scheme() - if self._CURRENT_SCHEME then - return self._CURRENT_SCHEME - end - return self:scheme("__default__") + return self._CURRENT_SCHEME end -- get package schemes @@ -2472,8 +2469,8 @@ function _instance:schemes() local schemes = self._SCHEMES if not schemes then schemes = {} - for _, name in ipairs(table.wrap(self:get("schemes"))) do - schemes[name] = scheme.new(name, {package = self}) + for _, scheme in ipairs(self:schemes_orderlist()) do + schemes[scheme:name()] = scheme end self._SCHEMES = schemes end @@ -2485,8 +2482,12 @@ function _instance:schemes_orderlist() local schemes_orderlist = self._SCHEMES_ORDERLIST if not schemes_orderlist then schemes_orderlist = {} - for _, name in ipairs(table.wrap(self:get("schemes"))) do - table.insert(schemes_orderlist, self:scheme(name)) + local scheme_names = table.wrap(self:get("schemes")) + if #scheme_names == 0 then + scheme_names = {"__default__"} + end + for _, name in ipairs(scheme_names) do + table.insert(schemes_orderlist, scheme.new(name, {package = self})) end self._SCHEMES_ORDERLIST = schemes_orderlist end |
