Spec-Zone.ru › CMake

CMP0141

Добавлен в версии 3.25.

Флаги формата отладки MSVC выбираются с помощью абстракции.

Компиляторы, нацеленные на MSVC ABI, имеют флаги для выбора формата отладочной информации. Выбор формата отладочной информации обычно зависит от конфигурации сборки.

В CMake 3.24 и ниже флаги формата отладочной информации добавляются в стандартные записи кэша CMAKE_<LANG>_FLAGS_<CONFIG> CMake автоматически. Это позволяет пользователям редактировать записи кэша для настройки флагов. Однако наличие таких стандартных флагов проблематично для проектов, которые хотят программно выбрать другую библиотеку времени выполнения. В частности, это требует редактирования строк переменных CMAKE_<LANG>_FLAGS_<CONFIG> с знанием встроенных значений по умолчанию CMake, чтобы их можно было заменить.

CMake 3.25 и выше предпочитают исключить флаги формата отладочной информации из стандартных значений CMAKE_<LANG>_FLAGS_<CONFIG> и вместо этого предлагают абстракцию первого класса. Переменная CMAKE_MSVC_DEBUG_INFORMATION_FORMAT и свойство целевого объекта MSVC_DEBUG_INFORMATION_FORMAT могут быть установлены для выбора формата отладочной информации MSVC. Если они не установлены, CMake включает отладку в конфигурациях отладки, используя значение по умолчанию $<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>, если это поддерживается компилятором, и в противном случае $<$<CONFIG:Debug,RelWithDebInfo>:Embedded>.

Данная политика обеспечивает совместимость с проектами, которые не были обновлены, чтобы быть осведомленными об абстракции. Настройка политики вступает в силу с момента первого вызова команды project() или enable_language(), которая включает язык, компилятор которого нацелен на MSVC ABI.

Примечание

После того как политика вступила в силу вверху проекта, этот выбор будет использоваться во всем дереве. В проектах, имеющих вложенные проекты в подкаталогах, убедитесь, что все работает с выбранным поведением политики.

Поведением OLD для данной политики является размещение флагов формата отладочной информации MSVC в стандартных записях кэша CMAKE_<LANG>_FLAGS_<CONFIG> и игнорирование абстракции CMAKE_MSVC_DEBUG_INFORMATION_FORMAT. Поведением NEW для данной политики является не размещение флагов формата отладочной информации MSVC в стандартных записях кэша и использование вместо этого абстракции.

Эта политика была введена в CMake версии 3.25. Она может быть установлена командой cmake_policy() или cmake_minimum_required(). Если она не установлена, CMake не выводит предупреждение и использует поведение OLD.

Примечание

Поведение OLD политики — это deprecated by definition и может быть удалено в будущей версии CMake.

© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/policy/CMP0141.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API