From 6162e8926d73232f54ffa0ff1bc40507690d52c9 Mon Sep 17 00:00:00 2001 From: ruki Date: Mon, 19 Feb 2024 22:59:57 +0800 Subject: fix detect cmake version --- xmake/plugins/project/cmake/cmakelists.lua | 22 ++++++++++++++++------ 1 file 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 -- cgit v1.3.1