cmake05-查找文件

285 阅读1分钟

一、需求1:想查找指定目录下符合条件的文件

1.下面语句将会把./src目录下所有符合*.cpp结尾的文件存入USER_LIBS_PATH变量中,

file(GLOB USER_LIBS_PATH ./src/*.cpp)

2.如果我们不但在当前目录需要引入,还需要在当前目录子目录引入,这里就直接使用GLOB_RECURSE*

file(GLOB_RECURSE USER_LIBS_PATH ./src/*.cpp)

GLOB_RECURSE会临时文件也加入进来导致编译报错,解决方案是合理分配目录,如src只存放源文件,include只存放头文件等 3. 新加入的文件file是无法知道的,除非重新cmake -B build ,有种方式就是如下:

file(GLOB_RECURSE USER_LIBS_PATH CMAKE_CONFIGURE_DEPENDS ./src/*.cpp)

CMAKE_CONFIGURE_DEPENDS可以解决这个问题

  1. file有如下缺陷
file(GLOB_RECURSE USER_LIBS_PATH CMAKE_CONFIGURE_DEPENDS ./src/*.cpp mylib/*.cpp)

如果存在多个目录目录检索,需要一一写出来,所以需要用到aux_source_directory()执行解决

#把src目录所有源文件都设置到DIR_SOURCE变量里
aux_source_directory(src DIR_SOURCE)

持续更新...