最近项目需要从零搭建一个编译系统,相比于Makefile选择了易上手的CMake,遇到了需要遍历子目录下的所有CMakeLists.txt文件,于是自己编写了一个函数,希望大家多多指教。
# 递归获取包含CMakeLists.txt
macro(list_sub_cmake output target)
file(GLOB_RECURSE children LIST_DIRECTORIES true ${target}/*)
set(dir_list "")
foreach(child ${children})
if(IS_DIRECTORY ${child})
if(EXISTS ${child}/CMakeLists.txt)
file(RELATIVE_PATH child_name ${target} ${child})
list(APPEND dir_list ${child_name})
endif()
endif()
endforeach()
list(APPEND ${output} ${dir_list})
endmacro()
后续会持续更新!