2016-12-26 74 views
8

CMakeLists.txt脚本,这是习惯有:如何判断在CMakeLists.txt中需要哪个最小CMake版本?

cmake_minimum_required(VERSION x.y) 

为适当的版本xy格式号。但是 - 你怎么知道最低版本是什么?我不使用旧版本;随着我的发行版更新,CMake也会更新,所以我甚至可能会随着时间的推移推出需要更新版本的命令,而我只是不知道它。

我理论上可能需要我测试过的版本CMakeLists.txt - 但它们很新(3.5.1,3.5.2),我不想限制我的代码的用户。

+0

[查找引入哪个CMake版本功能]的可能重复(http://stackoverflow.com/questions/40844358/finding-which-cmake-version-a-feature-was-introduced-in) – wasthishelpful

+1

@ wasthishelpful不,这不是重复的。您无法检查每个CMake命令是否使用更新的功能。 – usr1234567

+0

@ usr1234567我的坏^^也许更多这一个:[CMake - 哪个版本为最小](http://stackoverflow.com/questions/35550116/cmake-which-version-as-minimum) – wasthishelpful

回答

4

根据声称的最低要求版本从https://cmake.org/files/下载CMake二进制文件。你可以在某个目录下解压缩它们,并使用这个CMake来确保它仍然是最低要求的版本。您可以并行使用任意数量的版本。不要忘记删除构建目录。

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

7

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

  1. 如果您已经使用了CMake一段时间,您可能会粗略地记住哪些功能更新和更旧。选择您认为较新的一些功能,并阅读文档以发现哪些版本支持它们。
  2. 如果您只能安装一个或两个旧版本,则可能已足够。 CMake 2.8.x非常受欢迎,因此安装和测试以查看它是否可行(或许可以修复它),这对于某些用户来说是一项很好的服务。
  3. 别担心。如果用户有特定的问题,请将最小值设置为2.8.10,然后接受修补程序或错误报告。将此数字设置得太低不太可能会造成严重伤害 - 通常它只会导致与“CMake版本太旧”不同的错误信息。
+0

刚刚在构建过程中引导特定的CMake版本? – Kamiccolo

+1

@Kamiccolo这会增加构建系统的复杂性,而对于较小的项目则会超出规模,你会建立哪个版本?最少的必需的,最新的,还是一些人工挑选和测试的?你是在任何地方建立CMake还是只在具有过时CMake的系统上使用? – usr1234567

+1

@ usr1234567:谢谢我更新了我的答案以指定2.8。 10而不是2.8。 –

相关问题