# - 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/") # #============================================================================= # Copyright 2007-2009 Kitware, Inc. # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distributed this file outside of CMake, substitute the full # License text for the above reference.) FUNCTION(SET_FEATURE_INFO _name _desc) SET(_url "${ARGV2}") SET(_comment "${ARGV3}") SET_PROPERTY(GLOBAL PROPERTY ${_name}_DESCRIPTION "${_desc}" ) IF(_url MATCHES ".+") SET_PROPERTY(GLOBAL PROPERTY ${_name}_URL "${_url}" ) ENDIF(_url MATCHES ".+") IF(_comment MATCHES ".+") SET_PROPERTY(GLOBAL PROPERTY ${_name}_COMMENT "${_comment}" ) ENDIF(_comment MATCHES ".+") ENDFUNCTION(SET_FEATURE_INFO) FUNCTION(_PRINT_FEATURES _property _text) SET(_currentFeatureText "${_text}") GET_PROPERTY(_EnabledFeatures GLOBAL PROPERTY ${_property}) FOREACH(_currentFeature ${_EnabledFeatures}) SET(_currentFeatureText "${_currentFeatureText}\n${_currentFeature}") GET_PROPERTY(_info GLOBAL PROPERTY ${_currentFeature}_DESCRIPTION) IF(_info) SET(_currentFeatureText "${_currentFeatureText} , ${_info}") ENDIF(_info) GET_PROPERTY(_info GLOBAL PROPERTY ${_currentFeature}_URL) IF(_info) SET(_currentFeatureText "${_currentFeatureText} , <${_info}>") ENDIF(_info) GET_PROPERTY(_info GLOBAL PROPERTY ${_currentFeature}_COMMENT) IF(_info) SET(_currentFeatureText "${_currentFeatureText} , ${_info}") ENDIF(_info) ENDFOREACH(_currentFeature) MESSAGE(STATUS "${_currentFeatureText}\n") ENDFUNCTION(_PRINT_FEATURES) FUNCTION(PRINT_ENABLED_FEATURES) _PRINT_FEATURES( ENABLED_FEATURES "Enabled features:") ENDFUNCTION(PRINT_ENABLED_FEATURES) FUNCTION(PRINT_DISABLED_FEATURES) _PRINT_FEATURES( DISABLED_FEATURES "Disabled features:") ENDFUNCTION(PRINT_DISABLED_FEATURES)