summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2020-10-29 00:06:40 +0800
committerruki <[email protected]>2020-10-29 00:06:40 +0800
commitd8f2dd826196dd6ec22b86a7da6bf5579b3d59a0 (patch)
treec821b071ed943426bc7edc1a44d64910eca12068
parent8142f4a4925adf169d7aa7c3fd8dfceed96fd797 (diff)
improve xrepo/env
-rw-r--r--xmake/modules/private/xrepo/action/env.lua20
1 files changed, 19 insertions, 1 deletions
diff --git a/xmake/modules/private/xrepo/action/env.lua b/xmake/modules/private/xrepo/action/env.lua
index ba299ca8b..f638abcbc 100644
--- a/xmake/modules/private/xrepo/action/env.lua
+++ b/xmake/modules/private/xrepo/action/env.lua
@@ -158,6 +158,8 @@ end
-- add package environments
function _package_addenvs(envs, instance)
+
+ -- add run envs, e.g. PATH, LD_LIBRARY_PATH, ..
local installdir = instance:installdir()
for name, values in pairs(instance:envs()) do
if name == "PATH" or name == "LD_LIBRARY_PATH" then
@@ -172,6 +174,22 @@ function _package_addenvs(envs, instance)
_package_addenv(envs, name, unpack(table.wrap(values)))
end
end
+
+ -- add library envs, e.g. ACLOCAL_PATH, PKG_CONFIG_PATH ..
+ if instance:kind() ~= "binary" then
+ local pkgconfig = path.join(installdir, "lib", "pkgconfig")
+ if os.isdir(pkgconfig) then
+ _package_addenv(envs, "PKG_CONFIG_PATH", pkgconfig)
+ end
+ pkgconfig = path.join(installdir, "share", "pkgconfig")
+ if os.isdir(pkgconfig) then
+ _package_addenv(envs, "PKG_CONFIG_PATH", pkgconfig)
+ end
+ local aclocal = path.join(installdir, "share", "aclocal")
+ if os.isdir(aclocal) then
+ _package_addenv(envs, "ACLOCAL_PATH", aclocal)
+ end
+ end
end
-- get package environments
@@ -182,7 +200,7 @@ function _package_getenvs()
_enter_project()
packages = packages:split(',', {plain = true})
local requires, requires_extra = _get_requires(packages)
- for _, instance in irpairs(package.load_packages(requires, {requires_extra = requires_extra})) do
+ for _, instance in ipairs(package.load_packages(requires, {requires_extra = requires_extra})) do
_package_addenvs(envs, instance)
end
end