diff options
| author | ruki <[email protected]> | 2018-10-05 00:46:43 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2018-10-04 22:40:21 +0800 |
| commit | 2795b39f0b54d16c44ebee788a609108685c2e81 (patch) | |
| tree | bcfadb0810311dc185f806852f7777dc3ec2064f /xmake/actions/require/impl | |
| parent | f1edfe402c882ad01e471dbdfbf019533414ee49 (diff) | |
add pkgconfig search pathes
Diffstat (limited to 'xmake/actions/require/impl')
4 files changed, 31 insertions, 5 deletions
diff --git a/xmake/actions/require/impl/action/install.lua b/xmake/actions/require/impl/action/install.lua index 8885889fa..b720d7bc8 100644 --- a/xmake/actions/require/impl/action/install.lua +++ b/xmake/actions/require/impl/action/install.lua @@ -79,8 +79,8 @@ function main(package) -- create the install task local installtask = function () - -- clean the install directory first - os.tryrm(package:installdir()) + -- uninstall the install directory first + prefix.uninstall(package) -- install it for i = 1, 3 do diff --git a/xmake/actions/require/impl/action/prefix/install.lua b/xmake/actions/require/impl/action/prefix/install.lua index 78c6f1ed0..4e0d507a0 100644 --- a/xmake/actions/require/impl/action/prefix/install.lua +++ b/xmake/actions/require/impl/action/prefix/install.lua @@ -198,9 +198,6 @@ end -- install package to the prefix directory function main(package) - -- uninstall the prefix package files first - uninstall(package) - -- init some pathes _g.prefixdir = package:prefixdir() _g.installdir = package:installdir() diff --git a/xmake/actions/require/impl/action/prefix/uninstall.lua b/xmake/actions/require/impl/action/prefix/uninstall.lua index 420524fd2..9c77cbb96 100644 --- a/xmake/actions/require/impl/action/prefix/uninstall.lua +++ b/xmake/actions/require/impl/action/prefix/uninstall.lua @@ -49,5 +49,8 @@ function main(package) -- remove the prefix file os.tryrm(package:prefixfile()) + + -- remove the install directory + os.tryrm(package:installdir()) end diff --git a/xmake/actions/require/impl/environment.lua b/xmake/actions/require/impl/environment.lua index f340ab7eb..e67427b77 100644 --- a/xmake/actions/require/impl/environment.lua +++ b/xmake/actions/require/impl/environment.lua @@ -25,6 +25,7 @@ -- imports import("core.project.config") import("core.platform.environment") +import("core.package.package", {alias = "core_package"}) import("lib.detect.find_tool") import("package") @@ -43,11 +44,36 @@ function enter() if not find_tool("git") then package.install_packages("git") end + + -- get prefix directories + local plat = get_config("plat") + local arch = get_config("arch") + _g.prefixdirs = _g.prefixdirs or + { + core_package.prefixdir(false, false, plat, arch), + core_package.prefixdir(false, true, plat, arch), + core_package.prefixdir(true, false, plat, arch), + core_package.prefixdir(true, true, plat, arch) + } + + -- add search directories of pkgconfig, aclocal + _g._ACLOCAL_PATH = os.getenv("ACLOCAL_PATH") + _g._PKG_CONFIG_PATH = os.getenv("PKG_CONFIG_PATH") + if not is_plat("windows") then + for _, prefixdir in ipairs(_g.prefixdirs) do + os.addenv("ACLOCAL_PATH", path.join(prefixdir, "share", "aclocal")) + os.addenv("PKG_CONFIG_PATH", path.join(prefixdir, "lib", "pkgconfig")) + end + end end -- leave environment function leave() + -- restore search directories of pkgconfig, aclocal + os.setenv("ACLOCAL_PATH", _g._ACLOCAL_PATH) + os.setenv("PKG_CONFIG_PATH", _g._PKG_CONFIG_PATH) + -- restore search pathes of toolchains environment.leave("toolchains") end |
