summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-02-19 22:59:57 +0800
committerruki <[email protected]>2024-02-19 22:59:57 +0800
commit6162e8926d73232f54ffa0ff1bc40507690d52c9 (patch)
treee7a5517672faa8e00408c248a5d4346758f313dd
parent8a7774978315a59d6e1de848e7aa2cb405d0d360 (diff)
fix detect cmake version
-rw-r--r--xmake/plugins/project/cmake/cmakelists.lua22
1 files changed, 16 insertions, 6 deletions
diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua
index 9d854ee07..b313c0d19 100644
--- a/xmake/plugins/project/cmake/cmakelists.lua
+++ b/xmake/plugins/project/cmake/cmakelists.lua
@@ -32,14 +32,24 @@ import("private.utils.rule_groups")
import("private.utils.target", {alias = "target_utils"})
import("plugins.project.utils.target_cmds", {rootdir = os.programdir()})
+-- get cmake version
+function _get_cmake_version()
+ local cmake_version = _g.cmake_version
+ if not cmake_version then
+ local cmake = find_tool("cmake", {version = true})
+ if cmake and cmake.version then
+ cmake_version = semver.new(cmake.version)
+ end
+ _g.cmake_version = cmake_version
+ end
+ return cmake_version
+end
+
-- get minimal cmake version
function _get_cmake_minver()
local cmake_minver = _g.cmake_minver
if not cmake_minver then
- local cmake = find_tool("cmake", {version = true})
- if cmake and cmake.version then
- cmake_minver = semver.new(cmake.version)
- end
+ cmake_minver = _get_cmake_version()
if not cmake_minver or cmake_minver:gt("3.15.0") then
cmake_minver = semver.new("3.15.0")
end
@@ -136,8 +146,8 @@ end
-- Did the current cmake native support for c++ modules?
function _can_native_support_for_cxxmodules()
- local cmake_minver = _get_cmake_minver()
- if cmake_minver and cmake_minver:ge("3.28") then
+ local cmake_version = _get_cmake_version()
+ if cmake_version and cmake_version:ge("3.28") then
return true
end
end