diff options
| author | ruki <[email protected]> | 2020-03-11 00:50:26 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-03-10 23:02:36 +0800 |
| commit | 6bad4b9374bab62afcaaa55f53c5f047e274a286 (patch) | |
| tree | b6662a122f750943df0c4bc943a3ee43237dc97a | |
| parent | acca2c3115570e7f3b1ef059413c4dce49c520d1 (diff) | |
add LD_LIBRARY_PATH for package
| -rw-r--r-- | xmake/actions/require/install.lua | 2 | ||||
| -rw-r--r-- | xmake/core/package/package.lua | 7 | ||||
| -rw-r--r-- | xmake/modules/private/action/require/packagenv.lua | 3 |
3 files changed, 8 insertions, 4 deletions
diff --git a/xmake/actions/require/install.lua b/xmake/actions/require/install.lua index c8b0246e1..4220c353a 100644 --- a/xmake/actions/require/install.lua +++ b/xmake/actions/require/install.lua @@ -56,7 +56,7 @@ function _register_required_package(instance, requireinfo) local hasenvs = false local installdir = instance:installdir() for name, values in pairs(instance:envs()) do - if name == "PATH" then + if name == "PATH" or name == "LD_LIBRARY_PATH" then for _, value in ipairs(values) do envs[name] = envs[name] or {} if path.is_absolute(value) then diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua index 83e8f82ba..785dde904 100644 --- a/xmake/core/package/package.lua +++ b/xmake/core/package/package.lua @@ -395,6 +395,10 @@ function _instance:envs() if self:kind() == "binary" then envs.PATH = {"bin"} end + -- add LD_LIBRARY_PATH to load *.so directory + if os.host() ~= "windows" and self:is_plat(os.host()) and self:is_arch(os.arch()) then + envs.LD_LIBRARY_PATH = {"lib"} + end self._ENVS = envs end return envs @@ -425,12 +429,13 @@ function _instance:envs_enter() local installdir = self:installdir() for name, values in pairs(self:envs()) do oldenvs[name] = oldenvs[name] or os.getenv(name) - if name == "PATH" then + if name == "PATH" or name == "LD_LIBRARY_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)) + print(name, path.join(installdir, value)) end end else diff --git a/xmake/modules/private/action/require/packagenv.lua b/xmake/modules/private/action/require/packagenv.lua index 3f21f09ce..f7d8a94df 100644 --- a/xmake/modules/private/action/require/packagenv.lua +++ b/xmake/modules/private/action/require/packagenv.lua @@ -33,10 +33,9 @@ function _enter_package(package_name, envs, installdir) 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 + if name == "PATH" or name == "LD_LIBRARY_PATH" then for _, value in ipairs(values) do if path.is_absolute(value) then os.addenv(name, value) |
