diff options
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/FeatureSummary.cmake | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake new file mode 100644 index 0000000..40d6d7f --- /dev/null +++ b/Modules/FeatureSummary.cmake @@ -0,0 +1,64 @@ +# - Macros for generating a summary of enabled/disabled features +# +# PRINT_ENABLED_FEATURES() +# Print a summary of all enabled features. By default all successfull +# FIND_PACKAGE() calls will appear here, except the ones which used the QUIET keyword. +# Additional features can be added by appending an entry to the global ENABLED_FEATURES +# property. If SET_FEATURE_INFO() is used for that feature, the output will be much +# more informative. +# +# PRINT_DISABLED_FEATURES() +# Same as PRINT_ENABLED_FEATURES(), but for disabled features. It can be extended +# the same way by adding to the global property DISABLED_FEATURES. +# +# SET_FEATURE_INFO(NAME DESCRIPTION [URL [COMMENT] ] ) +# Use this macro to set up information about the named feature, which will +# then be displayed by PRINT_ENABLED/DISABLED_FEATURES(). +# Example: SET_FEATURE_INFO(LibXml2 "XML processing library." "http://xmlsoft.org/") +# + + +MACRO(SET_FEATURE_INFO _name _desc) + SET(_url "${ARGV2}") + SET(_comment "${ARGV3}") + SET_PROPERTIES(GLOBAL PROPERTIES ${_name}_DESCRIPTION "${_desc}" ) + IF(_url MATCHES ".+") + SET_PROPERTIES(GLOBAL PROPERTIES ${_name}_URL "${_url}" ) + ENDIF(_url MATCHES ".+") + IF(_comment MATCHES ".+") + SET_PROPERTIES(GLOBAL PROPERTIES ${_name}_COMMENT "${_comment}" ) + ENDIF(_comment MATCHES ".+") +ENDMACRO(SET_FEATURE_INFO) + + +MACRO(_PRINT_FEATURES _property _text) + SET(_currentFeatureText "${_text}") + GET_PROPERTY(_EnabledFeatures GLOBAL ${_property}) + FOREACH(_currentFeature ${_EnabledFeatures}) + SET(_currentFeatureText "${_currentFeatureText}\n${_currentFeature}") + GET_PROPERTY(_info GLOBAL ${_currentFeature}_DESCRIPTION) + IF(_info) + SET(_currentFeatureText "${_currentFeatureText} , ${_info}") + ENDIF(_info) + GET_PROPERTY(_info GLOBAL ${_currentFeature}_URL) + IF(_info) + SET(_currentFeatureText "${_currentFeatureText} , <${_info}>") + ENDIF(_info) + GET_PROPERTY(_info GLOBAL ${_currentFeature}_COMMENT) + IF(_info) + SET(_currentFeatureText "${_currentFeatureText} , ${_info}") + ENDIF(_info) + ENDFOREACH(_currentFeature) + MESSAGE(STATUS "${_currentFeatureText}\n") +ENDMACRO(_PRINT_FEATURES) + + +MACRO(PRINT_ENABLED_FEATURES) + _PRINT_FEATURES( ENABLED_FEATURES "Enabled features:") +ENDMACRO(PRINT_ENABLED_FEATURES) + + +MACRO(PRINT_DISABLED_FEATURES) + _PRINT_FEATURES( DISABLED_FEATURES "Disabled features:") +ENDMACRO(PRINT_DISABLED_FEATURES) + |