cmake怎么查询一个target的依赖库设置为public的包含目录
时间: 2024-05-14 08:12:51 浏览: 54
可以使用`target_include_directories`命令查询一个target的依赖库设置为public的包含目录。具体步骤如下:
1. 打开CMakeLists.txt文件,找到需要查询的target。
2. 使用以下命令获取该target的所有依赖库列表:
```
get_property(TARGET_DEPS TARGET <target_name> PROPERTY INTERFACE_LINK_LIBRARIES)
```
其中,`<target_name>`为需要查询的target的名称。
3. 遍历该target的所有依赖库,使用以下命令查询该依赖库设置为public的包含目录:
```
get_target_property(INCLUDE_DIRS <dependency_name> INTERFACE_INCLUDE_DIRECTORIES)
```
其中,`<dependency_name>`为当前遍历到的依赖库的名称。
4. 将查询到的包含目录添加到一个列表中。
完整的示例代码如下:
```
get_property(TARGET_DEPS TARGET <target_name> PROPERTY INTERFACE_LINK_LIBRARIES)
set(INCLUDE_DIRS_LIST "")
foreach(DEP ${TARGET_DEPS})
get_target_property(INCLUDE_DIRS ${DEP} INTERFACE_INCLUDE_DIRECTORIES)
if(INCLUDE_DIRS)
set(INCLUDE_DIRS_LIST "${INCLUDE_DIRS_LIST};${INCLUDE_DIRS}")
endif()
endforeach()
message("TARGET ${target_name} PUBLIC INCLUDE DIRECTORIES: ${INCLUDE_DIRS_LIST}")
```
阅读全文