很遗憾,file指令的GLOB_RECURSE关键字已经很好的完成了我们的任务,那么接下来是我的第二个观点:如果实在找不到实实在在的场景来应用,那么另一个好办法就是模仿官方提供的一些基本功能。这些功能通常足够常用,同时又能保证其最大程度的普适性。这次要做的就是通过CMake代码本身完成GLOB_RECURSE的功能。首先假设我们在...
通过本章的学习,我们了解了 CMake 中的安装命令及其基本用法,并学会了如何使用file(GLOB_RECURSE ...)命令遍历目录,以及使用install(FILES ...)命令进行文件拷贝和安装。在接下来的章节中,我们将进一步探讨 CMake 的高级安装技巧,以及如何在复杂项目中高效地管理文件安装。
GLOB_RECURSE:递归搜索指定目录,将搜索到的满足条件的文件名生成一个列表,并将其存储到变量中。 示例如下: 搜索当前目录的src目录下所有的源文件,并存储到变量中。 file(GLOB MAIN_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) file(GLOB MAIN_HEAD ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h) CMAKE_CURRE...
在 CMake 中,可以使用 `file(GLOB_RECURSE <variable> <glob>)` 命令,通过递归搜索得到一个文件夹...
GLOB_RECURSE选项将会生成一个类似于通常的GLOB选项的list,只是它会寻访所有那些匹配目录的子路径并同时匹配查询表达式的文件。作为符号链接的子路径只有在给定FOLLOW_SYMLINKS选项或者cmake策略CMP0009被设置为NEW时,才会被寻访到。参见cmake --help-policy CMP0009 查询跟多有用的信息。
使用的语法都比较类似,以递归遍历文件为例,下面是获取 src 目录下两个子目录内所有 c 文件的列表的示例:file (GLOB_RECURSE ALL_SRC src/module1/.c src/module2/.c )。GLOB_RECURSE 表示执行递归查找,查找目录下所有符合指定正则表达式的文件。 分隔符...
aux_source_directory命令在查找源文件时,其基本用法如下:例如:aux_source_directory(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR} SRC_LIST)然而,当需要更灵活的搜索功能,比如搜索特定模式的文件或进行递归搜索时,file命令的GLOB和GLOB_RECURSE选项就显得更为强大。GLOB用于搜索符合特定模式的文件,例如`....
您可以使用列表过滤来删除GLOB_RECURSE:
GLOB_RECURSE表示执行递归查找,查找目录下所有符合指定正则表达式的文件。 5 配置文件生成 使用configure_file命令可以将配置文件模板中的特定内容替换,生成目标文件。 输入文件中的内容@VAR@或者${VAR}在输出文件中将被对应的变量值替换。 使用方式为: set(VERSION1.0.0) ...
# 并将它们添加到SOURCES变量中file(GLOB_RECURSESRC"src/*.cpp")#PROJECT_NAME代表当前项目的名称add_library(${PROJECT_NAME}STATIC${SRC})# 添加静态库目标 ### test/CMakeLists.txtcmake_minimum_required(VERSION3.10)# 设置cmake的最低版本要求为3.10project(funcTest)# 设置项目名称add_executable(${PROJE...