Browse Source

【待合】优化选项识别逻辑

master
Lizongdi 4 days ago
parent
commit
45d4f70dac
  1. 28
      CMakeLists.txt

28
CMakeLists.txt

@ -24,23 +24,17 @@ set(GLOBAL_ENABLED_MACROS "" CACHE INTERNAL "List of enabled macros for main")
list(APPEND GLOBAL_ENABLED_MACROS MEM_POOL_TOTAL_SIZE=${MY_MEMPOOL_SIZE}) list(APPEND GLOBAL_ENABLED_MACROS MEM_POOL_TOTAL_SIZE=${MY_MEMPOOL_SIZE})
set(GLOBAL_ENABLED_MACROS ${GLOBAL_ENABLED_MACROS} PARENT_SCOPE) set(GLOBAL_ENABLED_MACROS ${GLOBAL_ENABLED_MACROS} PARENT_SCOPE)
function(add_module MOD_NAME MOD_PATH) function(add_module MOD_NAME MOD_PATH DEFAULT_STATE HAS_TEST)
if(ARGC GREATER 2) if(NOT DEFAULT_STATE STREQUAL "ON" AND NOT DEFAULT_STATE STREQUAL "OFF")
set(DEFAULT_STATE ${ARGV2}) message(FATAL_ERROR "[add_module] Invalid DEFAULT_STATE for ${MOD_NAME}: ${DEFAULT_STATE}")
else()
set(DEFAULT_STATE OFF)
endif() endif()
if(ARGC GREATER 3) if(NOT HAS_TEST STREQUAL "ON" AND NOT HAS_TEST STREQUAL "OFF")
set(HAS_TEST ${ARGV2}) message(FATAL_ERROR "[add_module] Invalid HAS_TEST for ${MOD_NAME}: ${HAS_TEST}")
set(HAS_TEST ${ARGV3})
else()
set(HAS_TEST OFF)
endif() endif()
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${MOD_PATH}") if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${MOD_PATH}")
message(WARNING "[Root] Module '${MOD_NAME}' skipped: Path '${MOD_PATH}' does not exist!") 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() return()
endif() endif()
@ -49,12 +43,12 @@ function(add_module MOD_NAME MOD_PATH)
if(${BUILD_${MOD_UPPER}}) if(${BUILD_${MOD_UPPER}})
set(BUILD_${MOD_UPPER}_HAS_TEST ${HAS_TEST} CACHE INTERNAL "Has test support") set(BUILD_${MOD_UPPER}_HAS_TEST ${HAS_TEST} CACHE INTERNAL "Has test support")
list(APPEND GLOBAL_ENABLED_MODULES ${MOD_NAME}) list(APPEND GLOBAL_ENABLED_MODULES ${MOD_NAME})
list(APPEND GLOBAL_ENABLED_MACROS BUILD_${MOD_UPPER}) 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}") 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_MODULES ${GLOBAL_ENABLED_MODULES} PARENT_SCOPE)
set(GLOBAL_ENABLED_MACROS ${GLOBAL_ENABLED_MACROS} PARENT_SCOPE) set(GLOBAL_ENABLED_MACROS ${GLOBAL_ENABLED_MACROS} PARENT_SCOPE)
add_subdirectory(${MOD_PATH}) add_subdirectory(${MOD_PATH})
endif() endif()
endfunction() endfunction()

Loading…
Cancel
Save