# CMakeList.txt: 遍历文件夹 添加子项目 set(OUR_LIBS "") SUBDIRENAMES(OUR_LIBS ${CMAKE_CURRENT_SOURCE_DIR} "" OFF) message("OUR_LIBS :" ${OUR_LIBS}) # 自动遍历带 CMakeLists.txt 的直接子模块。部分模块会先按依赖关系 # 加载共享子模块;同名目标已存在时跳过,避免重复定义。 foreach(dll IN LISTS OUR_LIBS) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${dll}/CMakeLists.txt") if(TARGET ${dll}) message(STATUS "Skip already configured module: ${dll}") else() add_subdirectory(${dll}) endif() endif() endforeach()