CMP0141
Добавлено в версии 3.25.
Флаги формата отладочной информации MSVC выбираются с помощью абстракции.
Компиляторы, предназначенные для ABI MSVC, имеют флаги для выбора формата отладочной информации. Выбор формата отладочной информации обычно зависит от конфигурации сборки.
В CMake 3.24 и более ранних версиях CMake автоматически добавляет флаги формата отладочной информации в записи кэша по умолчанию CMAKE_<LANG>_FLAGS_<CONFIG>. Это позволяет пользователям изменять записи кэша, чтобы корректировать флаги. Однако наличие таких флагов по умолчанию создает проблемы для проектов, которым требуется программно выбирать другой формат отладочной информации. В частности, для этого необходимо редактировать строки в переменных CMAKE_<LANG>_FLAGS_<CONFIG>, зная встроенные значения CMake по умолчанию, чтобы их можно было заменить.
В CMake 3.25 и более поздних версиях флаги формата отладочной информации предпочтительно не включать в значения CMAKE_<LANG>_FLAGS_<CONFIG> по умолчанию, а вместо этого предоставлять полноценную абстракцию. Для выбора формата отладочной информации MSVC можно задать переменную CMAKE_MSVC_DEBUG_INFORMATION_FORMAT и свойство целевого объекта MSVC_DEBUG_INFORMATION_FORMAT. Если они не заданы, CMake включает отладочную информацию в конфигурациях отладки, используя значение по умолчанию $<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>, если оно поддерживается компилятором, и $<$<CONFIG:Debug,RelWithDebInfo>:Embedded> в противном случае.
Эта политика обеспечивает совместимость с проектами, которые еще не были обновлены для использования этой абстракции. Настройка политики вступает в силу при выполнении первой команды project() или enable_language(), включающей язык, компилятор которого предназначен для ABI MSVC.
Примечание
После вступления политики в силу в корне проекта выбранное поведение будет использоваться во всем дереве. В проектах с вложенными проектами в подкаталогах обязательно проверьте, что все работает с выбранным поведением политики.
Поведение OLD этой политики заключается в добавлении флагов формата отладочной информации MSVC в записи кэша CMAKE_<LANG>_FLAGS_<CONFIG> по умолчанию и игнорировании абстракции CMAKE_MSVC_DEBUG_INFORMATION_FORMAT. Поведение NEW этой политики заключается в том, чтобы не добавлять флаги формата отладочной информации MSVC в записи кэша по умолчанию и вместо этого использовать абстракцию.
Эта политика введена в версии CMake 3.25. Ее можно установить с помощью команды cmake_policy() или cmake_minimum_required(). Если она не установлена, CMake не выдает предупреждение и использует поведение OLD.
Примечание
Поведение OLD политики по определению считается устаревшим и может быть удалено в будущей версии CMake.
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/policy/CMP0141.html