feat: Organize CMakeLists for modular source management across main components

This commit is contained in:
GW_MC
2026-02-03 15:43:56 +08:00
parent 7bd230f591
commit a008106d47
10 changed files with 87 additions and 1 deletions

14
main/ui/CMakeLists.txt Normal file
View File

@@ -0,0 +1,14 @@
list(APPEND SRCS
"${CMAKE_CURRENT_LIST_DIR}/ui_handler.cpp"
"${CMAKE_CURRENT_LIST_DIR}/root_layout.cpp"
"${CMAKE_CURRENT_LIST_DIR}/interaction_handler.cpp"
"${CMAKE_CURRENT_LIST_DIR}/events.cpp"
"${CMAKE_CURRENT_LIST_DIR}/apps/registry.cpp"
"${CMAKE_CURRENT_LIST_DIR}/widgets/textarea.cpp"
"${CMAKE_CURRENT_LIST_DIR}/widgets/button.cpp"
)
# Apps control: include apps/CMakeLists.txt which selects which apps to add
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/apps/CMakeLists.txt")
include("${CMAKE_CURRENT_LIST_DIR}/apps/CMakeLists.txt")
endif()

View File

@@ -0,0 +1,19 @@
# Control which apps are included in the build.
# Override `ENABLED_APPS` from the top-level CMake command line to change apps.
if(NOT DEFINED ENABLED_APPS)
set(ENABLED_APPS "iotdis")
endif()
message(STATUS "Enabled apps: ${ENABLED_APPS}")
foreach(app IN LISTS ENABLED_APPS)
set(APP_DIR "${CMAKE_CURRENT_LIST_DIR}/${app}")
if(EXISTS "${APP_DIR}/CMakeLists.txt")
include("${APP_DIR}/CMakeLists.txt")
else()
message(WARNING "App '${app}' has no CMakeLists.txt — attempting to add any sources directly")
file(GLOB APP_SRCS "${APP_DIR}/*.c" "${APP_DIR}/*.cpp" "${APP_DIR}/*/*.c" "${APP_DIR}/*/*.cpp")
if(APP_SRCS)
list(APPEND SRCS ${APP_SRCS})
endif()
endif()
endforeach()

View File

@@ -0,0 +1,12 @@
# Explicit list of iotdis app sources
list(APPEND SRCS
"${CMAKE_CURRENT_LIST_DIR}/web/web_handlers.cpp"
"${CMAKE_CURRENT_LIST_DIR}/descriptor.cpp"
"${CMAKE_CURRENT_LIST_DIR}/settings/settings_handler.cpp"
"${CMAKE_CURRENT_LIST_DIR}/app.cpp"
"${CMAKE_CURRENT_LIST_DIR}/bridge/bridge.cpp"
"${CMAKE_CURRENT_LIST_DIR}/ui/settings_handler.cpp"
"${CMAKE_CURRENT_LIST_DIR}/ui/settings.cpp"
"${CMAKE_CURRENT_LIST_DIR}/ui/main_handler.cpp"
"${CMAKE_CURRENT_LIST_DIR}/ui/main.cpp"
)