MSVC_DEBUG_INFORMATION_FORMAT¶
添加于 3.25 版。
在针对 MSVC ABI 时选择调试信息格式。
有效的值有
Embedded
使用
-Z7
或等效标志编译,以生成包含完全符号调试信息的对象文件。ProgramDatabase
使用
-Zi
或等效标志编译,以生成包含所有符号调试信息的程序数据库。EditAndContinue
使用
-ZI
或等效标志编译,以生成支持编辑和继续功能的程序数据库。
当编译器不针对 MSVC ABI 时,此值会被忽略,但是,当使用针对 MSVC ABI 的编译器时,不被支持的值会被否决为一个错误。
对于空字符串 (""
),此值也可能是如此,在这种情况下,将不会由 CMake 显式添加任何调试信息格式标志。
使用 generator expressions
,以支持按配置进行规范。例如,代码
add_executable(foo foo.c)
set_property(TARGET foo PROPERTY
MSVC_DEBUG_INFORMATION_FORMAT "$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>")
为目标 foo
选择 Debug 配置的程序数据库调试信息格式。
如果已经设置该属性,则该属性会从 CMAKE_MSVC_DEBUG_INFORMATION_FORMAT
变量的值进行初始化。如果尚未设置此属性,如果编译器支持,CMake 将使用默认值 $<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>
,并且除此之外如果支持 $<$<CONFIG:Debug,RelWithDebInfo>:Embedded>
来选择一种调试信息格式。
注意
该属性仅在策略 CMP0141
在第一个 project()
或者 enable_language()
命令启用使用针对 MSVC ABI 的编译器的语言前被设置为 NEW
时才生效。