首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CMake检测当前CMake版本

使用CMake检测当前CMake版本
EN

Stack Overflow用户
提问于 2017-04-29 23:05:53
回答 1查看 32.1K关注 0票数 29

我正在做一个使用CMake的项目。顶部的CMakeLists.txt文件包含以下行:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.7.2) # Kittens will die if you switch to an earlier version of CMake. We suggest using CMake 3.8.0.

我想强制所有开发人员切换到CMake 3.8.0,但由于某些原因,并不是所有的开发人员都有管理权限,无法立即从3.7.2切换到3.8.0。实际上,我们不需要3.8.0版本的任何新功能,但我们的政策是始终使用最新和最好的工具来防止未来出现“移植”问题-例如,从Qt4快速切换到Qt5在过去是一个很好的决定-我知道总是切换到最新的库和工具也有一些缺点,正如我们讨论的here,但我们想这样做。

因此,如果使用CMake 3.7.2,我想输出一条警告消息,而不是强制每个人使用版本3.8.0。不知何故,就像这样:

代码语言:javascript
复制
# not working - just pseudocode
if(CMAKE_VERSION == "3.7.2") 
    message("Please consider to switch to CMake 3.8.0")
endif()

我试图读取VERSION变量,但这不起作用。现在有谁知道如何实现这个检查了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-29 23:28:20

here描述说,有几个变量可以说明这一点

CMAKE_MAJOR_VERSION

CMake的主版本号,例如CMake 2.4.3中的"2“

CMAKE_MINOR_VERSION

CMake的次版本号,例如CMake 2.4.3中的"4“

CMAKE_PATCH_VERSION

CMake的补丁版本号,例如CMake 2.4.3中的"3“

此外,变量CMAKE_VERSION包含版本的字符串。例如,在您的示例中,您将使用以下内容:

代码语言:javascript
复制
if(${CMAKE_VERSION} VERSION_LESS "3.8.0") 
    message("Please consider to switch to CMake 3.8.0")
endif()

其他比较运算符有VERSION_EQUALVERSION_GREATER

票数 47
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43697154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档