diff options
| author | ruki <[email protected]> | 2018-09-23 21:03:42 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2018-09-23 21:03:42 +0800 |
| commit | d9d422c8fe2f838052fc2dd92b6801a81a515b34 (patch) | |
| tree | 760c31d11c480a36ac0378824c270abda8b9d60b /xmake/core/platform/environment.lua | |
| parent | 6935be8876c358d89b5c5c2d5c0a56f4ea9d1590 (diff) | |
add envars for package
Diffstat (limited to 'xmake/core/platform/environment.lua')
| -rw-r--r-- | xmake/core/platform/environment.lua | 39 |
1 files changed, 30 insertions, 9 deletions
diff --git a/xmake/core/platform/environment.lua b/xmake/core/platform/environment.lua index 0a549df17..381181004 100644 --- a/xmake/core/platform/environment.lua +++ b/xmake/core/platform/environment.lua @@ -35,12 +35,21 @@ local package = require("package/package") function environment._enter_toolchains() -- save the toolchains environment - environment._PATH = os.getenv("PATH") - environment._LD_LIBRARY_PATH = os.getenv("LD_LIBRARY_PATH") + environment._PATH = os.getenv("PATH") - -- add search binary pathes of packages - os.addenv("PATH", path.join(package.prefixdir(true), "release", os.host(), os.arch(), "bin")) -- globaldir/release/../bin - os.addenv("PATH", path.join(package.prefixdir(false), "release", os.host(), os.arch(), "bin")) -- localdir/release/../bin + -- add global search binary pathes + local globaldir = package.prefixdir(true, false, os.host(), os.arch()) + for _, dir in ipairs(table.wrap(package.getenv(true, false, os.host(), os.arch(), "PATH"))) do + os.addenv("PATH", path.join(globaldir, dir)) + end + os.addenv("PATH", path.join(globaldir, "bin")) + + -- add local search binary pathes + local localdir = package.prefixdir(false, false, os.host(), os.arch()) + for _, dir in ipairs(table.wrap(package.getenv(false, false, os.host(), os.arch(), "PATH"))) do + os.addenv("PATH", path.join(localdir, dir)) + end + os.addenv("PATH", path.join(localdir, "bin")) end -- leave the toolchains environment @@ -54,12 +63,23 @@ end function environment._enter_run() -- save the running environment + environment._PATH = os.getenv("PATH") environment._LD_LIBRARY_PATH = os.getenv("LD_LIBRARY_PATH") - -- add search library pathes of packages - if os.host() ~= "windows" then - os.addenv("LD_LIBRARY_PATH", path.join(package.prefixdir(true), "release", os.host(), os.arch(), "lib")) -- globaldir/release/../lib - os.addenv("LD_LIBRARY_PATH", path.join(package.prefixdir(false), "release", os.host(), os.arch(), "lib")) -- localdir/release/../lib + -- add global search library pathes of pathes + local globaldir = package.prefixdir(true, false, os.host(), os.arch()) + if os.host() == "windows" then + os.addenv("PATH", path.join(globaldir, "lib")) + else + os.addenv("LD_LIBRARY_PATH", path.join(globaldir, "lib")) + end + + -- add local search library pathes of pathes + local localdir = package.prefixdir(false, false, os.host(), os.arch()) + if os.host() == "windows" then + os.addenv("PATH", path.join(localdir, "lib")) + else + os.addenv("LD_LIBRARY_PATH", path.join(localdir, "lib")) end end @@ -67,6 +87,7 @@ end function environment._leave_run() -- leave the running environment + os.setenv("PATH", environment._PATH) os.setenv("LD_LIBRARY_PATH", environment._LD_LIBRARY_PATH) end |
