diff options
| author | ruki <[email protected]> | 2026-01-05 23:53:30 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-01-09 17:59:01 +0800 |
| commit | 4255491d58e9a1ea99520f9b04640c6eabd6e84f (patch) | |
| tree | b9927fd263c0b1263523b29d6508d92da30e0990 /xmake/core/package/package.lua | |
| parent | fb41663cb744304ea86af2149059141055d4e15d (diff) | |
add package schemes
Diffstat (limited to 'xmake/core/package/package.lua')
| -rw-r--r-- | xmake/core/package/package.lua | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua index 63ef06c9f..36bb034d8 100644 --- a/xmake/core/package/package.lua +++ b/xmake/core/package/package.lua @@ -46,6 +46,7 @@ local policy = require("project/policy") local platform = require("platform/platform") local platform_menu = require("platform/menu") local component = require("package/component") +local scheme = require("package/scheme") local language = require("language/language") local language_menu = require("language/menu") local sandbox = require("sandbox/sandbox") @@ -2423,6 +2424,40 @@ function _instance:_sort_componentdeps(name) return orderdeps end +-- get the given package scheme +function _instance:scheme(name) + return self:schemes()[name] +end + +-- get package schemes +-- +-- .e.g. add_schemes("binary", "source") +-- +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}) + end + self._SCHEMES = schemes + end + return schemes +end + +-- get package schemes list (ordered) +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)) + end + self._SCHEMES_ORDERLIST = schemes_orderlist + end + return schemes_orderlist +end + -- generate lto configs function _instance:_generate_lto_configs(sourcekind) @@ -2894,7 +2929,7 @@ function package.apis() , "package.set_cachedir" , "package.set_installdir" , "package.add_bindirs" - , "package.add_installschemes" + , "package.add_schemes" -- package.add_xxx , "package.add_deps" , "package.add_urls" |
