summaryrefslogtreecommitdiff
path: root/xmake/core/project/target.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2021-05-11 00:41:32 +0800
committerruki <[email protected]>2021-05-11 10:28:37 +0800
commit0b9b15fb9cd681831d3964474f5935e4e38e0e60 (patch)
tree41e7b63ea7b72811aa38eba5937d9212eb51a52f /xmake/core/project/target.lua
parent1a1b4ddb49c43103f3c498d74dbee267a210fad7 (diff)
improve target:pkgenvs
Diffstat (limited to 'xmake/core/project/target.lua')
-rw-r--r--xmake/core/project/target.lua15
1 files changed, 9 insertions, 6 deletions
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index f4bf69efb..3b5c67427 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -140,10 +140,7 @@ end
function _instance:_load_after()
-- enter the environments of the target packages
- local oldenvs = os.getenvs()
- for name, values in pairs(self:pkgenvs()) do
- os.addenv(name, unpack(values))
- end
+ local oldenvs = os.addenvs(self:pkgenvs())
-- do after_load with target rules
local ok, errors = self:_load_rules("after")
@@ -792,8 +789,14 @@ function _instance:pkgenvs()
local envs = pkg:get("envs")
if envs then
for name, values in pairs(envs) do
- pkgenvs[name] = pkgenvs[name] or {}
- table.join2(pkgenvs[name], values)
+ if type(values) == "table" then
+ values = path.joinenv(values)
+ end
+ if pkgenvs[name] then
+ pkgenvs[name] = pkgenvs[name] .. path.envsep() .. values
+ else
+ pkgenvs[name] = values
+ end
end
end
end