diff options
| author | ruki <[email protected]> | 2019-03-14 22:50:28 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-03-14 11:02:51 +0800 |
| commit | fbf5ca5b9f93713dd2d7017674aebcdd31aaa2aa (patch) | |
| tree | 89f1bd9604f4f2bf58fe99b3fe67655c6d2f652f | |
| parent | dd6aeb6af01259e38472228ecc1aa7c9fc96f7bd (diff) | |
add_configs for package
| -rw-r--r-- | xmake/actions/require/impl/package.lua | 3 | ||||
| -rw-r--r-- | xmake/actions/require/info.lua | 28 | ||||
| -rw-r--r-- | xmake/core/package/package.lua | 26 |
3 files changed, 46 insertions, 11 deletions
diff --git a/xmake/actions/require/impl/package.lua b/xmake/actions/require/impl/package.lua index 6a1b0c986..b7945d5d4 100644 --- a/xmake/actions/require/impl/package.lua +++ b/xmake/actions/require/impl/package.lua @@ -128,7 +128,8 @@ function _parse_require(require_str, requires_extra, parentinfo) group = require_extra.group, -- only uses the first package in same group system = require_extra.system, -- default: true, we can set it to disable system package manually option = require_extra.option, -- set and attach option - config = require_extra.config, -- the build configuration of package + configs = require_extra.configs or -- the build configuration of package + require_extra.config, -- TODO deprecated default = require_extra.default, -- default: true, we can set it to disable package manually optional = parentinfo.optional or require_extra.optional -- default: false, inherit parentinfo.optional } diff --git a/xmake/actions/require/info.lua b/xmake/actions/require/info.lua index a6fc25000..75c171559 100644 --- a/xmake/actions/require/info.lua +++ b/xmake/actions/require/info.lua @@ -154,6 +154,34 @@ function main(package_names) end end + -- show requires + cprint(" -> ${magenta}requires${clear}:") + cprint(" -> ${cyan}plat${clear}: %s", instance:plat()) + cprint(" -> ${cyan}arch${clear}: %s", instance:arch()) + cprint(" -> ${cyan}mode${clear}: %s", instance:mode()) + local configs_required = instance:configs() + if configs_required then + cprint(" -> ${cyan}configs${clear}:") + for name, value in pairs(configs_required) do + cprint(" -> %s: %s", name, value) + end + end + + -- show configs + local configs = instance:get("configs") + if configs then + cprint(" -> ${magenta}configs${clear}:") + for _, conf in ipairs(configs) do + cprint(" -> ${cyan}%s${clear}:", conf) + for name, value in pairs(instance:extraconf("configs", conf)) do + if type(value) == "table" then + value = string.serialize(value, true) + end + cprint(" -> %s: %s", name, value) + end + end + end + -- end print("") end diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua index 91d5bb07f..e3a6579d6 100644 --- a/xmake/core/package/package.lua +++ b/xmake/core/package/package.lua @@ -76,6 +76,11 @@ function _instance:add(name, ...) self._INFO:apival_add(name, ...) end +-- get the extra configuration +function _instance:extraconf(name, item, key) + return self._INFO:extraconf(name, item, key) +end + -- get the package description function _instance:description() return self:get("description") @@ -418,11 +423,19 @@ function _instance:requireinfo_set(requireinfo) self._REQUIREINFO = requireinfo end --- get the all configuration values of package +-- get the given configuration value of package +function _instance:config(name) + local configs = self:configs() + if configs then + return configs[name] + end +end + +-- get the configurations of package function _instance:configs() local requireinfo = self:requireinfo() if requireinfo then - return requireinfo.config + return requireinfo.configs end end @@ -447,14 +460,6 @@ function _instance:group() end end --- get the given configuration value of package -function _instance:config(name) - local configs = self:configs() - if configs then - return configs[name] - end -end - -- is optional package? function _instance:optional() local requireinfo = self:requireinfo() @@ -691,6 +696,7 @@ function package.apis() , "package.add_deps" , "package.add_urls" , "package.add_imports" + , "package.add_configs" } , script = { |
