cmake_minimum_required

需要最低版本的 cmake。

cmake_minimum_required(VERSION <min>[...<policy_max>] [FATAL_ERROR])

在 3.12 版本加入: 可选的``<policy_max>`` 版本。

设置项目所需的最低 cmake 版本。还更新策略设置,如下所述。

<min> 和可选的 <policy_max> 都是 major.minor[.patch[.tweak]] 形式的每个 CMake 版本,而 ... 是文字。

如果 CMake 的运行版本低于所需的 <min> 版本,它将停止处理项目并报告错误。可选的 <policy_max> 版本(如果指定)必须至少为 <min> 版本并影响策略设置,如 Policy Settings 中所述。如果 CMake 的运行版本早于 3.12,额外的 ... 点将被视为版本组件分隔符,导致 ...<max> 部分被忽略并保留前- 3.12 基于 <min> 策略的行为。

此命令会将 CMAKE_MINIMUM_REQUIRED_VERSION 变量的值设置为 <min>

FATAL_ERROR 选项被 CMake 2.6 及更高版本接受但被忽略。应该指定它,以便 CMake 版本 2.4 和更低版本失败并出现错误,而不仅仅是警告。

备注

在调用 project() 命令之前,在顶级 CMakeLists.txt 文件的开头调用 cmake_minimum_required() 命令。在调用可能影响其行为的其他命令之前建立版本和策略设置很重要。另请参阅政策:policy:CMP0000

function() 中调用 cmake_minimum_required() 会在调用时限制对函数作用域的一些影响。例如,CMAKE_MINIMUM_REQUIRED_VERSION 变量不会在调用范围内设置。但是,函数不会引入自己的策略范围,因此调用者的策略设置*将*受到影响(见下文)。由于这种影响调用范围和不影响调用范围的事情的混合,通常不鼓励在函数内部调用 cmake_minimum_required() 。

策略设置

cmake_minimum_required(VERSION) 命令隐式调用 cmake_policy(VERSION) 命令来指定当前项目代码是为给定的 CMake 版本范围编写的。 CMake 的运行版本已知并在“<min>”(或“<max>”,如果指定)版本或更早版本中引入的所有策略都将设置为使用“NEW”行为。以后版本中引入的所有策略都将取消设置。这有效地请求了给定 CMake 版本的首选行为,并告诉较新的 CMake 版本警告他们的新政策。

当指定高于 2.4 的 <min> 版本时,命令隐式调用

cmake_policy(VERSION <min>[...<max>])

它根据指定的版本范围设置 CMake 策略。当给出 <min> 2.4 或更低版本时,命令隐式调用

cmake_policy(VERSION 2.4[...<max>])

这为 CMake 2.4 及更低版本启用了兼容性功能。

也可以看看