aboutsummaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorJörg Mayer <jmayer@loplof.de>2009-10-15 21:25:48 +0000
committerJörg Mayer <jmayer@loplof.de>2009-10-15 21:25:48 +0000
commit5654d71f04be69e78cbcd27290fde6ca1b395c94 (patch)
treed5bb9e1bff2b5b8e4166f448745ab9b0e0423a14 /cmake
parentf670e428d06cc0c379a08baa782043da5a4931e7 (diff)
The Feature summary of cmake 2.6.2 has a bug that is fixed in
2.8.x (an empty disabled feature list would display all features). Copy in the version from cmake svn head for now. svn path=/trunk/; revision=30563
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/FeatureSummary.cmake78
1 files changed, 78 insertions, 0 deletions
diff --git a/cmake/modules/FeatureSummary.cmake b/cmake/modules/FeatureSummary.cmake
new file mode 100644
index 0000000000..d1d31bcebe
--- /dev/null
+++ b/cmake/modules/FeatureSummary.cmake
@@ -0,0 +1,78 @@
+# - 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)
+