教程
参数
需要指定文件后缀
GLOB
只搜索当前目录
GLOB_RECURSE
:搜索当前目录和其子目录(递归搜索)
RELATIVE
相对于哪个路径进行搜索,获取文件的相对路径。
使用RELATIVE和不使用RELATIVE的区别:
1,当不使用RELATIVE时:
指定一个搜索路径,路径后紧跟文件类型:
cmake_minimum_required(VERSION 3.10)
project(file_test)
file(GLOB_RECURSE inclu_src ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
message("inclu_src: ${inclu_src}")
获取的文件的路径:绝对路径:
2,使用RELATIVE时:
指定的搜索路径是一个目录,目录的后边一个参数是搜索的文件类型;
cmake_minimum_required(VERSION 3.10)
project(file_test)
file(GLOB_RECURSE inclu_src RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include *.hpp)
message("inclu_src: ${inclu_src}")
获取的文件的路径:
只包含RELATIVE指定的目录之后的路径;
file---list实现删除不需要的文件
file(GLOB_RECURSE H_CPP_FILE
RELATIVE ${PROJECT_SOURCE_DIR}
"*.h"
"*.cpp"
"*.ui"
)
file(GLOB_RECURSE del_file
RELATIVE ${CMAKE_SOURCE_DIR}
"include/*"
)
foreach(d_file ${del_file})
list(REMOVE_ITEM H_CPP_FILE ${d_file})
endforeach()