INTERFACE_LINK_LIBRARIES
Список публичных интерфейсных библиотек для библиотеки.
Это свойство содержит список транзитивных зависимостей от ссылок. Когда целевой объект подключается к другому целевому объекту с помощью команды target_link_libraries(), перечисленные библиотеки (и рекурсивно их библиотеки интерфейса ссылок) также будут предоставлены другому целевому объекту. Это свойство переопределяется свойством LINK_INTERFACE_LIBRARIES или LINK_INTERFACE_LIBRARIES_<CONFIG>, если политика CMP0022 имеет значение OLD или не задана.
Значение этого свойства используется генераторами при построении правила ссылки для зависимого целевого объекта. Прямые зависимости от ссылок зависимого целевого объекта, указанные в его свойстве целевого объекта LINK_LIBRARIES, связываются в первую очередь, за которыми следуют косвенные зависимости из транзитивного замыкания прямых зависимостей в свойствах INTERFACE_LINK_LIBRARIES. См. политику CMP0022.
Содержимое INTERFACE_LINK_LIBRARIES может использовать «генераторские выражения» с синтаксисом $<...>. См. руководство cmake-generator-expressions(7) для доступных выражений. См. руководство cmake-buildsystem(7) для получения более подробной информации об определении свойств системы построения.
Примечание
Вызов target_link_libraries(<target> ...) может обновить это свойство в <target>. Если <target> не был создан в той же директории, что и вызов, то target_link_libraries() обернёт каждый элемент в форму ::@(directory-id);...;::@, где ::@ — буквальный элемент, а (directory-id) — неопределённый элемент. Это сообщает генераторам, что поиски указанных библиотек должны проводиться в области видимости вызывающего элемента, а не в области видимости, в которой был создан <target>. Действительные идентификаторы директорий удаляются при экспорте командами install(EXPORT) и export().
INTERFACE_LINK_LIBRARIES добавляет транзитивные зависимости от ссылок для зависимых целевых объектов. В продвинутых сценариях можно обновить прямые зависимости от ссылок зависимых целевых объектов, используя целевые свойства INTERFACE_LINK_LIBRARIES_DIRECT и INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE.
Создание Переносимых Пакет
Обратите внимание, что не рекомендуется заполнять INTERFACE_LINK_LIBRARIES целевого объекта абсолютными путями к зависимостям. Это жёстко закодирует в установленных пакетах пути к файлам библиотек зависимостей так, как они были найдены на компьютере, на котором был создан пакет.
См. раздел Создание Переносимых Пакет руководства cmake-packages(7) для обсуждения дополнительных мер предосторожности, которые необходимо принять при указании требований к использованию при создании пакетов для распространения.
© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.24/prop_tgt/INTERFACE_LINK_LIBRARIES.html