diff options
| author | KnightJun <[email protected]> | 2021-01-18 09:25:51 +0800 |
|---|---|---|
| committer | KnightJun <[email protected]> | 2021-01-18 09:25:51 +0800 |
| commit | 33294c909c219aaef9227aa822b2ac756041ac28 (patch) | |
| tree | b83e68fac33d53c9ef651fb99aa80aa3f7c2b5ac | |
| parent | ecd598a3de7ffa62373446e0bc237c846f3a1bca (diff) | |
Avoid breaking the original envs
| -rw-r--r-- | xmake/actions/run/main.lua | 12 |
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 = |
