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
指定的)编译源文件,则对于为“Debug”运行时库编译的配置,UseDebugLibraries
为true
,对于其他配置,则为false
。否则,例如在由
add_custom_target()
创建的目标中,对于Debug
配置,UseDebugLibraries
为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 版本中移除。