CMAKE_MSVC_DEBUG_INFORMATION_FORMAT
Добавлено в версии 3.25.
Выбирает формат отладочной информации MSVC для целевой платформы с ABI MSVC. Эта переменная используется для инициализации свойства MSVC_DEBUG_INFORMATION_FORMAT всех создаваемых целей. Она также передаётся при вызовах команды try_compile() тестовому проекту.
Допустимые значения:
-
Embedded -
Компиляция с флагом
-Z7или эквивалентными флагами для создания объектных файлов с полной символьной отладочной информацией. -
ProgramDatabase -
Компиляция с флагом
-Ziили эквивалентными флагами для создания базы данных программы, содержащей всю символьную отладочную информацию. -
EditAndContinue -
Компиляция с флагом
-ZIили эквивалентными флагами для создания базы данных программы, поддерживающей функцию Edit and Continue.
Компиляторы, не предназначенные для ABI MSVC, игнорируют это значение, однако неподдерживаемое значение будет отклонено с ошибкой при использовании компилятора, предназначенного для ABI MSVC.
Значением также может быть пустая строка (""); в этом случае CMake явно не добавит флаг формата отладочной информации.
Используйте generator expressions для поддержки задания значений для отдельных конфигураций. Например, следующий код:
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>")
выбирает для всех последующих целей формат отладочной информации с базой данных программы для конфигураций Debug и RelWithDebInfo.
Если эта переменная не задана, свойство цели MSVC_DEBUG_INFORMATION_FORMAT не будет установлено автоматически. Если это свойство не задано, CMake выбирает формат отладочной информации, используя значение по умолчанию $<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>, если оно поддерживается компилятором, и в противном случае — $<$<CONFIG:Debug,RelWithDebInfo>:Embedded>.
Примечание
Эта переменная действует только в том случае, если политика CMP0141 установлена в значение NEW до первого вызова команды project() или enable_language(), которая включает язык с помощью компилятора, предназначенного для ABI MSVC.
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_DEBUG_INFORMATION_FORMAT.html