diff options
| author | ruki <[email protected]> | 2024-02-19 22:59:57 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-02-19 22:59:57 +0800 |
| commit | 6162e8926d73232f54ffa0ff1bc40507690d52c9 (patch) | |
| tree | e7a5517672faa8e00408c248a5d4346758f313dd | |
| parent | 8a7774978315a59d6e1de848e7aa2cb405d0d360 (diff) | |
fix detect cmake version
| -rw-r--r-- | xmake/plugins/project/cmake/cmakelists.lua | 22 |
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 |
