mus*_*nul 17 cmake minimum required
我想用"cmake_minimum_required"工具为CMake定义最小版本.我已经看到一些项目设置了最低版本2.8,其他一些设置为3.0或3.2.我想了解您对该主题的意见和最佳实践.
Dev*_*lar 18
该cmake_minimum_required()函数用于避免由于CMakeLists.txt假定CMake的更高版本而不是当前主机上安装的版本而产生的任何神秘错误消息.
作为一个例子,早期失败,并有一个明确的信息......
CMake 3.2 or higher is required. You are running version 2.8.12.2
Run Code Online (Sandbox Code Playgroud)
......比以后更加神秘的东西更受欢迎......
In file included from /home/foouser/src/testprj/string.cpp:1:0:
/home/foouser/src/testprj/string.hpp:94:29: error: ‘std::is_same’ has not been declared
Run Code Online (Sandbox Code Playgroud)
...只是因为在这个例子中,较旧的CMake版本不支持set( CMAKE_CXX_STANDARD 11 ).我相信你会同意的.
理想的设置是:
与运行旧版本的人员以及脚本的最大兼容性.但是,它需要测试的版本究竟它是第一个支持你的结构.所以它通常归结为:
这对大多数项目来说可能已经足够了.如果你是唯一一个真正参与该项目的人,并且你的列表上的CMake兼容性测试真的很少,你可能最终得到:
一旦其他人试图编译您的项目,后一种方法就会有严重的缺陷.相当多的人没有使用最新版本的一切.特别是在Linux上,默认是使用包管理器为您提供的任何内容.例如,Ubuntu狡猾,目前版本为3.2.2 - 您可能有更高版本,但除非您需要更高版本,否则您不应该要求它(因为这意味着人们将无法构建您的项目没有先手动安装较新版本的CMake).
你不应该做的是......
原因应该是显而易见的 - 建筑可能会失败,没有用户得到任何关于为什么出错的提示.
| 归档时间: |
|
| 查看次数: |
6967 次 |
| 最近记录: |