summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-03-11 00:50:26 +0800
committerruki <[email protected]>2020-03-10 23:02:36 +0800
commit6bad4b9374bab62afcaaa55f53c5f047e274a286 (patch)
treeb6662a122f750943df0c4bc943a3ee43237dc97a
parentacca2c3115570e7f3b1ef059413c4dce49c520d1 (diff)
add LD_LIBRARY_PATH for package
-rw-r--r--xmake/actions/require/install.lua2
-rw-r--r--xmake/core/package/package.lua7
-rw-r--r--xmake/modules/private/action/require/packagenv.lua3
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)