查找当前文件夹下的子目录,并进行剔除,将剩下的子目录添加至CMake中
SUBDIRLIST(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR})
SET(ExclusionList
.git
.vscode
build
)
FOREACH(SUBDIR ${SUBDIRS})
message("\n cur dir----------------------------" ${SUBDIR} )
SET(ADD_DIR TRUE)
foreach(exc ${ExclusionList})
if("${SUBDIR}" STREQUAL "${exc}" )
message(${SUBDIR} " Equal " ${exc})
SET(ADD_DIR FALSE)
BREAK()
endif()
endforeach()
IF( ADD_DIR )
message("add subdir: " ${SUBDIR})
ADD_SUBDIRECTORY(${SUBDIR})
ENDIF()
ENDFOREACH()
message("--------- all done ----- ")
查找当前文件夹下所有的cpp, 并将cpp的文件名编译为对应的exe(可生成多个exe)
message(" --------- start----- \n")
set(CPP_DIR
./
)
foreach(SUB_DIR ${CPP_DIR})
file(GLOB SRC "${CMAKE_CURRENT_SOURCE_DIR}/${SUB_DIR}/*.cpp")
foreach(CPP ${SRC})
STRING(REGEX REPLACE ".+/(.+)\\..*" "\\1" FILE_NAME ${CPP})
add_executable(cpp11_${FILE_NAME} ${CPP})
endforeach(CPP)
endforeach(SUB_DIR)
