# 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()
