barbieri pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ba9938b9506448bef752c3a6fe85041238f4916c
commit ba9938b9506448bef752c3a6fe85041238f4916c Author: Gustavo Sverzut Barbieri <[email protected]> Date: Thu Jan 26 15:50:05 2017 -0200 cmake: improve options summary with per-library values. segment the options based on libraries, makes it easier to read. --- cmake/helpers/EflMacros.cmake | 58 ++++++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/cmake/helpers/EflMacros.cmake b/cmake/helpers/EflMacros.cmake index 41ad0dc..7699db3 100644 --- a/cmake/helpers/EflMacros.cmake +++ b/cmake/helpers/EflMacros.cmake @@ -124,7 +124,14 @@ function(EFL_OPTION _name _help _defval) endif() endif() - LIST_APPEND_GLOBAL(EFL_ALL_OPTIONS ${_name}) + if(EFL_LIB_CURRENT) + if(NOT DEFINED EFL_ALL_OPTIONS_${EFL_LIB_CURRENT}) + LIST_APPEND_GLOBAL(EFL_ALL_OPTIONS EFL_ALL_OPTIONS_${EFL_LIB_CURRENT}) + endif() + LIST_APPEND_GLOBAL(EFL_ALL_OPTIONS_${EFL_LIB_CURRENT} ${_name}) + else() + LIST_APPEND_GLOBAL(EFL_ALL_OPTIONS ${_name}) + endif() SET_GLOBAL(EFL_OPTION_DEFAULT_${_name} "${_defval}" "Default value for ${_name}") SET_GLOBAL(EFL_OPTION_TYPE_${_name} "${_vartype}" "Type of ${_name}") @@ -183,29 +190,47 @@ function(EFL_OPTION_SET_MESSAGE _name _message) SET_GLOBAL(EFL_OPTION_MESSAGE_${_name} "${_message}") endfunction() + +# _EFL_OPTIONS_SUMMARY_INTERNAL(Prefix Option) +# +# Internal function for EFL_OPTIONS_SUMMARY(). +function(_EFL_OPTIONS_SUMMARY_INTERNAL _prefix _o) + set(_v ${${_o}}) + set(_d ${EFL_OPTION_DEFAULT_${_o}}) + if(EFL_OPTION_DEPENDS_MISSING_${_o}) + set(_i "requires: ${EFL_OPTION_DEPENDS_MISSING_${_o}}, was: ${EFL_OPTION_ORIGINAL_VALUE_${_o}}") + elseif("${_v}" STREQUAL "${_d}") + set(_i "default") + else() + set(_i "default: ${_d}") + endif() + if(EFL_OPTION_MESSAGE_${_o}) + set(_m " [${EFL_OPTION_MESSAGE_${_o}}]") + else() + set(_m) + endif() + message(STATUS "${_prefix}${_o}=${_v} (${_i})${_m}") +endfunction() + # EFL_OPTIONS_SUMMARY() # Shows the summary of options, their values and related messages. function(EFL_OPTIONS_SUMMARY) - message(STATUS "EFL Options Summary:") + message(STATUS "EFL ${PROJECT_VERSION} Options Summary:") message(STATUS " CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}") message(STATUS " CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}") foreach(_o ${EFL_ALL_OPTIONS}) - set(_v ${${_o}}) - set(_d ${EFL_OPTION_DEFAULT_${_o}}) - if(EFL_OPTION_DEPENDS_MISSING_${_o}) - set(_i "requires: ${EFL_OPTION_DEPENDS_MISSING_${_o}}, was: ${EFL_OPTION_ORIGINAL_VALUE_${_o}}") - elseif("${_v}" STREQUAL "${_d}") - set(_i "default") - else() - set(_i "default: ${_d}") - endif() - if(EFL_OPTION_MESSAGE_${_o}) - set(_m " [${EFL_OPTION_MESSAGE_${_o}}]") + if(_o MATCHES "^EFL_ALL_OPTIONS_") + string(REGEX REPLACE "^EFL_ALL_OPTIONS_" "" _name "${_o}") + message(STATUS "") + message(STATUS " ${_name} options:") + foreach(_so ${${_o}}) + _EFL_OPTIONS_SUMMARY_INTERNAL(" " ${_so}) + endforeach() else() - set(_m) + _EFL_OPTIONS_SUMMARY_INTERNAL(" " ${_o}) endif() - message(STATUS " ${_o}=${_v} (${_i})${_m}") endforeach() + message(STATUS "") message(STATUS "EFL Libraries:") foreach(_o ${EFL_ALL_LIBS}) message(STATUS " ${_o}${_mods}") @@ -221,6 +246,7 @@ function(EFL_OPTIONS_SUMMARY) endforeach() if(EFL_PKG_CONFIG_MISSING_OPTIONAL) + message(STATUS "") message(STATUS "The following pkg-config optional modules are missing:") foreach(_m ${EFL_PKG_CONFIG_MISSING_OPTIONAL}) message(STATUS " ${_m}") @@ -835,6 +861,8 @@ function(EFL_LIB _target) set(EFL_TESTS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/tests/${_target}) set(EFL_TESTS_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/src/tests/${_target}) + unset(EFL_ALL_OPTIONS_${EFL_LIB_CURRENT} CACHE) + set(DESCRIPTION) set(PKG_CONFIG_REQUIRES) set(PKG_CONFIG_REQUIRES_PRIVATE) --
