Spec-Zone.ru › CMake 3.31

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–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.31/prop_tgt/INTERFACE_LINK_LIBRARIES.html

Spec-Zone.ru

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