diff options
| author | ruki <[email protected]> | 2023-09-02 00:38:30 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2023-09-02 00:38:30 +0800 |
| commit | 28b382739fa9cef9298b0e515e020d0f5ab7039b (patch) | |
| tree | 9e33b17d4fe61b8eecda5153e92564001028c409 | |
| parent | a3f09cd2c9ef5e73f6f49cb4f335b9d6361ace4f (diff) | |
improve object target
| -rw-r--r-- | xmake/core/project/target.lua | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua index 491c00729..c296a529e 100644 --- a/xmake/core/project/target.lua +++ b/xmake/core/project/target.lua @@ -1614,9 +1614,12 @@ function _instance:objectfiles() local deduplicate = batchcount > 1 -- get object files from all dependent targets (object kind) - if self:orderdeps() then - for _, dep in ipairs(self:orderdeps()) do - if dep:kind() == "object" then + -- @note we only merge objects in plain deps, e.g. binary -> (static -> object, object ...) + local plaindeps = self:get("deps") + if plaindeps and (self:is_binary() or self:is_shared() or self:is_static()) then + for _, depname in ipairs(table.wrap(plaindeps)) do + local dep = self:dep(depname) + if dep and dep:is_object() then table.join2(objectfiles, dep:objectfiles()) deduplicate = true end |
