summaryrefslogtreecommitdiff
path: root/xmake/actions/run/main.lua
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/actions/run/main.lua')
-rw-r--r--xmake/actions/run/main.lua19
1 files changed, 6 insertions, 13 deletions
diff --git a/xmake/actions/run/main.lua b/xmake/actions/run/main.lua
index 04b0d76d4..a74845f95 100644
--- a/xmake/actions/run/main.lua
+++ b/xmake/actions/run/main.lua
@@ -84,19 +84,14 @@ function _on_run_target(target)
end
-- recursively target add env
-function _add_target_pkgenvs(target, oldenvs, targets_added)
+function _add_target_pkgenvs(target, targets_added)
if targets_added[target:name()] then
return
end
targets_added[target:name()] = true
- for name, values in pairs(target:pkgenvs()) do
- if not oldenvs[name] then
- oldenvs[name] = os.getenv(name)
- end
- os.addenv(name, unpack(values))
- end
+ os.addenvs(target:pkgenvs())
for _, dep in ipairs(target:orderdeps()) do
- _add_target_pkgenvs(dep, oldenvs, targets_added)
+ _add_target_pkgenvs(dep, targets_added)
end
end
@@ -109,8 +104,8 @@ function _run(target)
end
-- enter the environments of the target packages
- local oldenvs = {}
- _add_target_pkgenvs(target, oldenvs, {})
+ local oldenvs = os.getenvs()
+ _add_target_pkgenvs(target, {})
-- the target scripts
local scripts =
@@ -145,9 +140,7 @@ function _run(target)
end
-- leave the environments of the target packages
- for name, values in pairs(oldenvs) do
- os.setenv(name, values)
- end
+ os.setenvs(oldenvs)
end
-- check targets