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 属性适用于高级用例,例如将静态插件注入到使用中的可执行文件中。它不应该用作组织对 target_link_libraries() 的正常调用的替代品。
有关详细信息和示例,请参阅 INTERFACE_LINK_LIBRARIES_DIRECT 目标属性文档。