INTERFACE_LINK_LIBRARIES
Список общедоступных библиотек интерфейса для библиотеки.
Это свойство содержит список транзитивных зависимостей для компоновки. Когда целевой объект связывается с другим целевым объектом с помощью команды target_link_libraries(), перечисленные библиотеки (и рекурсивно их библиотеки интерфейса компоновки) также будут предоставлены другому целевому объекту. Это свойство переопределяется свойством LINK_INTERFACE_LIBRARIES или LINK_INTERFACE_LIBRARIES_<CONFIG>, если политика CMP0022 установлена в OLD или не задана.
Содержание 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 целевого объекта абсолютными путями к зависимостям. Это приведет к жесткой привязке в установленных пакетах путей к файлам библиотек зависимостей в соответствии с тем, как они были найдены на машине, на которой был создан пакет.
См. раздел Создание переносимых пакетов руководства cmake-packages(7) для обсуждения дополнительных мер предосторожности, которые необходимо принять при указании требований к использованию при создании пакетов для распространения.
© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.20/prop_tgt/INTERFACE_LINK_LIBRARIES.html