我正在开发一个使用 CMake 的项目。顶CMakeLists.txt
文件包含以下行:
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 版本。有点像这样:
# not working - just pseudocode
if(CMAKE_VERSION == "3.7.2")
message("Please consider to switch to CMake 3.8.0")
endif()
我试图阅读
VERSION
变量,但这不起作用。有没有人现在如何实现这种检查?
最佳答案
存在一些变量,描述为 here :
CMAKE_MAJOR_VERSION
major version number for CMake, e.g. the "2" in CMake 2.4.3
CMAKE_MINOR_VERSION
minor version number for CMake, e.g. the "4" in CMake 2.4.3
CMAKE_PATCH_VERSION
patch version number for CMake, e.g. the "3" in CMake 2.4.3
此外,变量
CMAKE_VERSION
包含版本的字符串。例如,在您的情况下,您将使用以下内容:
if(${CMAKE_VERSION} VERSION_LESS "3.8.0")
message("Please consider to switch to CMake 3.8.0")
endif()
其他比较运算符是 VERSION_EQUAL
和 VERSION_GREATER
.
关于cmake - 使用 CMake 检测当前的 CMake 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43697154/