|
|
@ -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}) |
|
|
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() |
|
|
|
|
|
|
|
|
string(TOUPPER ${MOD_NAME} MOD_UPPER) |
|
|
string(TOUPPER ${MOD_NAME} MOD_UPPER) |
|
|
option(BUILD_${MOD_UPPER} "Build ${MOD_NAME} module" ${DEFAULT_STATE}) |
|
|
option(BUILD_${MOD_UPPER} "Build ${MOD_NAME} module" ${DEFAULT_STATE}) |
|
|
|
|
|
|
|
|
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() |
|
|
|
|
|
|
|
|
|