summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2019-03-20 00:43:43 +0800
committerruki <[email protected]>2019-03-19 22:22:18 +0800
commitd5c6501523fd6509a65e77c0c34a0d3529ddcb94 (patch)
tree4edf516da72b2185098da5845e65f4a777344d41
parent568e0263260ca2c3f81bc842c273181c00e0b4f4 (diff)
pass prefix to cmake
-rw-r--r--xmake/modules/package/tools/cmake.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua
index c139d3b6d..f7afc56c5 100644
--- a/xmake/modules/package/tools/cmake.lua
+++ b/xmake/modules/package/tools/cmake.lua
@@ -58,6 +58,27 @@ function _get_configs(package, configs)
return configs
end
+-- enter environments
+function _enter_envs(package)
+
+ -- get old environments
+ local envs = {}
+ envs.CMAKE_PREFIX_PATH = os.getenv("CMAKE_PREFIX_PATH")
+
+ -- set new environments
+ for _, dep in ipairs(package:orderdeps()) do
+ os.addenv("CMAKE_PREFIX_PATH", dep:installdir())
+ end
+ return envs
+end
+
+-- leave environments
+function _leave_envs(package, envs)
+ for k, v in pairs(envs) do
+ os.setenv(k, v)
+ end
+end
+
-- install package
function install(package, configs)
@@ -85,6 +106,9 @@ function install(package, configs)
end
table.insert(argv, '..')
+ -- enter environments
+ local envs = _enter_envs(package)
+
-- generate build file
os.vrunv("cmake", argv)
@@ -108,6 +132,9 @@ function install(package, configs)
os.cp("install/lib", package:installdir())
os.cp("install/include", package:installdir())
end
+
+ -- leave environments
+ _leave_envs(package, envs)
os.cd(oldir)
end