我如何判断 CMakeLists.txt 中需要哪个最低 CMake 版本?
How can I tell which minimum CMake version to require in CMakeLists.txt?
在CMakeLists.txt
脚本中,习惯上有一个:
cmake_minimum_required(VERSION x.y)
对应的 x.y 版本号。但是 - 你怎么知道最低版本是多少?我不使用旧版本;随着我的发行版得到更新,CMake 也得到更新,所以我什至可能随着时间的推移引入了需要更新版本的命令,但我只是不知道。
理论上我可以要求我测试过这个 CMakeLists.txt
的版本 - 但它们很新,我不想将我的代码的用户限制到那个。
没有自动执行此操作的方法。以下是我使用过的一些方法:
- 如果您使用过一段时间的CMake,您可能会大致记住哪些功能较新,哪些较旧。 Select 您使用的一些您认为较新的功能,并阅读文档以了解支持它们的版本。
- 如果你能安装一两个旧版本,可能就足够了。 CMake 2.8.x 非常流行,所以安装它并测试它是否有效(也许修复它,它确实有效)对某些用户来说是一项很好的服务。
- 别担心。将最小值设置为 2.8.10,然后在用户遇到特定问题时接受补丁或错误报告。将此数字设置得太低不太可能会造成任何严重的伤害——通常它只会导致与 "The CMake version is too old."
不同的错误消息
tl;dr:尝试使用不同的 CMake 版本构建。
根据声称的最低要求版本,从 https://cmake.org/files/ 下载 CMake 二进制文件。您可以将它们解压缩到某个目录中并使用此 CMake 来确保它仍然是所需的最低版本。您可以并行拥有任意数量的版本。不要忘记删除构建目录。
一个你没有提到但也很重要的问题:用更新的版本检查你的代码。新政策可能会导致数十个警告,许多项目试图避免在发布中出现警告。所以用相同的程序获得最新版本可能会更好。
在CMakeLists.txt
脚本中,习惯上有一个:
cmake_minimum_required(VERSION x.y)
对应的 x.y 版本号。但是 - 你怎么知道最低版本是多少?我不使用旧版本;随着我的发行版得到更新,CMake 也得到更新,所以我什至可能随着时间的推移引入了需要更新版本的命令,但我只是不知道。
理论上我可以要求我测试过这个 CMakeLists.txt
的版本 - 但它们很新,我不想将我的代码的用户限制到那个。
没有自动执行此操作的方法。以下是我使用过的一些方法:
- 如果您使用过一段时间的CMake,您可能会大致记住哪些功能较新,哪些较旧。 Select 您使用的一些您认为较新的功能,并阅读文档以了解支持它们的版本。
- 如果你能安装一两个旧版本,可能就足够了。 CMake 2.8.x 非常流行,所以安装它并测试它是否有效(也许修复它,它确实有效)对某些用户来说是一项很好的服务。
- 别担心。将最小值设置为 2.8.10,然后在用户遇到特定问题时接受补丁或错误报告。将此数字设置得太低不太可能会造成任何严重的伤害——通常它只会导致与 "The CMake version is too old." 不同的错误消息
tl;dr:尝试使用不同的 CMake 版本构建。
根据声称的最低要求版本,从 https://cmake.org/files/ 下载 CMake 二进制文件。您可以将它们解压缩到某个目录中并使用此 CMake 来确保它仍然是所需的最低版本。您可以并行拥有任意数量的版本。不要忘记删除构建目录。
一个你没有提到但也很重要的问题:用更新的版本检查你的代码。新政策可能会导致数十个警告,许多项目试图避免在发布中出现警告。所以用相同的程序获得最新版本可能会更好。