diff options
| author | ruki <[email protected]> | 2020-05-02 21:36:40 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-05-02 21:42:01 +0800 |
| commit | 6f2c2183fb68dba467e8b0b781d8ecb9054ee716 (patch) | |
| tree | 3f1ce560c82e89fa2e24324ae391ca091791bde9 /xmake/core/project/target.lua | |
| parent | 5a60c8f0d02f3624909f85dff8d5231af63807d3 (diff) | |
add target:get_from_xxx
Diffstat (limited to 'xmake/core/project/target.lua')
| -rw-r--r-- | xmake/core/project/target.lua | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua index f5b69de76..5e67d0f7e 100644 --- a/xmake/core/project/target.lua +++ b/xmake/core/project/target.lua @@ -305,6 +305,47 @@ function _instance:get(name, opt) end end +-- 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)) + end + end + return values +end + +-- get values from target options +function _instance:get_from_opts(name) + local values = {} + for _, opt in ipairs(self:orderopts()) do + table.join2(values, table.wrap(opt:get(name))) + end + return values +end + +-- get values from target packages +function _instance:get_from_pkgs(name) + local values = {} + for _, pkg in ipairs(self:orderpkgs()) 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()) + if configinfo and configinfo[name] then + table.join2(values, configinfo[name]) + else + -- uses the builtin package configs + table.join2(values, pkg:get(name)) + end + end + return values +end + -- set the value to the target info function _instance:set(name, ...) self._INFO:apival_set(name, ...) |
