Spec-Zone.ru › CMake

CMP0166

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

TARGET_PROPERTY вычисляет свойства связи транзитивно по приватным зависимостям статических библиотек.

В CMake 3.29 и ниже, генераторское выражение TARGET_PROPERTY вычисляет свойства INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES и INTERFACE_LINK_DEPENDS так, как если бы они были Транзитивными свойствами компиляции, а не Транзитивными свойствами компоновки, даже когда политика CMP0099 установлена в NEW. Приватные зависимости статических библиотек, которые отображаются в их INTERFACE_LINK_LIBRARIES, защищённые генераторскими выражениями LINK_ONLY, не учитываются. Это несовместимо с вычислением тех же свойств целевых объектов во время генерации системы сборки.

CMake 3.30 и выше предпочитают, чтобы TARGET_PROPERTY вычислял свойства INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES и INTERFACE_LINK_DEPENDS как Транзитивные свойства компоновки, так что приватные зависимости статических библиотек, которые отображаются в их INTERFACE_LINK_LIBRARIES, защищённые генераторскими выражениями LINK_ONLY, учитываются. Данная политика обеспечивает совместимость для проектов, которые не были обновлены для ожидания нового поведения.

Поведение OLD по этой политике заключается в том, что TARGET_PROPERTY вычисляет свойства INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES и INTERFACE_LINK_DEPENDS так, как если бы они были Транзитивными свойствами компиляции, не учитывая приватные зависимости статических библиотек. Поведение NEW по этой политике заключается в вычислении их как Транзитивных свойств компоновки, учитывая приватные зависимости статических библиотек.

Эта политика была введена в 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/latest/policy/CMP0166.html

Spec-Zone.ru

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