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), тоUseDebugLibrariesравноtrueдля конфигураций, которые компилируются для библиотеки времени выполнения «Отладка», иfalseдля других. - В противном случае, например, в целевых объектах, созданных с помощью
add_custom_target(),UseDebugLibrariesравноtrueдля конфигурацииDebug, и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 данной политики — deprecated by definition, и может быть удалено в будущих версиях CMake.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.31/policy/CMP0162.html