From 45d4f70dac5505a9528c32c53400d63ee09b3a93 Mon Sep 17 00:00:00 2001 From: Lizongdi <1210855344@qq.com> Date: Tue, 9 Jun 2026 14:49:15 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=BE=85=E5=90=88=E3=80=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=80=89=E9=A1=B9=E8=AF=86=E5=88=AB=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index affa00d..b8a919d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,37 +24,31 @@ set(GLOBAL_ENABLED_MACROS "" CACHE INTERNAL "List of enabled macros for main") list(APPEND GLOBAL_ENABLED_MACROS MEM_POOL_TOTAL_SIZE=${MY_MEMPOOL_SIZE}) set(GLOBAL_ENABLED_MACROS ${GLOBAL_ENABLED_MACROS} PARENT_SCOPE) -function(add_module MOD_NAME MOD_PATH) - if(ARGC GREATER 2) - set(DEFAULT_STATE ${ARGV2}) - else() - set(DEFAULT_STATE OFF) +function(add_module MOD_NAME MOD_PATH DEFAULT_STATE HAS_TEST) + if(NOT DEFAULT_STATE STREQUAL "ON" AND NOT DEFAULT_STATE STREQUAL "OFF") + message(FATAL_ERROR "[add_module] Invalid DEFAULT_STATE for ${MOD_NAME}: ${DEFAULT_STATE}") endif() - if(ARGC GREATER 3) - set(HAS_TEST ${ARGV2}) - set(HAS_TEST ${ARGV3}) - else() - set(HAS_TEST OFF) + if(NOT HAS_TEST STREQUAL "ON" AND NOT HAS_TEST STREQUAL "OFF") + message(FATAL_ERROR "[add_module] Invalid HAS_TEST for ${MOD_NAME}: ${HAS_TEST}") endif() if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${MOD_PATH}") message(WARNING "[Root] Module '${MOD_NAME}' skipped: Path '${MOD_PATH}' does not exist!") - # message(FATAL_ERROR "[Root] Module '${MOD_NAME}' failed: Path '${MOD_PATH}' does not exist!") return() endif() string(TOUPPER ${MOD_NAME} MOD_UPPER) option(BUILD_${MOD_UPPER} "Build ${MOD_NAME} module" ${DEFAULT_STATE}) - + if(${BUILD_${MOD_UPPER}}) set(BUILD_${MOD_UPPER}_HAS_TEST ${HAS_TEST} CACHE INTERNAL "Has test support") - list(APPEND GLOBAL_ENABLED_MODULES ${MOD_NAME}) - list(APPEND GLOBAL_ENABLED_MACROS BUILD_${MOD_UPPER}) - message(STATUS "[Root] Enabled module(TestSupport: ${HAS_TEST}): ${MOD_NAME} (Default: ${DEFAULT_STATE}) -> Macro: BUILD_${MOD_UPPER}") - set(GLOBAL_ENABLED_MODULES ${GLOBAL_ENABLED_MODULES} PARENT_SCOPE) - set(GLOBAL_ENABLED_MACROS ${GLOBAL_ENABLED_MACROS} PARENT_SCOPE) - add_subdirectory(${MOD_PATH}) + list(APPEND GLOBAL_ENABLED_MODULES ${MOD_NAME}) + list(APPEND GLOBAL_ENABLED_MACROS BUILD_${MOD_UPPER}) + message(STATUS "[Root] Enabled module(TestSupport: ${HAS_TEST}): ${MOD_NAME} (Default: ${DEFAULT_STATE}) -> Macro: BUILD_${MOD_UPPER}") + set(GLOBAL_ENABLED_MODULES ${GLOBAL_ENABLED_MODULES} PARENT_SCOPE) + set(GLOBAL_ENABLED_MACROS ${GLOBAL_ENABLED_MACROS} PARENT_SCOPE) + add_subdirectory(${MOD_PATH}) endif() endfunction()