summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-10-18 22:30:16 +0800
committerruki <[email protected]>2022-10-18 22:30:16 +0800
commit5339aa483ec9afccfad3281f6ed8117d2a097795 (patch)
treebfed6b277fcaa70a7e0670cc24d34a710f2b3933
parent123086c6e378ee5232158ef1d63d9669f29d3f5b (diff)
improve to get values from packages
-rw-r--r--xmake/core/project/target.lua16
1 files changed, 12 insertions, 4 deletions
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index d879f656a..1d8dde40e 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -414,24 +414,32 @@ end
function _instance:get_from_pkgs(name, opt)
local values = {}
for _, pkg in ipairs(self:orderpkgs(opt)) do
- -- uses them instead of the builtin configs if exists extra package config
- -- e.g. `add_packages("xxx", {links = "xxx"})`
local configinfo = self:pkgconfig(pkg:name())
+ -- get values from package components
+ -- e.g. `add_packages("sfml", {components = {"graphics", "window"}})`
if configinfo and configinfo.components then
local components = table.wrap(pkg:get("components"))
+ local components_values = {}
for _, component_name in ipairs(table.wrap(configinfo.components)) do
local info = components[component_name]
if info then
- table.join2(values, info[name] or pkg:get(name))
+ table.join2(components_values, info[name])-- or pkg:get(name))
else
local components_str = table.concat(table.wrap(configinfo.components), ", ")
utils.warning("unknown component(%s) in add_packages(%s, {components = {%s}})", component_name, pkg:name(), components_str)
end
end
+ if #components_values > 0 then
+ table.join2(values, components_values)
+ else
+ table.join2(values, pkg:get(name))
+ end
+ -- get values instead of the builtin configs if exists extra package config
+ -- e.g. `add_packages("xxx", {links = "xxx"})`
elseif configinfo and configinfo[name] then
table.join2(values, configinfo[name])
else
- -- uses the builtin package configs
+ -- get values from the builtin package configs
table.join2(values, pkg:get(name))
end
end