summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-10-26 22:47:07 +0800
committerruki <[email protected]>2023-10-26 22:47:07 +0800
commitf9dde79e33a58184a40d876faf350cd47391e2c0 (patch)
treeb22fe78054ffbf8a32957a8b1b446e6ea79ff5c6
parentc33fd31a36e8a4325ab325af8a5f52ff71a27cec (diff)
improve get_from_deps
-rw-r--r--xmake/core/project/target.lua34
1 files changed, 23 insertions, 11 deletions
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index 3654a51d0..d179855bb 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -299,6 +299,23 @@ end
-- get values from target deps with {interface|public = ...}
function _instance:_get_from_deps(name, result_values, result_sources, opt)
+ local orderdeps = self:orderdeps()
+ local total = #orderdeps
+ for idx, _ in ipairs(orderdeps) do
+ local dep = orderdeps[total + 1 - idx]
+ local depinherit = self:extraconf("deps", dep:name(), "inherit")
+ if depinherit == nil or depinherit then
+ local values = dep:get(name, opt)
+ if values ~= nil then
+ table.insert(result_values, values)
+ table.insert(result_sources, "dep::" .. dep:name())
+ end
+ --[[TODO
+ table.join2(values, dep:get_from_opts(name, opt))
+ table.join2(values, dep:get_from_pkgs(name, opt))
+ ]]
+ end
+ end
end
-- get values from target options with {interface|public = ...}
@@ -516,19 +533,14 @@ end
-- deprecated: get values from target dependencies
function _instance:get_from_deps(name, opt)
- local values = {}
- local orderdeps = self:orderdeps()
- local total = #orderdeps
- for idx, _ in ipairs(orderdeps) do
- local dep = orderdeps[total + 1 - idx]
- local depinherit = self:extraconf("deps", dep:name(), "inherit")
- if depinherit == nil or depinherit then
- table.join2(values, dep:get(name, opt))
- table.join2(values, dep:get_from_opts(name, opt))
- table.join2(values, dep:get_from_pkgs(name, opt))
+ local result = {}
+ local values = self:get_from(name, "dep::*", opt)
+ if values then
+ for _, v in ipairs(values) do
+ table.join2(result, v)
end
end
- return values
+ return result
end
-- deprecated: get values from target options with {interface|public = ...}