CMP0092

3.15 版中添加。

默认情况下,MSVC 警告标志不在 CMAKE_<LANG>_FLAGS 内。

在 CMake 3.14 及以下版本中使用类似 MSVC 的编译器时,类似 /W3 的警告标志默认添加到 CMAKE_<LANG>_FLAGS 中。这对于希望以编程方式选择不同警告级别的项目来说是有问题的。具体而言,它需要了解 CMake 内置默认值才能编辑 CMAKE_<LANG>_FLAGS 变量的字符串,以便进行替换。

CMake 3.15 及更高版本更倾向于在 CMAKE_<LANG>_FLAGS 的值中省略警告标志。

此策略为未更新为预期缺少警告标志的项目提供了兼容性。一旦执行第一个 project()enable_language() 命令,该策略设置就会生效,这将初始化一个给定语言 <LANG>CMAKE_<LANG>_FLAGS

注意

针对给定语言,一旦该策略在项目顶部生效,就必须在整个目录中对该语言使用该选项。对于在子目录中有嵌套项目的项目,请确保整体转换。

此策略的 OLD 行为是将 MSVC 警告标志放入默认的 CMAKE_<LANG>_FLAGS 缓存条目中。此策略的 NEW 行为是将 MSVC 警告标志放入默认的缓存条目中。

此策略是在 CMake 3.15 版本中引入的。此策略可以使用 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 不会发出警告,并将使用 OLD 行为。