INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE
Добавлена в версии 3.24.
Список библиотек, которые потребители этой библиотеки не должны рассматривать как прямые зависимости.
Это свойство целевого объекта может быть установлено для исключения элементов из конечного набора прямых зависимостей целевого объекта-зависимости. Это свойство обрабатывается после свойства INTERFACE_LINK_LIBRARIES_DIRECT целевого объекта всех других зависимостей целевого объекта-зависимости, поэтому исключение из прямой зависимости имеет приоритет над включением.
Начальный набор прямых зависимостей целевого объекта-зависимости задаётся его свойством LINK_LIBRARIES целевого объекта. Непрямые зависимости задаются транзитивным замыканием прямых зависимостей по свойству INTERFACE_LINK_LIBRARIES. Любая зависимость может указать дополнительные прямые зависимости, используя свойство INTERFACE_LINK_LIBRARIES_DIRECT целевого объекта. Набор прямых зависимостей затем фильтруется для исключения элементов, указанных по свойству INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE целевого объекта любой зависимости.
Исключение элемента из прямых зависимостей целевого объекта-зависимости не означает, что целевой объект-зависимость не будет с ним связываться. Элемент может всё ещё быть связан как непрямая зависимость через свойство INTERFACE_LINK_LIBRARIES у других зависимостей.
Значение INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE может использовать generator expressions.
Примечание
Свойство INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE предназначено для расширенных случаев использования, таких как инъекция статических плагинов в исполняемый файл-потребитель. Его не следует использовать в качестве замены для организации обычных вызовов target_link_libraries().
См. документацию по свойству целевого объекта INTERFACE_LINK_LIBRARIES_DIRECT для получения более подробной информации и примеров.
© 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_DIRECT_EXCLUDE.html