CMP0162¶
3.30 版本新增。
Visual Studio 生成器 默认添加 UseDebugLibraries
指示符。
Visual Studio 项目中的“使用调试库”设置指示哪些配置被视为调试配置。在独立项目中,这可能会影响 MSBuild 对 MSVC 运行时库、优化标志、运行时检查以及类似设置的默认选择。CMake 通常会根据项目的规范显式生成所有这些设置,因此 CMake 3.29 及更早版本不会将任何 UseDebugLibraries
指示符写入 .vcxproj
文件。
CMake 3.30 及更高版本倾向于写入 UseDebugLibraries
指示符,因为它们对人类和工具都有参考价值,并且还可能影响特定平台的 SDK 的行为。目标每个配置的指示符确定如下:
如果目标编译了已知 MSVC 运行时库的源文件(例如由
MSVC_RUNTIME_LIBRARY
指定的),那么对于编译“调试”运行时库的配置,UseDebugLibraries
为true
,对于其他配置为false
。否则,例如在由
add_custom_target()
创建的目标中,UseDebugLibraries
对于Debug
配置为true
,对于其他配置为false
。
此策略为未更新以期望这些指示符的项目提供兼容性。策略设置由每个目标在创建时记录,并用于确定该目标 .vcxproj
文件的默认行为。
此策略的 OLD
行为是默认不生成 UseDebugLibraries
指示符。此策略的 NEW
行为是默认生成 UseDebugLibraries
指示符。
如果设置了 CMAKE_VS_USE_DEBUG_LIBRARIES
变量和/或 VS_USE_DEBUG_LIBRARIES
目标属性,则它会显式控制 UseDebugLibraries
的生成,而忽略此策略。
此策略引入于 CMake 版本 3.30。可以通过 cmake_policy()
或 cmake_minimum_required()
进行设置。如果未设置,CMake **不会**发出警告,并使用 OLD
行为。
注意
策略的 OLD
行为是 根据定义已被弃用
,并可能在未来的 CMake 版本中被移除。