summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKnightJun <[email protected]>2021-01-18 09:25:51 +0800
committerKnightJun <[email protected]>2021-01-18 09:25:51 +0800
commit33294c909c219aaef9227aa822b2ac756041ac28 (patch)
treeb83e68fac33d53c9ef651fb99aa80aa3f7c2b5ac
parentecd598a3de7ffa62373446e0bc237c846f3a1bca (diff)
Avoid breaking the original envs
-rw-r--r--xmake/actions/run/main.lua12
1 files changed, 6 insertions, 6 deletions
diff --git a/xmake/actions/run/main.lua b/xmake/actions/run/main.lua
index 872d5d7ea..97a0bda88 100644
--- a/xmake/actions/run/main.lua
+++ b/xmake/actions/run/main.lua
@@ -90,12 +90,15 @@ function _on_run_target(target)
end
-- recursively target add env
-function _add_target_pkgenvs(target)
+function _add_target_pkgenvs(target, oldenvs)
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
for _, dep in ipairs(target:orderdeps()) do
- _add_target_pkgenvs(dep)
+ _add_target_pkgenvs(dep, oldenvs)
end
end
@@ -104,10 +107,7 @@ function _run(target)
-- enter the environments of the target packages
local oldenvs = {}
- for name, values in pairs(target:pkgenvs()) do
- oldenvs[name] = os.getenv(name)
- end
- _add_target_pkgenvs(target)
+ _add_target_pkgenvs(target, oldenvs)
-- the target scripts
local scripts =