summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xmake/modules/package/tools/cmake.lua14
1 files changed, 12 insertions, 2 deletions
diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua
index f7afc56c5..1f3ebaea7 100644
--- a/xmake/modules/package/tools/cmake.lua
+++ b/xmake/modules/package/tools/cmake.lua
@@ -63,11 +63,21 @@ function _enter_envs(package)
-- get old environments
local envs = {}
- envs.CMAKE_PREFIX_PATH = os.getenv("CMAKE_PREFIX_PATH")
+ envs.CMAKE_PREFIX_PATH = os.getenv("CMAKE_PREFIX_PATH")
+ envs.CMAKE_INCLUDE_PATH = os.getenv("CMAKE_INCLUDE_PATH")
+ envs.CMAKE_LIBRARY_PATH = os.getenv("CMAKE_LIBRARY_PATH")
-- set new environments
for _, dep in ipairs(package:orderdeps()) do
- os.addenv("CMAKE_PREFIX_PATH", dep:installdir())
+ if dep:isSys() then
+ local fetchinfo = dep:fetch()
+ if fetchinfo then
+ os.addenv("CMAKE_LIBRARY_PATH", unpack(table.wrap(fetchinfo.linkdirs)))
+ os.addenv("CMAKE_INCLUDE_PATH", unpack(table.wrap(fetchinfo.includedirs)))
+ end
+ else
+ os.addenv("CMAKE_PREFIX_PATH", dep:installdir())
+ end
end
return envs
end