# Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
# For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
# function to add:
# - module library to compilation
# - module definition to compilation
# - cmake option enabled by default
# this way we can enable/disable apps or services in cmake
function(add_module_options)
cmake_parse_arguments( _ARG
""
"OPTION_PREFIX;CATALOG_PREFIX;DEFINES_LIST_NAME"
"IN_MODULE_NAMES"
${ARGN}
)
message("configurables added: ${_ARG_IN_MODULE_NAMES}")
list(SORT _ARG_IN_MODULE_NAMES)
foreach(app IN LISTS _ARG_IN_MODULE_NAMES)
message("-> configuring option and define for: ${app}")
string(TOUPPER ${app} app_upper)
string(REPLACE "-" "_" app_macro_name ${app_upper})
#add option for each element from the IN_MODULE_NAMES
if (NOT DEFINED ENABLE_${_ARG_OPTION_PREFIX}_${app_macro_name})
message(" adding option: ${app}")
option(ENABLE_${_ARG_OPTION_PREFIX}_${app_macro_name} "Enable ${_ARG_CATALOG_PREFIX} ${app}" ON)
endif()
# add #define for each application to list
if(ENABLE_${_ARG_OPTION_PREFIX}_${app_macro_name})
message(" adding definition for: ${app}")
add_subdirectory(${_ARG_CATALOG_PREFIX}-${app})
list(APPEND _TMP "ENABLE_${_ARG_OPTION_PREFIX}_${app_macro_name}")
endif()
endforeach()
set(${_ARG_DEFINES_LIST_NAME} ${_TMP} PARENT_SCOPE)
message("defines for ${_ARG_DEFINES_LIST_NAME} set to: ${_TMP}")
endfunction()