diff options
| author | ruki <[email protected]> | 2019-09-29 08:07:13 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-09-29 08:07:13 +0800 |
| commit | 07c8483607759f79cb3cfbf7351ee07cc714d8b9 (patch) | |
| tree | bbfa0bddff65cea434a08eab27e240113d1b3f0a /xmake/actions/require/impl/environment.lua | |
| parent | 4df867463bac4c5987441696eabbf6a1f43ea9e4 (diff) | |
load git package env
Diffstat (limited to 'xmake/actions/require/impl/environment.lua')
| -rw-r--r-- | xmake/actions/require/impl/environment.lua | 65 |
1 files changed, 3 insertions, 62 deletions
diff --git a/xmake/actions/require/impl/environment.lua b/xmake/actions/require/impl/environment.lua index 65d39e52e..bcf2822c4 100644 --- a/xmake/actions/require/impl/environment.lua +++ b/xmake/actions/require/impl/environment.lua @@ -23,68 +23,9 @@ import("core.project.config") import("core.platform.environment") import("core.package.package", {alias = "core_package"}) import("lib.detect.find_tool") +import("private.action.require.packagenv") import("package") --- enter the package environments -function _enter_package(package_name, envs, installdir) - - -- save the old environments - _g._OLDENVS = _g._OLDENVS or {} - local oldenvs = _g._OLDENVS[package_name] - if not oldenvs then - oldenvs = {} - _g._OLDENVS[package_name] = oldenvs - end - - -- add the new environments - oldenvs.PATH = os.getenv("PATH") - for name, values in pairs(envs) do - oldenvs[name] = oldenvs[name] or os.getenv(name) - if name == "PATH" then - for _, value in ipairs(values) do - if path.is_absolute(value) then - os.addenv(name, value) - else - os.addenv(name, path.join(installdir, value)) - end - end - else - os.addenv(name, unpack(table.wrap(values))) - end - end -end - --- leave the package environments -function _leave_package(package_name) - _g._OLDENVS = _g._OLDENVS or {} - local oldenvs = _g._OLDENVS[package_name] - if oldenvs then - for name, values in pairs(oldenvs) do - os.setenv(name, values) - end - _g._OLDENVS[package_name] = nil - end -end - --- enter environment of the given binary packages, git, 7z, .. -function _enter_packages(...) - for _, name in ipairs({...}) do - for _, manifest_file in ipairs(os.files(path.join(core_package.installdir(), name:sub(1, 1), name, "*", "*", "manifest.txt"))) do - local manifest = io.load(manifest_file) - if manifest and manifest.plat == os.host() and manifest.arch == os.arch() then - _enter_package(name, manifest.envs, path.directory(manifest_file)) - end - end - end -end - --- leave environment of the given binary packages, git, 7z, .. -function _leave_packages(...) - for _, name in ipairs({...}) do - _leave_package(name) - end -end - -- enter environment -- -- ensure that we can find some basic tools: git, unzip, ... @@ -102,7 +43,7 @@ function enter() end -- enter the environments of git and 7z - _enter_packages("git", "7z") + packagenv.enter("git", "7z") -- git not found? install it first local packages = {} @@ -132,7 +73,7 @@ function leave() _g._PACKAGES = nil -- leave the environments of git and 7z - _leave_packages("7z", "git") + packagenv.leave("7z", "git") -- restore search pathes of toolchains environment.leave("toolchains") |
