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
行为。
注意
策略中的 OLD
行为 默认被弃用 而且 可能会 在 以后 版本的 CMake 中移除
。