diff options
| -rw-r--r-- | xmake/actions/build/build.lua | 12 | ||||
| -rw-r--r-- | xmake/actions/clean/main.lua | 12 | ||||
| -rw-r--r-- | xmake/actions/install/install.lua | 12 | ||||
| -rw-r--r-- | xmake/actions/package/main.lua | 12 | ||||
| -rw-r--r-- | xmake/actions/uninstall/uninstall.lua | 12 |
5 files changed, 60 insertions, 0 deletions
diff --git a/xmake/actions/build/build.lua b/xmake/actions/build/build.lua index 33bb920dc..03045ec8c 100644 --- a/xmake/actions/build/build.lua +++ b/xmake/actions/build/build.lua @@ -71,6 +71,13 @@ end -- build the given target function _build_target(target) + -- enter the environments of the target packages + local oldenvs = {} + for name, values in pairs(target:pkgenvs()) do + oldenvs[name] = os.getenv(name) + os.addenv(name, unpack(values)) + end + -- the target scripts local scripts = { @@ -138,6 +145,11 @@ function _build_target(target) end end + -- leave the environments of the target packages + for name, values in pairs(oldenvs) do + os.setenv(name, values) + end + -- update target index _g.targetindex = _g.targetindex + 1 end diff --git a/xmake/actions/clean/main.lua b/xmake/actions/clean/main.lua index b5c90cd75..7717baf1d 100644 --- a/xmake/actions/clean/main.lua +++ b/xmake/actions/clean/main.lua @@ -114,6 +114,13 @@ end -- clean the given target files function _clean_target(target) + -- enter the environments of the target packages + local oldenvs = {} + for name, values in pairs(target:pkgenvs()) do + oldenvs[name] = os.getenv(name) + os.addenv(name, unpack(values)) + end + -- the target scripts local scripts = { @@ -159,6 +166,11 @@ function _clean_target(target) script(target, {origin = (i == 3 and _do_clean_target or nil)}) end end + + -- leave the environments of the target packages + for name, values in pairs(oldenvs) do + os.setenv(name, values) + end end -- clean the given target and all dependent targets diff --git a/xmake/actions/install/install.lua b/xmake/actions/install/install.lua index fc8db342c..db035b3fb 100644 --- a/xmake/actions/install/install.lua +++ b/xmake/actions/install/install.lua @@ -157,6 +157,13 @@ function _install_target(target) -- enter project directory local oldir = os.cd(project.directory()) + -- enter the environments of the target packages + local oldenvs = {} + for name, values in pairs(target:pkgenvs()) do + oldenvs[name] = os.getenv(name) + os.addenv(name, unpack(values)) + end + -- the target scripts local scripts = { @@ -203,6 +210,11 @@ function _install_target(target) end end + -- leave the environments of the target packages + for name, values in pairs(oldenvs) do + os.setenv(name, values) + end + -- leave project directory os.cd(oldir) end diff --git a/xmake/actions/package/main.lua b/xmake/actions/package/main.lua index f4cd40405..38a7df462 100644 --- a/xmake/actions/package/main.lua +++ b/xmake/actions/package/main.lua @@ -168,6 +168,13 @@ function _package(target) -- enter project directory local oldir = os.cd(project.directory()) + -- enter the environments of the target packages + local oldenvs = {} + for name, values in pairs(target:pkgenvs()) do + oldenvs[name] = os.getenv(name) + os.addenv(name, unpack(values)) + end + -- the target scripts local scripts = { @@ -200,6 +207,11 @@ function _package(target) end end + -- leave the environments of the target packages + for name, values in pairs(oldenvs) do + os.setenv(name, values) + end + -- leave project directory os.cd(oldir) end diff --git a/xmake/actions/uninstall/uninstall.lua b/xmake/actions/uninstall/uninstall.lua index f79727947..0d1c07d51 100644 --- a/xmake/actions/uninstall/uninstall.lua +++ b/xmake/actions/uninstall/uninstall.lua @@ -134,6 +134,13 @@ function _uninstall_target(target) -- enter project directory local oldir = os.cd(project.directory()) + -- enter the environments of the target packages + local oldenvs = {} + for name, values in pairs(target:pkgenvs()) do + oldenvs[name] = os.getenv(name) + os.addenv(name, unpack(values)) + end + -- the target scripts local scripts = { @@ -180,6 +187,11 @@ function _uninstall_target(target) end end + -- leave the environments of the target packages + for name, values in pairs(oldenvs) do + os.setenv(name, values) + end + -- leave project directory os.cd(oldir) end |
