diff options
| author | ruki <[email protected]> | 2021-04-20 00:30:50 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-04-20 00:30:50 +0800 |
| commit | c34a476b7f424bbb9749c62019b29de4b8f08c85 (patch) | |
| tree | 9640796705b508e141aa7428f41bc4979bf7e650 | |
| parent | 4bb2d8aa6465cc1040b55557329bebb55e75c0bc (diff) | |
support private package for add_requires
| -rw-r--r-- | xmake/core/package/package.lua | 6 | ||||
| -rw-r--r-- | xmake/modules/private/action/require/impl/package.lua | 12 |
2 files changed, 17 insertions, 1 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua index 8370961eb..3decd832e 100644 --- a/xmake/core/package/package.lua +++ b/xmake/core/package/package.lua @@ -378,6 +378,12 @@ function _instance:is_optional() return requireinfo and requireinfo.optional or false end +-- is private package? +function _instance:is_private() + local requireinfo = self:requireinfo() + return requireinfo and requireinfo.private or false +end + -- verify sha256sum and versions? function _instance:is_verify() local requireinfo = self:requireinfo() diff --git a/xmake/modules/private/action/require/impl/package.lua b/xmake/modules/private/action/require/impl/package.lua index fa11d4fc5..f9b3da490 100644 --- a/xmake/modules/private/action/require/impl/package.lua +++ b/xmake/modules/private/action/require/impl/package.lua @@ -68,6 +68,9 @@ end -- - add_requires("zlib~debug", {debug = true}) -- - add_requires("zlib~shared", {configs = {shared = true}, alias = "zlib_shared"}) -- +-- private package, only for installation, do not export any links/includes and environments to target +-- - add_requires("zlib", {private = true}) +-- -- {system = nil/true/false}: -- nil: get remote or system packages -- true: only get system package @@ -168,6 +171,7 @@ function _load_require(require_str, requires_extra, parentinfo) optional = parentinfo.optional or require_extra.optional, -- default: false, inherit parentinfo.optional verify = require_extra.verify, -- default: true, we can set false to ignore sha256sum and select any version external = require_extra.external, -- default: true, we use sysincludedirs/-isystem instead of -I/xxx + private = require_extra.private -- default: false, private package, only for installation, do not export any links/includes and environments } return required.packagename, required.requireinfo end @@ -207,7 +211,7 @@ function _sort_packagedeps(package, onlylink) for _, depname in ipairs(deps) do local packagename = _parse_require(depname) local dep = package:dep(packagename) - if dep and (onlylink ~= true or dep:is_library()) then + if dep and (onlylink ~= true or (dep:is_library() and not dep:is_private())) then table.join2(orderdeps, _sort_packagedeps(dep, onlylink)) table.insert(orderdeps, dep) end @@ -478,6 +482,9 @@ function _inherit_parent_configs(requireinfo, package, parentinfo) if parentinfo.arch then requireinfo.arch = parentinfo.arch end + if parentinfo.private ~= nil then + requireinfo.private = parentinfo.private + end requireinfo_configs.toolchains = requireinfo_configs.toolchains or parentinfo_configs.toolchains requireinfo.configs = requireinfo_configs end @@ -708,6 +715,9 @@ function get_configs_str(package) if package:is_optional() then table.insert(configs, "optional") end + if package:is_private() then + table.insert(configs, "private") + end local requireinfo = package:requireinfo() if requireinfo then if requireinfo.plat then |
