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>CMAKE_<LANG>_FLAGS 的第一个 project()enable_language() 命令开始生效。

注意

一旦策略在项目顶部对给定语言生效,则必须在整个树中对该语言使用该选择。 在子目录中具有嵌套项目的项目中,请务必一起转换所有内容。

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

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

注意

策略的 OLD 行为是 deprecated by definition,并且可能会在未来的 CMake 版本中删除。