diff options
| author | ruki <[email protected]> | 2019-03-20 00:43:43 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2019-03-19 22:22:18 +0800 |
| commit | d5c6501523fd6509a65e77c0c34a0d3529ddcb94 (patch) | |
| tree | 4edf516da72b2185098da5845e65f4a777344d41 | |
| parent | 568e0263260ca2c3f81bc842c273181c00e0b4f4 (diff) | |
pass prefix to cmake
| -rw-r--r-- | xmake/modules/package/tools/cmake.lua | 27 |
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 |
