forked from enlightenment/efl
cmake: improve options summary with per-library values.
segment the options based on libraries, makes it easier to read.
This commit is contained in:
parent
85a095f0a8
commit
ba9938b950
|
@ -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")
|
||||
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(_i "default: ${_d}")
|
||||
_EFL_OPTIONS_SUMMARY_INTERNAL(" " ${_o})
|
||||
endif()
|
||||
if(EFL_OPTION_MESSAGE_${_o})
|
||||
set(_m " [${EFL_OPTION_MESSAGE_${_o}}]")
|
||||
else()
|
||||
set(_m)
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue