在Windows上,我将依赖项安装到c:\sdk\my_dependency\
,其中每个依赖项文件夹都包含include
,lib
,bin
等...
在项目的CMakeLists.txt
中,如何将include
中的每个子c:\sdk
文件夹添加到我的包含目录列表中? (对于我的链接库目录列表中的lib
同样)
即可以在我的c:\sdk\**\include
中指定CMakeLists.txt
吗?
这是明智的做法吗?
答案 0 :(得分:1)
尽管典型的CMake习惯用法是使用find_package()
查找和填充第三方软件包的CMake变量(*_INCLUDE_DIRS
,*_LIBRARIES
),但您所建议的也可以实现使用file()
的{{3}}子命令。您可以在全局表达式中使用*
来抓取include
中的所有lib
或C:/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
。