diff options
| author | KnightJun <[email protected]> | 2021-01-18 10:18:58 +0800 |
|---|---|---|
| committer | KnightJun <[email protected]> | 2021-01-18 11:47:03 +0800 |
| commit | b2b1b52eb1286d1d7631c4e316b5785b8cf08e95 (patch) | |
| tree | bec6d61a26326835c7c997dcbb216401907b39cc | |
| parent | 33294c909c219aaef9227aa822b2ac756041ac28 (diff) | |
Avoid adding envs repeatedly
| -rw-r--r-- | xmake/actions/run/main.lua | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/xmake/actions/run/main.lua b/xmake/actions/run/main.lua index 97a0bda88..88156f5b5 100644 --- a/xmake/actions/run/main.lua +++ b/xmake/actions/run/main.lua @@ -90,7 +90,11 @@ function _on_run_target(target) end -- recursively target add env -function _add_target_pkgenvs(target, oldenvs) +function _add_target_pkgenvs(target, oldenvs, 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) @@ -98,7 +102,7 @@ function _add_target_pkgenvs(target, oldenvs) os.addenv(name, unpack(values)) end for _, dep in ipairs(target:orderdeps()) do - _add_target_pkgenvs(dep, oldenvs) + _add_target_pkgenvs(dep, oldenvs, targets_added) end end @@ -107,7 +111,7 @@ function _run(target) -- enter the environments of the target packages local oldenvs = {} - _add_target_pkgenvs(target, oldenvs) + _add_target_pkgenvs(target, oldenvs, {}) -- the target scripts local scripts = |
