在 CMake 中,可以使用 `file(GLOB_RECURSE <variable> <glob>)` 命令,通过递归搜索得到一个文件夹...
file(GLOB HEADER_FILES ./*.h) file(GLOB_RECURSE SRC_FILES ./*.cpp) add_executable (${PROJECT_NAME} ${HEADER_FILES} ${SRC_FILES}) 以上是保存在欲要生成项目的根目录下的CMakeList文件。 完成上述工作后,需要回到解决方案目录,即ServerAndClient文件夹下,对解决方案结构进行设计。 代码如下: CMakeL...
[NO_HEX_CONVERSION])file(GLOB variable [RELATIVE path] [globbing expressions]...)file(GLOB_RECURSE variable [RELATIVE path] [FOLLOW_SYMLINKS] [globbing expressions]...)file(RENAME <oldname> <newname>)file(REMOVE [file1 ...])file(REMOVE_RECURSE [file1 ...])file(MAKE_DIRECTORY [directory1...
使用file(GLOB_RECURSE) 可以递归搜索目录及其所有子目录中的文件 打印信息 message() 用于在 CMake 的构建过程中输出信息, 可以使用它来打印出变量的值, 或检查调试信息. 可以用于检查上个命令中变量 SRC_FILES 是否包含了目标源文件. message(STATUS "Src files: ${SRC_FILES}") STATUS : 显示一般状态信息 ...
file(GLOB_RECURSE all_files source/*.cpp source/*.cc source/*.c test/*.cpp test/*.cc test/*.c) # 生成目标可执行文件 add_executable(quantity-test ${all_files}) # 由于使用了gtest框架,所以需要链接这个库 target_link_libraries(quantity-test gtest) ...
file(GLOB_RECURSE source lib/*.hpp lib/*.cpp lib/Module1/*.cpp lib/Module1/*.hpp ) file(GLOB_RECURSE include lib/*.h lib/Module1/*.h ) # --- 静态库 --- add_library(${LIB_NAME} STATIC ${source}) target_link_libraries(${LIB_NAME} PUBLIC ...
file 命令支持的操作比较多,可以读写、创建或复制文件和目录、计算文件 hash、下载文件、压缩文件等等。使用的语法都比较类似,以递归遍历文件为例,下面是获取 src 目录下两个子目录内所有 c 文件的列表的示例:file (GLOB_RECURSE ALL_SRC src/module1/.c src/module2/.c )。GLOB_RECURSE 表示执行递归查找,查找...
这些功能通常足够常用,同时又能保证其最大程度的普适性。这次要做的就是通过CMake代码本身完成GLOB_RECURSE的功能。首先假设我们在C盘根目录有如下的文件结构: ---root|-CMakeLists.txt|-a.cpp|-b.cpp|---src||-c.cpp||-d.cpp|---include|-header.hpp 通过...
file(GLOB_RECURSE SRCS ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) 1. GLOB_RECURSE:表明递归的查找子文件夹; SRCS:存储结果的变量名; ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp:目标文件的匹配模式; 命令运行后扫描结果以字符串数组的形式保存在SRCS变量中,然后引用方式如下: ...