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 目标属性文档。