如何判断CMakeLists.txt中要求的最小CMake版本?

ein*_*ica 10 cmake minimum-requirements

CMakeLists.txt脚本中,习惯上有一个:

cmake_minimum_required(VERSION x.y)
Run Code Online (Sandbox Code Playgroud)

为适当的xy版本号.但是 - 你怎么知道最低版本是什么?我不使用旧版本; 随着我的发行版更新,CMake也是如此,所以我甚至可能已经引入了需要更新版本的命令,而我只是不知道它.

理论上我可以要求我测试过这个版本CMakeLists.txt- 但它们很新(3.5.1,3.5.2),而且我不想限制我的代码用户.

Joh*_*nck 8

没有自动的方法来做到这一点.以下是我使用的一些方法:

  1. 如果您已经使用了CMake一段时间,您可能会大致记住哪些功能更新,更老.选择您认为较新的一些功能,并阅读文档以了解支持它们的版本.
  2. 如果您只能安装一个或两个旧版本,那就足够了.CMake 2.8.x非常受欢迎,所以安装它并进行测试以确定它是否有效(或许它可以修复它)对某些用户来说是一个很好的服务.
  3. 别担心.将最小值设置为2.8.10,然后在用户遇到特定问题时接受补丁或错误报告.将此数字设置得太低不太可能造成任何严重伤害 - 通常只会导致与"CMake版本太旧"不同的错误消息.


usr*_*567 5

tl;dr:尝试使用不同的 CMake 版本进行构建。

根据声称的最低要求版本从https://cmake.org/files/下载 CMake 二进制文件。您可以将它们解压缩到某个目录中并使用此 CMake 来确保它仍然是最低要求的版本。您可以同时拥有任意多个版本。不要忘记删除构建目录。

您没有提到但也很重要的一个问题:使用较新版本检查您的代码。新政策可能会导致数十个警告,许多项目试图避免发布中的警告。因此,拥有具有相同程序的最新版本可能会更好。