从多个文件夹添加“包含”目录

时间:2019-09-09 19:55:52

标签: cmake

在Windows上,我将依赖项安装到c:\sdk\my_dependency\,其中每个依赖项文件夹都包含includelibbin等...

在项目的CMakeLists.txt中,如何将include中的每个子c:\sdk文件夹添加到我的包含目录列表中? (对于我的链接库目录列表中的lib同样)

即可以在我的c:\sdk\**\include中指定CMakeLists.txt吗?

这是明智的做法吗?

1 个答案:

答案 0 :(得分:1)

尽管典型的CMake习惯用法是使用find_package()查找和填充第三方软件包的CMake变量(*_INCLUDE_DIRS*_LIBRARIES),但您所建议的也可以实现使用file()的{​​{3}}子命令。您可以在全局表达式中使用*来抓取include中的所有libC:/sdk目录:

# Make a list of all the include directories.
file(GLOB MY_INCLUDE_DIRS
    C:/sdk/*/include
)

# Make a list of all the lib directories.
file(GLOB MY_LIB_DIRS
    C:/sdk/*/lib
)

GLOB选项功能强大,并且对于更复杂的情况具有递归功能,因此,我建议您检查一下GLOB