一、需求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可以解决这个问题
- 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)
持续更新...