diff options
| author | ruki <[email protected]> | 2020-10-29 00:06:40 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-10-29 00:06:40 +0800 |
| commit | d8f2dd826196dd6ec22b86a7da6bf5579b3d59a0 (patch) | |
| tree | c821b071ed943426bc7edc1a44d64910eca12068 | |
| parent | 8142f4a4925adf169d7aa7c3fd8dfceed96fd797 (diff) | |
improve xrepo/env
| -rw-r--r-- | xmake/modules/private/xrepo/action/env.lua | 20 |
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 |
