如何在另一个CMake目标中加载主应用程序的接口类



如何在库(插件)目标中加载主应用程序的INTERFACE_INCLUDE_DIRECTORIES ?我知道如何加载一个库的INTERFACE_INCLUDE_DIRECTORIES,但我不知道如何加载它们而不链接一个库。

├── app
├── pluga
└── plugb

target_include_directories()命令用PUBLICINTERFACE关键字的值填充INTERFACE_INCLUDE_DIRECTORIES

目标可以填充此属性以发布针对目标的头文件进行编译所需的包含目录。消费目标可以将条目添加到它们自己的INCLUDE_DIRECTORIES属性中,例如$<TARGET_PROPERTY:foo,INTERFACE_INCLUDE_DIRECTORIES>,以使用在foo接口中指定的include目录。

所以答案是:

target_include_directories(pluga INTERFACE
    $<TARGET_PROPERTY:app,INTERFACE_INCLUDE_DIRECTORIES>
)

最新更新