CMake基础教程(32)文件搜索指令FILE

Posted 奇妙之二进制

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CMake基础教程(32)文件搜索指令FILE相关的知识,希望对你有一定的参考价值。

常常需要搜索符合某些特征的文件,例如以.cc结尾的源文件,以.h结尾的头文件。

add_xxx()这条命令比较low的地方是,不支持通配符,例如:

add_library(xx src/*.cc)

我们试图想通过*.cc来添加src目录下的所有源文件,这条命令做不到。

我们可以借助file命令的搜索功能,file命令支持很多功能,例如文件读写、打包、权限修改等,我们只学其最常用的功能。

file(GLOB <variable>
     [LIST_DIRECTORIES true|false] [RELATIVE <path>] [CONFIGURE_DEPENDS]
     [<globbing-expressions>...])
file(GLOB_RECURSE <variable> [FOLLOW_SYMLINKS]
     [LIST_DIRECTORIES true|false] [RELATIVE <path>] [CONFIGURE_DEPENDS]
     [<globbing-expressions>...])

globbing-expressions是匹配表达式,支持多个,以空格间隔开即可,例如:
*.cc *.h。
LIST_DIRECTORIES true 表示目录也显示
LIST_DIRECTORIES false表示过滤目录

最终的搜索结果会保存在变量variable中。

RELATIVE 表示将搜索结果的目录变成相对于指定目录path的路径。

例子:

以上是关于CMake基础教程(32)文件搜索指令FILE的主要内容,如果未能解决你的问题,请参考以下文章

cmake基础教程(42)configure_file动态生成头文件

CMake基础教程(26)find_package搜索包完成库链接和头文件添加(module模式)

CMake基础教程(36)Linux交叉编译

CMake基础教程(27)find_package搜索包完成库链接和头文件添加(config模式)

CMake基础教程(34)cmake_parse_arguments解析函数或者宏的参数

CMake基础教程(24)add_executable生成目标可执行文件