This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  25451865e6fe88c14d581a3d7f0b6fb6e046a2b9 (commit)
       via  b62349cc60d71eb2af5648eb6867678d5b05273b (commit)
       via  f366cf8a86a1e403b5922bb5bfa2488460f49201 (commit)
       via  f407bb5da29b36ca4edee93ff21ae2a5b8fda960 (commit)
       via  02d47abe58b4fa99f34b24cb799084e0f57215bd (commit)
       via  91a1527735c8d4f598a1836b1cc8ba128936712e (commit)
       via  0671a029205763845e5fd21ce5f69fbe8b0b2c45 (commit)
       via  aae13f4c8ea652f437b096b9017bd76ed62fd44d (commit)
      from  7bde5d734e10c285fda2e69dbdb20897d8549fec (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=25451865e6fe88c14d581a3d7f0b6fb6e046a2b9
commit 25451865e6fe88c14d581a3d7f0b6fb6e046a2b9
Merge: 7bde5d7 b62349c
Author:     Alexander Neundorf <neund...@kde.org>
AuthorDate: Fri Jul 29 16:34:02 2011 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Fri Jul 29 16:34:02 2011 -0400

    Merge topic 'FeatureSummaryImprovements' into next
    
    b62349c FeatureSummary.cmake: update documentation
    f366cf8 FeatureSummary.cmake: cosmetics
    f407bb5 FeatureSummary.cmake: only higher TYPEs can override previous TYPEs
    02d47ab FeatureSummary.cmake: error out when a REQUIRED package is missing
    91a1527 FeatureSummary.cmake: add INCLUDE_QUIET_PACKAGES keyword
    0671a02 FeatureSummary.cmake: remove "comment" field
    aae13f4 Extend FeatureSummary: add PURPOSE of package and TYPE


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b62349cc60d71eb2af5648eb6867678d5b05273b
commit b62349cc60d71eb2af5648eb6867678d5b05273b
Author:     Alex Neundorf <neund...@kde.org>
AuthorDate: Sun Jul 17 21:23:13 2011 +0200
Commit:     Alex Neundorf <neund...@kde.org>
CommitDate: Sun Jul 17 21:23:13 2011 +0200

    FeatureSummary.cmake: update documentation
    
    Alex

diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake
index 2419633..570fb7b 100644
--- a/Modules/FeatureSummary.cmake
+++ b/Modules/FeatureSummary.cmake
@@ -1,18 +1,22 @@
 # - Macros for generating a summary of enabled/disabled features
 #
-# This module provides the macros feature_summary(), set_package_info() and
+# This module provides the macros feature_summary(), set_package_properties() 
and
 # add_feature_info().
-# For compatiblity it also still provides set_feature_info(),
-# print_enabled_features() and print_disabled_features.
+# For compatiblity it also still provides set_package_info(), 
set_feature_info(),
+# print_enabled_features() and print_disabled_features().
 #
 # These macros can be used to generate a summary of enabled and disabled
 # packages and/or feature for a build tree:
 #
-#    -- Enabled features:
+#    -- The following OPTIONAL packages have been found:
 #    LibXml2 (required version >= 2.4) , XML processing library. , 
<http://xmlsoft.org>
+#       * Enables HTML-import in MyWordProcessor
+#       * Enables odt-export in MyWordProcessor
 #    PNG , A PNG image library. , <http://www.libpng.org/pub/png/>
-#    -- Disabled features:
+#       * Enables saving screenshots
+#    -- The following OPTIONAL packages have not been found:
 #    Lua51 , The Lua scripting language. , <http://www.lua.org>
+#       * Enables macros in MyWordProcessor
 #    Foo , Foo provides cool stuff.
 #
 #
@@ -20,24 +24,34 @@
 #                     [APPEND]
 #                     [VAR <variable_name>]
 #                     [INCLUDE_QUIET_PACKAGES]
+#                     [FATAL_ON_MISSING_REQUIRED_PACKAGES]
 #                     [DESCRIPTION "Found packages:"]
 #                     WHAT (ALL | PACKAGES_FOUND | PACKAGES_NOT_FOUND
 #                          | ENABLED_FEATURES | DISABLED_FEATURES]
 #                   )
 #
 # The FEATURE_SUMMARY() macro can be used to print information about enabled
-# or disabled features or packages of a project.
+# or disabled packages or features of a project.
 # By default, only the names of the features/packages will be printed and their
-# required version when one was specified. Use SET_FEATURE_INFO() to add more
-# useful information, like e.g. a download URL for the respective package.
+# required version when one was specified. Use SET_PACKAGE_PROPERTIES() to add 
more
+# useful information, like e.g. a download URL for the respective package or 
their
+# purpose in the project.
 #
 # The WHAT option is the only mandatory option. Here you specify what 
information
 # will be printed:
+#    ALL: print everything
 #    ENABLED_FEATURES: the list of all features which are enabled
 #    DISABLED_FEATURES: the list of all features which are disabled
 #    PACKAGES_FOUND: the list of all packages which have been found
 #    PACKAGES_NOT_FOUND: the list of all packages which have not been found
-#    ALL: this will give all packages which have or have not been found
+#    OPTIONAL_PACKAGES_FOUND: only those packages which have been found which 
have the type OPTIONAL
+#    OPTIONAL_PACKAGES_NOT_FOUND: only those packages which have not been 
found which have the type OPTIONAL
+#    RECOMMENDED_PACKAGES_FOUND: only those packages which have been found 
which have the type RECOMMENDED
+#    RECOMMENDED_PACKAGES_NOT_FOUND: only those packages which have not been 
found which have the type RECOMMENDED
+#    REQUIRED_PACKAGES_FOUND: only those packages which have been found which 
have the type REQUIRED
+#    REQUIRED_PACKAGES_NOT_FOUND: only those packages which have not been 
found which have the type REQUIRED
+#    RUNTIME_PACKAGES_FOUND: only those packages which have been found which 
have the type RUNTIME
+#    RUNTIME_PACKAGES_NOT_FOUND: only those packages which have not been found 
which have the type RUNTIME
 #
 # If a FILENAME is given, the information is printed into this file. If APPEND
 # is used, it is appended to this file, otherwise the file is overwritten if
@@ -47,19 +61,29 @@
 # If FILENAME is not used, the information is printed to the terminal.
 # Using the DESCRIPTION option a description or headline can be set which will
 # be printed above the actual content.
+# If INCLUDE_QUIET_PACKAGES is given, packages which have been searched with 
find_package(... QUIET) will
+# also be listed. By default they are skipped.
+# If FATAL_ON_MISSING_REQUIRED_PACKAGES is given, CMake will abort if a 
package which is marked as REQUIRED
+# has not been found.
 #
 # Example 1, append everything to a file:
 #   feature_summary(WHAT ALL
 #                   FILENAME ${CMAKE_BINARY_DIR}/all.log APPEND)
 #
-# Example 2, print the enabled features into the variable enabledFeaturesText:
+# Example 2, print the enabled features into the variable enabledFeaturesText, 
including QUIET packages:
 #   feature_summary(WHAT ENABLED_FEATURES
+#                   INCLUDE_QUIET_PACKAGES
 #                   DESCRIPTION "Enabled Features:"
 #                   VAR enabledFeaturesText)
 #   message(STATUS "${enabledFeaturesText}")
 #
 #
-#    SET_PACKAGE_INFO(<name> <description> [<url> [<purpose>] ] )
+#    SET_PACKAGE_PROPERTIES(<name> PROPERTIES [ URL <url> ]
+#                                             [ DESCRIPTION <description> ]
+#                                             [ TYPE 
(RUNTIME|OPTIONAL|RECOMMENDED|REQUIRED) ]
+#                                             [ PURPOSE <purpose> ]
+#                          )
+#
 # Use this macro to set up information about the named package, which can
 # then be displayed via FEATURE_SUMMARY().
 # This can be done either directly in the Find-module or in the project
@@ -67,16 +91,47 @@
 # The features for which information can be set are added automatically by the
 # find_package() command.
 #
+# URL: this should be the homepage of the package, or something similar. 
Ideally this is set
+# already directly in the Find-module.
+#
+# DESCRIPTION: A short description what that package is, at most one sentence.
+# Ideally this is set already directly in the Find-module.
+#
+# TYPE: What type of dependency has the using project on that package. Default 
is OPTIONAL.
+# In this case it is a package which can be used by the project when available 
at buildtime,
+# but it also work without. RECOMMENDED is similar to OPTIONAL, i.e. the 
project will build
+# if the package is not present, but the functionality of the resulting 
binaries will be severly
+# limited. If a REQUIRED package is not available at buildtime, the project 
may not even build. This
+# can be combined with the FATAL_ON_MISSING_REQUIRED_PACKAGES argument for 
feature_summary().
+# Last, a RUNTIME package is a package which is actually not used at all 
during the build, but
+# which is required for actually running the resulting binaries. So if such a 
package is missing,
+# the project can still be built, but it may not work later on. If 
set_package_properties() is called
+# multiple times for the same package with different TYPEs, the TYPE is only 
changed to higher
+# TYPEs ( RUNTIME < OPTIONAL < RECOMMENDED < REQUIRED ), lower TYPEs are 
ignored.
+# The TYPE property is project-specific, so it cannot be set by the 
Find-module, but must be set in the project.
+#
+# PURPOSE: This describes which features this package enables in the project, 
i.e. it tells the user
+# what functionality he gets in the resulting binaries.
+# If set_package_properties() is called multiple times for a package, all 
PURPOSE properties are appended
+# to a list of purposes of the package in the project.
+# As the TYPE property, also the PURPOSE property
+# is project-specific, so it cannot be set by the Find-module, but must be set 
in the project.
+#
+#
 # Example for setting the info for a package:
 #   find_package(LibXml2)
-#   set_package_info(LibXml2 "XML processing library." "http://xmlsoft.org/";)
+#   set_package_properties(LibXml2 PROPERTIES DESCRIPTION "A XML processing 
library."
+#                                             URL "http://xmlsoft.org/";)
 #
-#    SET_PACKAGE_PROPERTIES(<name> PROPERTIES <description> [<url> [<purpose>  
[<type>] ] ] )
+#   set_package_properties(LibXml2 PROPERTIES TYPE RECOMMENDED
+#                                             PURPOSE "Enables HTML-import in 
MyWordProcessor")
+# ...
+#   set_package_properties(LibXml2 PROPERTIES TYPE OPTIONAL
+#                                             PURPOSE "Enables odt-export in 
MyWordProcessor")
 #
-# URL: homepage of the package
-# DESCRIPTION: short description of the package itself
-# PURPOSE: what is the purpopse of using the package in the current project, 
always appended
-# TYPE: OPTIONAL (default), RECOMMENDED, REQUIRED, RUNTIME
+#   find_package(DBUS)
+#   set_package_properties(LibXml2 PROPERTIES TYPE RUNTIME
+#                                             PURPOSE "Necessary to disable 
the screensaver during a presentation" )
 #
 #    ADD_FEATURE_INFO(<name> <enabled> <description>)
 # Use this macro to add information about a feature with the given <name>.
@@ -92,6 +147,14 @@
 #
 # The following macros are provided for compatibility with previous CMake 
versions:
 #
+#    SET_PACKAGE_INFO(<name> <description> [<url> [<purpose>] ] )
+# Use this macro to set up information about the named package, which can
+# then be displayed via FEATURE_SUMMARY().
+# This can be done either directly in the Find-module or in the project
+# which uses the module after the FIND_PACKAGE() call.
+# The features for which information can be set are added automatically by the
+# find_package() command.
+#
 #    PRINT_ENABLED_FEATURES()
 # Does the same as FEATURE_SUMMARY(WHAT ENABLED_FEATURES  DESCRIPTION "Enabled 
features:")
 #
@@ -336,7 +399,7 @@ FUNCTION(FEATURE_SUMMARY)
       SET(_tmp)
       _FS_GET_FEATURE_SUMMARY( ${part} _tmp ${_FS_INCLUDE_QUIET_PACKAGES})
       IF(_tmp)
-        SET(_fullText "${_fullText}\n\n${title_${part}}\n${_tmp}")
+        SET(_fullText "${_fullText}\n\n-- ${title_${part}}\n${_tmp}")
         IF("${part}" STREQUAL "REQUIRED_PACKAGES_NOT_FOUND")
           SET(requiredPackagesNotFound TRUE)
         ENDIF()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f366cf8a86a1e403b5922bb5bfa2488460f49201
commit f366cf8a86a1e403b5922bb5bfa2488460f49201
Author:     Alex Neundorf <neund...@kde.org>
AuthorDate: Sun Jul 17 20:47:11 2011 +0200
Commit:     Alex Neundorf <neund...@kde.org>
CommitDate: Sun Jul 17 20:47:11 2011 +0200

    FeatureSummary.cmake: cosmetics
    
    -move the compat function to the bottom of the file
    -make all except one endif() empty
    
    Alex

diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake
index 866b300..2419633 100644
--- a/Modules/FeatureSummary.cmake
+++ b/Modules/FeatureSummary.cmake
@@ -128,24 +128,6 @@ FUNCTION(ADD_FEATURE_INFO _name _enabled _desc)
 ENDFUNCTION(ADD_FEATURE_INFO)
 
 
-FUNCTION(SET_FEATURE_INFO)
-  SET_PACKAGE_INFO(${ARGN})
-ENDFUNCTION(SET_FEATURE_INFO)
-
-
-FUNCTION(SET_PACKAGE_INFO _name _desc)
-  SET(_url "${ARGV2}")
-  SET(_purpose "${ARGV3}")
-  SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_DESCRIPTION "${_desc}" )
-  IF(_url MATCHES ".+")
-    SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_URL "${_url}" )
-  ENDIF()
-  IF(_purpose MATCHES ".+")
-    SET_PROPERTY(GLOBAL APPEND PROPERTY _CMAKE_${_name}_PURPOSE "${_purpose}" )
-  ENDIF()
-ENDFUNCTION(SET_PACKAGE_INFO)
-
-
 
 FUNCTION(SET_PACKAGE_PROPERTIES _name _props)
   IF(NOT "${_props}" STREQUAL "PROPERTIES")
@@ -285,16 +267,6 @@ FUNCTION(_FS_GET_FEATURE_SUMMARY _property _var 
_includeQuiet)
 ENDFUNCTION(_FS_GET_FEATURE_SUMMARY)
 
 
-FUNCTION(PRINT_ENABLED_FEATURES)
-  FEATURE_SUMMARY(WHAT ENABLED_FEATURES  DESCRIPTION "Enabled features:")
-ENDFUNCTION(PRINT_ENABLED_FEATURES)
-
-
-FUNCTION(PRINT_DISABLED_FEATURES)
-  FEATURE_SUMMARY(WHAT DISABLED_FEATURES  DESCRIPTION "Disabled features:")
-ENDFUNCTION(PRINT_DISABLED_FEATURES)
-
-
 
 FUNCTION(FEATURE_SUMMARY)
 # CMAKE_PARSE_ARGUMENTS(<prefix> <options> <one_value_keywords> 
<multi_value_keywords> args...)
@@ -306,11 +278,11 @@ FUNCTION(FEATURE_SUMMARY)
 
   IF(_FS_UNPARSED_ARGUMENTS)
     MESSAGE(FATAL_ERROR "Unknown keywords given to FEATURE_SUMMARY(): 
\"${_FS_UNPARSED_ARGUMENTS}\"")
-  ENDIF(_FS_UNPARSED_ARGUMENTS)
+  ENDIF()
 
   IF(NOT _FS_WHAT)
     MESSAGE(FATAL_ERROR "The call to FEATURE_SUMMAY() doesn't set the required 
WHAT argument.")
-  ENDIF(NOT _FS_WHAT)
+  ENDIF()
 
   SET(validWhatParts "ENABLED_FEATURES"
                      "DISABLED_FEATURES"
@@ -379,20 +351,53 @@ FUNCTION(FEATURE_SUMMARY)
       FILE(APPEND "${_FS_FILENAME}" "${_fullText}")
     ELSE(_FS_APPEND)
       FILE(WRITE  "${_FS_FILENAME}" "${_fullText}")
-    ENDIF(_FS_APPEND)
+    ENDIF()
 
   ELSE(_FS_FILENAME)
     IF(NOT _FS_VAR)
       MESSAGE(STATUS "${_fullText}")
-    ENDIF(NOT _FS_VAR)
-  ENDIF(_FS_FILENAME)
+    ENDIF()
+  ENDIF()
 
   IF(_FS_VAR)
     SET(${_FS_VAR} "${_fullText}" PARENT_SCOPE)
-  ENDIF(_FS_VAR)
+  ENDIF()
 
   IF(requiredPackagesNotFound  AND  _FS_FATAL_ON_MISSING_REQUIRED_PACKAGES)
     MESSAGE(FATAL_ERROR "feature_summary() Error: REQUIRED package(s) are 
missing, aborting CMake run.")
   ENDIF()
 
 ENDFUNCTION(FEATURE_SUMMARY)
+
+
+# The stuff below is only kept for compatibility
+
+FUNCTION(SET_PACKAGE_INFO _name _desc)
+  SET(_url "${ARGV2}")
+  SET(_purpose "${ARGV3}")
+  SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_DESCRIPTION "${_desc}" )
+  IF(_url MATCHES ".+")
+    SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_URL "${_url}" )
+  ENDIF()
+  IF(_purpose MATCHES ".+")
+    SET_PROPERTY(GLOBAL APPEND PROPERTY _CMAKE_${_name}_PURPOSE "${_purpose}" )
+  ENDIF()
+ENDFUNCTION(SET_PACKAGE_INFO)
+
+
+
+FUNCTION(SET_FEATURE_INFO)
+  SET_PACKAGE_INFO(${ARGN})
+ENDFUNCTION(SET_FEATURE_INFO)
+
+
+
+FUNCTION(PRINT_ENABLED_FEATURES)
+  FEATURE_SUMMARY(WHAT ENABLED_FEATURES  DESCRIPTION "Enabled features:")
+ENDFUNCTION(PRINT_ENABLED_FEATURES)
+
+
+
+FUNCTION(PRINT_DISABLED_FEATURES)
+  FEATURE_SUMMARY(WHAT DISABLED_FEATURES  DESCRIPTION "Disabled features:")
+ENDFUNCTION(PRINT_DISABLED_FEATURES)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f407bb5da29b36ca4edee93ff21ae2a5b8fda960
commit f407bb5da29b36ca4edee93ff21ae2a5b8fda960
Author:     Alex Neundorf <neund...@kde.org>
AuthorDate: Sun Jul 17 20:41:09 2011 +0200
Commit:     Alex Neundorf <neund...@kde.org>
CommitDate: Sun Jul 17 20:41:09 2011 +0200

    FeatureSummary.cmake: only higher TYPEs can override previous TYPEs
    
    This way e.g. a REQUIRED cannot become OPTIONAL, only the other way round
    
    Alex

diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake
index ff14571..866b300 100644
--- a/Modules/FeatureSummary.cmake
+++ b/Modules/FeatureSummary.cmake
@@ -192,14 +192,21 @@ FUNCTION(SET_PACKAGE_PROPERTIES _name _props)
     SET(_SPP_TYPE OPTIONAL)
   ENDIF()
 
-  SET(validTypes OPTIONAL RECOMMENDED REQUIRED RUNTIME )
+  # List the supported types, according to their priority
+  SET(validTypes "RUNTIME" "OPTIONAL" "RECOMMENDED" "REQUIRED" )
   LIST(FIND validTypes ${_SPP_TYPE} _typeIndexInList)
   IF("${_typeIndexInList}" STREQUAL "-1" )
     MESSAGE(FATAL_ERROR "Bad package property type ${_SPP_TYPE} used in 
SET_PACKAGE_PROPERTIES(). "
                         "Valid types are OPTIONAL, RECOMMENDED, REQUIRED and 
RUNTIME." )
   ENDIF()
 
-  SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_TYPE "${_SPP_TYPE}" )
+  GET_PROPERTY(_previousType  GLOBAL PROPERTY _CMAKE_${_name}_TYPE)
+  LIST(FIND validTypes "${_previousType}" _prevTypeIndexInList)
+
+  # make sure a previously set TYPE is not overridden with a lower new TYPE:
+  IF("${_typeIndexInList}" GREATER "${_prevTypeIndexInList}")
+    SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_TYPE "${_SPP_TYPE}" )
+  ENDIF()
 
 ENDFUNCTION(SET_PACKAGE_PROPERTIES)
 

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=02d47abe58b4fa99f34b24cb799084e0f57215bd
commit 02d47abe58b4fa99f34b24cb799084e0f57215bd
Author:     Alex Neundorf <neund...@kde.org>
AuthorDate: Sun Jul 17 20:26:49 2011 +0200
Commit:     Alex Neundorf <neund...@kde.org>
CommitDate: Sun Jul 17 20:26:49 2011 +0200

    FeatureSummary.cmake: error out when a REQUIRED package is missing
    
    Alex

diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake
index 1c74eb6..ff14571 100644
--- a/Modules/FeatureSummary.cmake
+++ b/Modules/FeatureSummary.cmake
@@ -240,7 +240,8 @@ FUNCTION(_FS_GET_FEATURE_SUMMARY _property _var 
_includeQuiet)
 
       # check whether the current feature/package should be in the output 
depending on whether it was QUIET or not
       SET(includeThisOne TRUE)
-      IF(NOT _includeQuiet)
+      # skip QUIET packages, except if they are REQUIRED or 
INCLUDE_QUIET_PACKAGES has been set
+      IF((NOT "${_currentType}" STREQUAL "REQUIRED") AND NOT _includeQuiet)
         GET_PROPERTY(_isQuiet  GLOBAL PROPERTY _CMAKE_${_currentFeature}_QUIET)
         IF(_isQuiet)
           SET(includeThisOne FALSE)
@@ -290,7 +291,7 @@ ENDFUNCTION(PRINT_DISABLED_FEATURES)
 
 FUNCTION(FEATURE_SUMMARY)
 # CMAKE_PARSE_ARGUMENTS(<prefix> <options> <one_value_keywords> 
<multi_value_keywords> args...)
-  SET(options APPEND INCLUDE_QUIET_PACKAGES )
+  SET(options APPEND INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
   SET(oneValueArgs FILENAME VAR DESCRIPTION WHAT)
   SET(multiValueArgs ) # none
 
@@ -321,6 +322,10 @@ FUNCTION(FEATURE_SUMMARY)
   IF(NOT "${indexInList}" STREQUAL "-1")
     _FS_GET_FEATURE_SUMMARY( ${_FS_WHAT} _featureSummary 
${_FS_INCLUDE_QUIET_PACKAGES} )
     SET(_fullText "${_FS_DESCRIPTION}${_featureSummary}\n")
+    IF (("${_FS_WHAT}" STREQUAL "REQUIRED_PACKAGES_NOT_FOUND") AND 
_featureSummary)
+      SET(requiredPackagesNotFound TRUE)
+    ENDIF()
+
   ELSEIF("${_FS_WHAT}" STREQUAL "ALL")
 
     SET(allWhatParts "ENABLED_FEATURES"
@@ -347,12 +352,15 @@ FUNCTION(FEATURE_SUMMARY)
     SET(title_RUNTIME_PACKAGES_FOUND         "The following RUNTIME packages 
have been found:")
     SET(title_RUNTIME_PACKAGES_NOT_FOUND     "The following RUNTIME packages 
have not been found:")
 
-    SET(_fullText "${_FS_DESCRIPTION}\n")
+    SET(_fullText "${_FS_DESCRIPTION}")
     FOREACH(part ${allWhatParts})
       SET(_tmp)
       _FS_GET_FEATURE_SUMMARY( ${part} _tmp ${_FS_INCLUDE_QUIET_PACKAGES})
       IF(_tmp)
-        SET(_fullText "${_fullText}\n${title_${part}}\n${_tmp}")
+        SET(_fullText "${_fullText}\n\n${title_${part}}\n${_tmp}")
+        IF("${part}" STREQUAL "REQUIRED_PACKAGES_NOT_FOUND")
+          SET(requiredPackagesNotFound TRUE)
+        ENDIF()
       ENDIF()
     ENDFOREACH()
   ELSE()
@@ -376,4 +384,8 @@ FUNCTION(FEATURE_SUMMARY)
     SET(${_FS_VAR} "${_fullText}" PARENT_SCOPE)
   ENDIF(_FS_VAR)
 
+  IF(requiredPackagesNotFound  AND  _FS_FATAL_ON_MISSING_REQUIRED_PACKAGES)
+    MESSAGE(FATAL_ERROR "feature_summary() Error: REQUIRED package(s) are 
missing, aborting CMake run.")
+  ENDIF()
+
 ENDFUNCTION(FEATURE_SUMMARY)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=91a1527735c8d4f598a1836b1cc8ba128936712e
commit 91a1527735c8d4f598a1836b1cc8ba128936712e
Author:     Alex Neundorf <neund...@kde.org>
AuthorDate: Sun Jul 17 17:48:00 2011 +0200
Commit:     Alex Neundorf <neund...@kde.org>
CommitDate: Sun Jul 17 17:48:00 2011 +0200

    FeatureSummary.cmake: add INCLUDE_QUIET_PACKAGES keyword
    
    Now found packages are not stored in ENABLED/DISABLED_FEATURES
    anymore, but always in PACKAGES_FOUND/NOT_FOUND.
    ENABLED/DISABLED_FEATURES is now only used via
    ADD_FEATURE_INFO(), e.g. for stuff set via option().
    
    Alex

diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake
index a461012..1c74eb6 100644
--- a/Modules/FeatureSummary.cmake
+++ b/Modules/FeatureSummary.cmake
@@ -19,6 +19,7 @@
 #    FEATURE_SUMMARY( [FILENAME <file>]
 #                     [APPEND]
 #                     [VAR <variable_name>]
+#                     [INCLUDE_QUIET_PACKAGES]
 #                     [DESCRIPTION "Found packages:"]
 #                     WHAT (ALL | PACKAGES_FOUND | PACKAGES_NOT_FOUND
 #                          | ENABLED_FEATURES | DISABLED_FEATURES]
@@ -32,10 +33,8 @@
 #
 # The WHAT option is the only mandatory option. Here you specify what 
information
 # will be printed:
-#    ENABLED_FEATURES: the list of all features and packages which are enabled,
-#                      excluding the QUIET packages
-#    DISABLED_FEATURES: the list of all features and packages which are 
disabled,
-#                       excluding the QUIET packages
+#    ENABLED_FEATURES: the list of all features which are enabled
+#    DISABLED_FEATURES: the list of all features which are disabled
 #    PACKAGES_FOUND: the list of all packages which have been found
 #    PACKAGES_NOT_FOUND: the list of all packages which have not been found
 #    ALL: this will give all packages which have or have not been found
@@ -206,7 +205,7 @@ ENDFUNCTION(SET_PACKAGE_PROPERTIES)
 
 
 
-FUNCTION(_FS_GET_FEATURE_SUMMARY _property _var)
+FUNCTION(_FS_GET_FEATURE_SUMMARY _property _var _includeQuiet)
 
   SET(_type "ANY")
   IF("${_property}" MATCHES "REQUIRED_")
@@ -239,24 +238,37 @@ FUNCTION(_FS_GET_FEATURE_SUMMARY _property _var)
 
     IF("${_type}" STREQUAL ANY  OR  "${_type}" STREQUAL "${_currentType}")
 
-      SET(_currentFeatureText "${_currentFeatureText}\n${_currentFeature}")
-      GET_PROPERTY(_info  GLOBAL PROPERTY 
_CMAKE_${_currentFeature}_REQUIRED_VERSION)
-      IF(_info)
-        SET(_currentFeatureText "${_currentFeatureText} (required version 
${_info})")
-      ENDIF(_info)
-      GET_PROPERTY(_info  GLOBAL PROPERTY 
_CMAKE_${_currentFeature}_DESCRIPTION)
-      IF(_info)
-        SET(_currentFeatureText "${_currentFeatureText} , ${_info}")
-      ENDIF(_info)
-      GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_URL)
-      IF(_info)
-        SET(_currentFeatureText "${_currentFeatureText} , <${_info}>")
-      ENDIF(_info)
-
-      GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_PURPOSE)
-      FOREACH(_purpose ${_info})
-        SET(_currentFeatureText "${_currentFeatureText}\n   * ${_purpose}")
-      ENDFOREACH()
+      # check whether the current feature/package should be in the output 
depending on whether it was QUIET or not
+      SET(includeThisOne TRUE)
+      IF(NOT _includeQuiet)
+        GET_PROPERTY(_isQuiet  GLOBAL PROPERTY _CMAKE_${_currentFeature}_QUIET)
+        IF(_isQuiet)
+          SET(includeThisOne FALSE)
+        ENDIF()
+      ENDIF()
+
+      IF(includeThisOne)
+
+        SET(_currentFeatureText "${_currentFeatureText}\n${_currentFeature}")
+        GET_PROPERTY(_info  GLOBAL PROPERTY 
_CMAKE_${_currentFeature}_REQUIRED_VERSION)
+        IF(_info)
+          SET(_currentFeatureText "${_currentFeatureText} (required version 
${_info})")
+        ENDIF(_info)
+        GET_PROPERTY(_info  GLOBAL PROPERTY 
_CMAKE_${_currentFeature}_DESCRIPTION)
+        IF(_info)
+          SET(_currentFeatureText "${_currentFeatureText} , ${_info}")
+        ENDIF(_info)
+        GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_URL)
+        IF(_info)
+          SET(_currentFeatureText "${_currentFeatureText} , <${_info}>")
+        ENDIF(_info)
+
+        GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_PURPOSE)
+        FOREACH(_purpose ${_info})
+          SET(_currentFeatureText "${_currentFeatureText}\n   * ${_purpose}")
+        ENDFOREACH()
+
+      ENDIF(includeThisOne)
 
     ENDIF("${_type}" STREQUAL ANY  OR  "${_type}" STREQUAL "${_currentType}")
 
@@ -278,7 +290,7 @@ ENDFUNCTION(PRINT_DISABLED_FEATURES)
 
 FUNCTION(FEATURE_SUMMARY)
 # CMAKE_PARSE_ARGUMENTS(<prefix> <options> <one_value_keywords> 
<multi_value_keywords> args...)
-  SET(options APPEND)
+  SET(options APPEND INCLUDE_QUIET_PACKAGES )
   SET(oneValueArgs FILENAME VAR DESCRIPTION WHAT)
   SET(multiValueArgs ) # none
 
@@ -307,7 +319,7 @@ FUNCTION(FEATURE_SUMMARY)
 
   LIST(FIND validWhatParts "${_FS_WHAT}" indexInList)
   IF(NOT "${indexInList}" STREQUAL "-1")
-    _FS_GET_FEATURE_SUMMARY( ${_FS_WHAT} _featureSummary)
+    _FS_GET_FEATURE_SUMMARY( ${_FS_WHAT} _featureSummary 
${_FS_INCLUDE_QUIET_PACKAGES} )
     SET(_fullText "${_FS_DESCRIPTION}${_featureSummary}\n")
   ELSEIF("${_FS_WHAT}" STREQUAL "ALL")
 
@@ -338,7 +350,7 @@ FUNCTION(FEATURE_SUMMARY)
     SET(_fullText "${_FS_DESCRIPTION}\n")
     FOREACH(part ${allWhatParts})
       SET(_tmp)
-      _FS_GET_FEATURE_SUMMARY( ${part} _tmp)
+      _FS_GET_FEATURE_SUMMARY( ${part} _tmp ${_FS_INCLUDE_QUIET_PACKAGES})
       IF(_tmp)
         SET(_fullText "${_fullText}\n${title_${part}}\n${_tmp}")
       ENDIF()
diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx
index 5f106bc..5641abc 100644
--- a/Source/cmFindPackageCommand.cxx
+++ b/Source/cmFindPackageCommand.cxx
@@ -1174,20 +1174,20 @@ void cmFindPackageCommand::AppendSuccessInformation()
   if ((cmSystemTools::IsOn(result)) || (cmSystemTools::IsOn(upperResult)))
     {
     this->AppendToProperty("PACKAGES_FOUND");
-    if (!this->Quiet)
-      {
-      this->AppendToProperty("ENABLED_FEATURES");
-      }
     }
   else
     {
     this->AppendToProperty("PACKAGES_NOT_FOUND");
-    if (!this->Quiet)
-      {
-      this->AppendToProperty("DISABLED_FEATURES");
-      }
     }
 
+  // Record whether the find was quiet or not, so this can be used
+  // e.g. in FeatureSummary.cmake
+  std::string quietInfoPropName = "_CMAKE_";
+  quietInfoPropName += this->Name;
+  quietInfoPropName += "_QUIET";
+  this->Makefile->GetCMakeInstance()->SetProperty(quietInfoPropName.c_str(),
+                                               this->Quiet ? "TRUE" : "FALSE");
+
   // set a global property to record the required version of this package
   std::string versionInfoPropName = "_CMAKE_";
   versionInfoPropName += this->Name;

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0671a029205763845e5fd21ce5f69fbe8b0b2c45
commit 0671a029205763845e5fd21ce5f69fbe8b0b2c45
Author:     Alex Neundorf <neund...@kde.org>
AuthorDate: Sun Jul 17 16:03:38 2011 +0200
Commit:     Alex Neundorf <neund...@kde.org>
CommitDate: Sun Jul 17 16:03:38 2011 +0200

    FeatureSummary.cmake: remove "comment" field
    
    What was given as comment to set_package_info(), now goes into
    the PURPOSE field. It was not clear what the comment should contain,
    with the PURPOSE this is much clearer now.
    
    Alex

diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake
index 91f4ecb..a461012 100644
--- a/Modules/FeatureSummary.cmake
+++ b/Modules/FeatureSummary.cmake
@@ -60,7 +60,7 @@
 #   message(STATUS "${enabledFeaturesText}")
 #
 #
-#    SET_PACKAGE_INFO(<name> <description> [<url> [<comment>] ] )
+#    SET_PACKAGE_INFO(<name> <description> [<url> [<purpose>] ] )
 # Use this macro to set up information about the named package, which can
 # then be displayed via FEATURE_SUMMARY().
 # This can be done either directly in the Find-module or in the project
@@ -99,8 +99,8 @@
 #    PRINT_DISABLED_FEATURES()
 # Does the same as FEATURE_SUMMARY(WHAT DISABLED_FEATURES  DESCRIPTION 
"Disabled features:")
 #
-#    SET_FEATURE_INFO(<name> <description> [<url> [<comment>] ] )
-# Does the same as SET_PACKAGE_INFO(<name> <description> <url> <comment> )
+#    SET_FEATURE_INFO(<name> <description> [<url>] )
+# Does the same as SET_PACKAGE_INFO(<name> <description> <url> )
 
 #=============================================================================
 # Copyright 2007-2009 Kitware, Inc.
@@ -136,14 +136,14 @@ ENDFUNCTION(SET_FEATURE_INFO)
 
 FUNCTION(SET_PACKAGE_INFO _name _desc)
   SET(_url "${ARGV2}")
-  SET(_comment "${ARGV3}")
+  SET(_purpose "${ARGV3}")
   SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_DESCRIPTION "${_desc}" )
   IF(_url MATCHES ".+")
     SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_URL "${_url}" )
-  ENDIF(_url MATCHES ".+")
-  IF(_comment MATCHES ".+")
-    SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_COMMENT "${_comment}" )
-  ENDIF(_comment MATCHES ".+")
+  ENDIF()
+  IF(_purpose MATCHES ".+")
+    SET_PROPERTY(GLOBAL APPEND PROPERTY _CMAKE_${_name}_PURPOSE "${_purpose}" )
+  ENDIF()
 ENDFUNCTION(SET_PACKAGE_INFO)
 
 
@@ -252,10 +252,6 @@ FUNCTION(_FS_GET_FEATURE_SUMMARY _property _var)
       IF(_info)
         SET(_currentFeatureText "${_currentFeatureText} , <${_info}>")
       ENDIF(_info)
-      GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_COMMENT)
-      IF(_info)
-        SET(_currentFeatureText "${_currentFeatureText} , ${_info}")
-      ENDIF(_info)
 
       GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_PURPOSE)
       FOREACH(_purpose ${_info})

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aae13f4c8ea652f437b096b9017bd76ed62fd44d
commit aae13f4c8ea652f437b096b9017bd76ed62fd44d
Author:     Alex Neundorf <neund...@kde.org>
AuthorDate: Sun Jul 17 15:57:50 2011 +0200
Commit:     Alex Neundorf <neund...@kde.org>
CommitDate: Sun Jul 17 15:57:50 2011 +0200

    Extend FeatureSummary: add PURPOSE of package and TYPE
    
    With the PURPOSE a project can state what the package in question
    is used for in the project (as opposed to describing what the package
    does in general).
    TYPE can be one of OPTIONAL (default)
                       RUNTIME - not needed for building, only at runtime
                       RECOMMENDED - as OPTIONAL, but you should really have it
                       REQUIRED - cmake will fail if one of these is not found
    
    This can be set using the new function set_package_properties()
    
    Alex

diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake
index f7bfe27..91f4ecb 100644
--- a/Modules/FeatureSummary.cmake
+++ b/Modules/FeatureSummary.cmake
@@ -72,6 +72,12 @@
 #   find_package(LibXml2)
 #   set_package_info(LibXml2 "XML processing library." "http://xmlsoft.org/";)
 #
+#    SET_PACKAGE_PROPERTIES(<name> PROPERTIES <description> [<url> [<purpose>  
[<type>] ] ] )
+#
+# URL: homepage of the package
+# DESCRIPTION: short description of the package itself
+# PURPOSE: what is the purpopse of using the package in the current project, 
always appended
+# TYPE: OPTIONAL (default), RECOMMENDED, REQUIRED, RUNTIME
 #
 #    ADD_FEATURE_INFO(<name> <enabled> <description>)
 # Use this macro to add information about a feature with the given <name>.
@@ -141,27 +147,123 @@ FUNCTION(SET_PACKAGE_INFO _name _desc)
 ENDFUNCTION(SET_PACKAGE_INFO)
 
 
+
+FUNCTION(SET_PACKAGE_PROPERTIES _name _props)
+  IF(NOT "${_props}" STREQUAL "PROPERTIES")
+    MESSAGE(FATAL_ERROR "PROPERTIES keyword is missing in 
SET_PACKAGE_PROPERTIES() call.")
+  ENDIF()
+
+  SET(options ) # none
+  SET(oneValueArgs DESCRIPTION URL TYPE PURPOSE )
+  SET(multiValueArgs ) # none
+
+  CMAKE_PARSE_ARGUMENTS(_SPP "${options}" "${oneValueArgs}" 
"${multiValueArgs}"  ${ARGN})
+
+  IF(_SPP_UNPARSED_ARGUMENTS)
+    MESSAGE(FATAL_ERROR "Unknown keywords given to SET_PACKAGE_PROPERTIES(): 
\"${_SPP_UNPARSED_ARGUMENTS}\"")
+  ENDIF()
+
+  IF(_SPP_DESCRIPTION)
+    GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_name}_DESCRIPTION)
+    IF(_info)
+      MESSAGE(STATUS "Warning: Property DESCRIPTION for package ${_name} 
already set to \"${_info}\", overriding it with \"${_SPP_DESCRIPTION}\"")
+    ENDIF()
+
+    SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_DESCRIPTION 
"${_SPP_DESCRIPTION}" )
+  ENDIF()
+
+
+  IF(_SPP_URL)
+    GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_name}_URL)
+    IF(_info)
+      MESSAGE(STATUS "Warning: Property URL already set to \"${_info}\", 
overriding it with \"${_SPP_URL}\"")
+    ENDIF()
+
+    SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_URL "${_SPP_URL}" )
+  ENDIF()
+
+
+  # handle the PURPOSE: use APPEND, since there can be multiple purposes for 
one package inside a project
+  IF(_SPP_PURPOSE)
+    SET_PROPERTY(GLOBAL APPEND PROPERTY _CMAKE_${_name}_PURPOSE 
"${_SPP_PURPOSE}" )
+  ENDIF()
+
+  # handle the TYPE
+  IF(NOT _SPP_TYPE)
+    SET(_SPP_TYPE OPTIONAL)
+  ENDIF()
+
+  SET(validTypes OPTIONAL RECOMMENDED REQUIRED RUNTIME )
+  LIST(FIND validTypes ${_SPP_TYPE} _typeIndexInList)
+  IF("${_typeIndexInList}" STREQUAL "-1" )
+    MESSAGE(FATAL_ERROR "Bad package property type ${_SPP_TYPE} used in 
SET_PACKAGE_PROPERTIES(). "
+                        "Valid types are OPTIONAL, RECOMMENDED, REQUIRED and 
RUNTIME." )
+  ENDIF()
+
+  SET_PROPERTY(GLOBAL PROPERTY _CMAKE_${_name}_TYPE "${_SPP_TYPE}" )
+
+ENDFUNCTION(SET_PACKAGE_PROPERTIES)
+
+
+
 FUNCTION(_FS_GET_FEATURE_SUMMARY _property _var)
+
+  SET(_type "ANY")
+  IF("${_property}" MATCHES "REQUIRED_")
+    SET(_type "REQUIRED")
+  ELSEIF("${_property}" MATCHES "RECOMMENDED_")
+    SET(_type "RECOMMENDED")
+  ELSEIF("${_property}" MATCHES "RUNTIME_")
+    SET(_type "RUNTIME")
+  ELSEIF("${_property}" MATCHES "OPTIONAL_")
+    SET(_type "OPTIONAL")
+  ENDIF()
+
+  IF("${_property}" MATCHES "PACKAGES_FOUND")
+    SET(_property "PACKAGES_FOUND")
+  ELSEIF("${_property}" MATCHES "PACKAGES_NOT_FOUND")
+    SET(_property "PACKAGES_NOT_FOUND")
+  ENDIF()
+
+
   SET(_currentFeatureText "")
   GET_PROPERTY(_EnabledFeatures  GLOBAL PROPERTY ${_property})
+
   FOREACH(_currentFeature ${_EnabledFeatures})
-    SET(_currentFeatureText "${_currentFeatureText}\n${_currentFeature}")
-    GET_PROPERTY(_info  GLOBAL PROPERTY 
_CMAKE_${_currentFeature}_REQUIRED_VERSION)
-    IF(_info)
-      SET(_currentFeatureText "${_currentFeatureText} (required version 
${_info})")
-    ENDIF(_info)
-    GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_DESCRIPTION)
-    IF(_info)
-      SET(_currentFeatureText "${_currentFeatureText} , ${_info}")
-    ENDIF(_info)
-    GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_URL)
-    IF(_info)
-      SET(_currentFeatureText "${_currentFeatureText} , <${_info}>")
-    ENDIF(_info)
-    GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_COMMENT)
-    IF(_info)
-      SET(_currentFeatureText "${_currentFeatureText} , ${_info}")
-    ENDIF(_info)
+
+    # does this package belong to the type we currently want to list ?
+    GET_PROPERTY(_currentType  GLOBAL PROPERTY _CMAKE_${_currentFeature}_TYPE)
+    IF(NOT _currentType)
+      SET(_currentType OPTIONAL)
+    ENDIF()
+
+    IF("${_type}" STREQUAL ANY  OR  "${_type}" STREQUAL "${_currentType}")
+
+      SET(_currentFeatureText "${_currentFeatureText}\n${_currentFeature}")
+      GET_PROPERTY(_info  GLOBAL PROPERTY 
_CMAKE_${_currentFeature}_REQUIRED_VERSION)
+      IF(_info)
+        SET(_currentFeatureText "${_currentFeatureText} (required version 
${_info})")
+      ENDIF(_info)
+      GET_PROPERTY(_info  GLOBAL PROPERTY 
_CMAKE_${_currentFeature}_DESCRIPTION)
+      IF(_info)
+        SET(_currentFeatureText "${_currentFeatureText} , ${_info}")
+      ENDIF(_info)
+      GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_URL)
+      IF(_info)
+        SET(_currentFeatureText "${_currentFeatureText} , <${_info}>")
+      ENDIF(_info)
+      GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_COMMENT)
+      IF(_info)
+        SET(_currentFeatureText "${_currentFeatureText} , ${_info}")
+      ENDIF(_info)
+
+      GET_PROPERTY(_info  GLOBAL PROPERTY _CMAKE_${_currentFeature}_PURPOSE)
+      FOREACH(_purpose ${_info})
+        SET(_currentFeatureText "${_currentFeatureText}\n   * ${_purpose}")
+      ENDFOREACH()
+
+    ENDIF("${_type}" STREQUAL ANY  OR  "${_type}" STREQUAL "${_currentType}")
+
   ENDFOREACH(_currentFeature)
   SET(${_var} "${_currentFeatureText}" PARENT_SCOPE)
 ENDFUNCTION(_FS_GET_FEATURE_SUMMARY)
@@ -194,21 +296,57 @@ FUNCTION(FEATURE_SUMMARY)
     MESSAGE(FATAL_ERROR "The call to FEATURE_SUMMAY() doesn't set the required 
WHAT argument.")
   ENDIF(NOT _FS_WHAT)
 
-  IF(   "${_FS_WHAT}" STREQUAL "ENABLED_FEATURES"
-     OR "${_FS_WHAT}" STREQUAL "DISABLED_FEATURES"
-     OR "${_FS_WHAT}" STREQUAL "PACKAGES_FOUND"
-     OR "${_FS_WHAT}" STREQUAL "PACKAGES_NOT_FOUND")
+  SET(validWhatParts "ENABLED_FEATURES"
+                     "DISABLED_FEATURES"
+                     "PACKAGES_FOUND"
+                     "PACKAGES_NOT_FOUND"
+                     "OPTIONAL_PACKAGES_FOUND"
+                     "OPTIONAL_PACKAGES_NOT_FOUND"
+                     "RECOMMENDED_PACKAGES_FOUND"
+                     "RECOMMENDED_PACKAGES_NOT_FOUND"
+                     "REQUIRED_PACKAGES_FOUND"
+                     "REQUIRED_PACKAGES_NOT_FOUND"
+                     "RUNTIME_PACKAGES_FOUND"
+                     "RUNTIME_PACKAGES_NOT_FOUND")
+
+  LIST(FIND validWhatParts "${_FS_WHAT}" indexInList)
+  IF(NOT "${indexInList}" STREQUAL "-1")
     _FS_GET_FEATURE_SUMMARY( ${_FS_WHAT} _featureSummary)
     SET(_fullText "${_FS_DESCRIPTION}${_featureSummary}\n")
   ELSEIF("${_FS_WHAT}" STREQUAL "ALL")
-    _FS_GET_FEATURE_SUMMARY( PACKAGES_FOUND _tmp1)
-    _FS_GET_FEATURE_SUMMARY( PACKAGES_NOT_FOUND _tmp2)
-    SET(_featureSummary "${_tmp1}${_tmp2}")
-    IF(_FS_DESCRIPTION)
-      SET(_fullText "${_FS_DESCRIPTION}${_tmp1}${_tmp2}\n")
-    ELSE(_FS_DESCRIPTION)
-      SET(_fullText "-- Found the following packages:${_tmp1}\n-- Did not find 
the following packages:${_tmp2}\n")
-    ENDIF(_FS_DESCRIPTION)
+
+    SET(allWhatParts "ENABLED_FEATURES"
+                     "RUNTIME_PACKAGES_FOUND"
+                     "OPTIONAL_PACKAGES_FOUND"
+                     "RECOMMENDED_PACKAGES_FOUND"
+                     "REQUIRED_PACKAGES_FOUND"
+
+                     "DISABLED_FEATURES"
+                     "RUNTIME_PACKAGES_NOT_FOUND"
+                     "OPTIONAL_PACKAGES_NOT_FOUND"
+                     "RECOMMENDED_PACKAGES_NOT_FOUND"
+                     "REQUIRED_PACKAGES_NOT_FOUND"
+       )
+
+    SET(title_ENABLED_FEATURES               "The following features have been 
enabled:")
+    SET(title_DISABLED_FEATURES              "The following features have been 
disabled:")
+    SET(title_OPTIONAL_PACKAGES_FOUND        "The following OPTIONAL packages 
have been found:")
+    SET(title_OPTIONAL_PACKAGES_NOT_FOUND    "The following OPTIONAL packages 
have not been found:")
+    SET(title_RECOMMENDED_PACKAGES_FOUND     "The following RECOMMENDED 
packages have been found:")
+    SET(title_RECOMMENDED_PACKAGES_NOT_FOUND "The following RECOMMENDED 
packages have not been found:")
+    SET(title_REQUIRED_PACKAGES_FOUND        "The following REQUIRED packages 
have been found:")
+    SET(title_REQUIRED_PACKAGES_NOT_FOUND    "The following REQUIRED packages 
have not been found:")
+    SET(title_RUNTIME_PACKAGES_FOUND         "The following RUNTIME packages 
have been found:")
+    SET(title_RUNTIME_PACKAGES_NOT_FOUND     "The following RUNTIME packages 
have not been found:")
+
+    SET(_fullText "${_FS_DESCRIPTION}\n")
+    FOREACH(part ${allWhatParts})
+      SET(_tmp)
+      _FS_GET_FEATURE_SUMMARY( ${part} _tmp)
+      IF(_tmp)
+        SET(_fullText "${_fullText}\n${title_${part}}\n${_tmp}")
+      ENDIF()
+    ENDFOREACH()
   ELSE()
     MESSAGE(FATAL_ERROR "The WHAT argument of FEATURE_SUMMARY() is set to 
${_FS_WHAT}, which is not a valid value.")
   ENDIF()

-----------------------------------------------------------------------

Summary of changes:
 Modules/FeatureSummary.cmake    |  391 +++++++++++++++++++++++++++++++--------
 Source/cmFindPackageCommand.cxx |   16 +-
 2 files changed, 320 insertions(+), 87 deletions(-)


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits

Reply via email to