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