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
的值中包含警告标志。
此策略提供了与未更新为期望缺少警告标志的项目兼容性。当首次初始化给定语言的 CMAKE_<LANG>_FLAGS
时(通过 project()
或 enable_language()
命令),该策略设置就会生效。
注意
一旦策略在项目顶层对给定语言生效,该选择就必须在整个树中对该语言使用。在具有嵌套项目的子目录中,请确保一起转换所有内容。
此策略的 OLD
行为是将 MSVC 警告标志放入默认的 CMAKE_<LANG>_FLAGS
缓存条目中。此策略的 NEW
行为是默认情况下 *不* 将 MSVC 警告标志放入缓存条目中。
此策略是在 CMake 版本 3.15 中引入的。它可以由 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 不会发出警告,而是使用 OLD
行为。
注意
根据定义,策略的 OLD
行为是 已弃用
,并且可能在未来版本的 CMake 中被移除。