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
的值可以使用 生成器 表达式
。
注意
INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE
目标属性旨在用于将静态插件注入可执行消费项等高级用例中。它不应被用作对 target_link_libraries()
的常规调用进行组织的一种替代方法。
请参阅 INTERFACE_LINK_LIBRARIES_DIRECT
目标属性文档以了解更多详细信息和示例。