CMP0092¶
版本 3.15 新增。
默认情况下,MSVC 警告标志不在 CMAKE_<LANG>_FLAGS 中。
在使用 CMake 3.14 及更早版本中的类 MSVC 编译器时,默认情况下会将 /W3 等警告标志添加到 CMAKE_<LANG>_FLAGS 中。这对于希望以编程方式选择不同警告级别的项目来说是有问题的。特别是,它需要对 CMAKE_<LANG>_FLAGS 变量进行字符串编辑,并了解 CMake 内置的默认值,以便替换它们。
CMake 3.15 及更高版本倾向于在默认情况下不将警告标志包含在 CMAKE_<LANG>_FLAGS 的值中。
此策略提供了与未更新为适应缺少警告标志的项目兼容性。策略设置从初始化给定语言 <LANG> 的 project() 或 enable_language() 命令开始生效。
注意
一旦策略在项目顶层对给定语言生效,该选择就必须在整个树中对该语言使用。在具有嵌套项目的子目录中,请确保一起转换所有内容。
此策略的 OLD 行为是将 MSVC 警告标志放置在默认的 CMAKE_<LANG>_FLAGS 缓存条目中。此策略的 NEW 行为是默认缓存条目中不放置 MSVC 警告标志。
此策略在 CMake 版本 3.15 中引入。它可以由 cmake_policy() 或 cmake_minimum_required() 设置。如果未设置,CMake **不** 会发出警告,并使用 OLD 行为。
注意
策略的 OLD 行为 根据定义已被弃用,并可能在未来的 CMake 版本中被移除。