$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: dgregor_at_[hidden]
Date: 2008-05-23 08:49:33
Author: dgregor
Date: 2008-05-23 08:49:33 EDT (Fri, 23 May 2008)
New Revision: 45674
URL: http://svn.boost.org/trac/boost/changeset/45674
Log:
Improve grouping, display names, and descriptions for Windows component-based installation.
Text files modified: 
   branches/CMake/release/CMakeLists.txt                    |     2                                         
   branches/CMake/release/tools/build/CMake/BoostCore.cmake |   139 ++++++++++++++++++++++----------------- 
   2 files changed, 79 insertions(+), 62 deletions(-)
Modified: branches/CMake/release/CMakeLists.txt
==============================================================================
--- branches/CMake/release/CMakeLists.txt	(original)
+++ branches/CMake/release/CMakeLists.txt	2008-05-23 08:49:33 EDT (Fri, 23 May 2008)
@@ -73,7 +73,7 @@
 boost_add_default_variant(RELEASE DEBUG)
 boost_add_default_variant(STATIC SHARED)
 if(MSVC)
-  boost_add_default_variant(MULTI_THREADED SINGLE_THREADED)
+  boost_add_default_variant(MULTI_THREADED)
 else(MSVC)
   boost_add_default_variant(SINGLE_THREADED MULTI_THREADED)
 endif(MSVC)
Modified: branches/CMake/release/tools/build/CMake/BoostCore.cmake
==============================================================================
--- branches/CMake/release/tools/build/CMake/BoostCore.cmake	(original)
+++ branches/CMake/release/tools/build/CMake/BoostCore.cmake	2008-05-23 08:49:33 EDT (Fri, 23 May 2008)
@@ -124,18 +124,15 @@
       set_property(GLOBAL APPEND 
         PROPERTY CPACK_COMPONENT_GROUPS_ALL 
         ${ULIBNAME})
-      set_property(GLOBAL
-        PROPERTY CPACK_COMPONENT_GROUP_${ULIBNAME}_DISPLAY_NAME 
+      boost_set_cpack_variable(
+        CPACK_COMPONENT_GROUP_${ULIBNAME}_DISPLAY_NAME 
         ${LIBNAME})
-      set_property(GLOBAL APPEND
-        PROPERTY BOOST_CPACK_EXPORTS 
-        CPACK_COMPONENT_GROUP_${ULIBNAME}_DISPLAY_NAME)
         
       if (THIS_PROJECT_DESCRIPTION)
         set(THIS_PROJECT_DESCRIPTION "Boost.${LIBNAME}\n\n${THIS_PROJECT_DESCRIPTION}")
         
         if (THIS_PROJECT_AUTHORS)
-          list(LENGTH ${THIS_PROJECT_AUTHORS} THIS_PROJECT_NUM_AUTHORS)
+          list(LENGTH THIS_PROJECT_AUTHORS THIS_PROJECT_NUM_AUTHORS)
           if (THIS_PROJECT_NUM_AUTHORS EQUAL 1)
             set(THIS_PROJECT_DESCRIPTION "${THIS_PROJECT_DESCRIPTION}\n\nAuthor: ")
           else()
@@ -154,7 +151,7 @@
         endif (THIS_PROJECT_AUTHORS)
 
         if (THIS_PROJECT_MAINTAINERS)
-          list(LENGTH ${THIS_PROJECT_MAINTAINERS} THIS_PROJECT_NUM_MAINTAINERS)
+          list(LENGTH THIS_PROJECT_MAINTAINERS THIS_PROJECT_NUM_MAINTAINERS)
           if (THIS_PROJECT_NUM_MAINTAINERS EQUAL 1)
             set(THIS_PROJECT_DESCRIPTION "${THIS_PROJECT_DESCRIPTION}\nMaintainer: ")
           else()
@@ -200,16 +197,12 @@
       set_property(GLOBAL APPEND 
         PROPERTY CPACK_COMPONENTS_ALL 
         ${ULIBNAME}_HEADERS)
-      set_property(GLOBAL 
-        PROPERTY CPACK_COMPONENT_${ULIBNAME}_HEADERS_DISPLAY_NAME 
+      boost_set_cpack_variable(
+        CPACK_COMPONENT_${ULIBNAME}_HEADERS_DISPLAY_NAME 
         "Header files")
-      set_property(GLOBAL
-        PROPERTY CPACK_COMPONENT_${ULIBNAME}_HEADERS_GROUP 
+      boost_set_cpack_variable(
+        CPACK_COMPONENT_${ULIBNAME}_HEADERS_GROUP 
         ${ULIBNAME})
-      set_property(GLOBAL APPEND
-        PROPERTY BOOST_CPACK_EXPORTS
-	CPACK_COMPONENT_${ULIBNAME}_HEADERS_DISPLAY_NAME
-	CPACK_COMPONENT_${ULIBNAME}_HEADERS_GROUP)
     endif (THIS_PROJECT_MODULAR)
 
         if(THIS_PROJECT_SRCDIRS)
@@ -217,25 +210,18 @@
           set_property(GLOBAL APPEND
                 PROPERTY CPACK_COMPONENTS_ALL 
                 ${ULIBNAME}_SOURCES)
-	  set_property(GLOBAL
-	    PROPERTY CPACK_COMPONENT_${ULIBNAME}_SOURCES_DISPLAY_NAME
+	  boost_set_cpack_variable(
+	    CPACK_COMPONENT_${ULIBNAME}_SOURCES_DISPLAY_NAME
             "Source files")
-	  set_property(GLOBAL 
-	    PROPERTY CPACK_COMPONENT_${ULIBNAME}_SOURCES_GROUP 
+	  boost_set_cpack_variable(
+	    CPACK_COMPONENT_${ULIBNAME}_SOURCES_GROUP 
             ${ULIBNAME})
-      set_property(GLOBAL APPEND
-        PROPERTY BOOST_CPACK_EXPORTS 
-		CPACK_COMPONENT_${ULIBNAME}_SOURCES_DISPLAY_NAME
-		CPACK_COMPONENT_${ULIBNAME}_SOURCES_GROUP)	 
 
       # If this is a modular library, the sources depend on the headers
       if (THIS_PROJECT_MODULAR)
-        set_property(GLOBAL
-		  PROPERTY CPACK_COMPONENT_${ULIBNAME}_SOURCES_DEPENDS 
-		  ${ULIBNAME}_HEADERS)
-        set_property(GLOBAL APPEND
-          PROPERTY BOOST_CPACK_EXPORTS
-          CPACK_COMPONENT_${ULIBNAME}_SOURCES_DEPENDS) 
+        boost_set_cpack_variable(
+		  CPACK_COMPONENT_${ULIBNAME}_SOURCES_DEPENDS 
+		  ${ULIBNAME}_HEADERS) 
       endif ()
                 
           # Add all of the source files as an installation target  
@@ -605,39 +591,65 @@
     endforeach(dependency)
 
     # Setup installation properties
-    string(TOUPPER ${VARIANT_LIBNAME} UVARIANT_LIBNAME)
-    string(REPLACE "-" "_" UVARIANT_LIBNAME ${UVARIANT_LIBNAME})
-    set_property(GLOBAL APPEND 
-      PROPERTY CPACK_COMPONENTS_ALL 
-      ${UVARIANT_LIBNAME})
-    set_property(GLOBAL 
-      PROPERTY CPACK_COMPONENT_${UVARIANT_LIBNAME}_DISPLAY_NAME
-      "${VARIANT_DISPLAY_NAME} library")
-    set_property(GLOBAL
-      PROPERTY CPACK_COMPONENT_${UVARIANT_LIBNAME}_GROUP 
-      ${ULIBNAME})
-    set_property(GLOBAL APPEND PROPERTY BOOST_CPACK_EXPORTS 
-      CPACK_COMPONENT_${UVARIANT_LIBNAME}_DISPLAY_NAME
-      CPACK_COMPONENT_${UVARIANT_LIBNAME}_GROUP)
-
+    string(TOUPPER "${PROJECT_NAME}${VARIANT_TARGET_NAME}" LIB_COMPONENT)
+    string(REPLACE "-" "_" LIB_COMPONENT ${LIB_COMPONENT})
+    get_property(LIB_COMPONENT_EXISTS
+      GLOBAL PROPERTY CPACK_COMPONENT_${LIB_COMPONENT}_DISPLAY_NAME SET)
+    if (LIB_COMPONENT_EXISTS)
+      # There is more than one library binary associated with this
+      # installation component (e.g., both boost_serialization and 
+      # boost_wserialization library binaries), so update the
+      # display name of the installation component to the plural
+      # "libraries".
+      set_property(GLOBAL
+        PROPERTY CPACK_COMPONENT_${LIB_COMPONENT}_DISPLAY_NAME
+        "${VARIANT_DISPLAY_NAME} libraries")
+    else()
+      set_property(GLOBAL APPEND 
+        PROPERTY CPACK_COMPONENTS_ALL 
+        ${LIB_COMPONENT})
+      boost_set_cpack_variable(
+        CPACK_COMPONENT_${LIB_COMPONENT}_DISPLAY_NAME
+        "${VARIANT_DISPLAY_NAME} library")
+      boost_set_cpack_variable(
+        CPACK_COMPONENT_${LIB_COMPONENT}_GROUP 
+        ${ULIBNAME})
+    endif()
+    
     # Installation of this library variant
     string(TOUPPER ${PROJECT_NAME} ULIBNAME)
     install(TARGETS ${VARIANT_LIBNAME} DESTINATION lib
       EXPORT boost-targets
-      COMPONENT ${UVARIANT_LIBNAME})
+      COMPONENT ${LIB_COMPONENT})
+    set_property( 
+      TARGET ${VARIANT_LIBNAME}
+      PROPERTY BOOST_CPACK_COMPONENT
+      ${LIB_COMPONENT})
       
     # Make the library installation component dependent on the library
     # installation components of dependent libraries.
     foreach(DEP ${THIS_LIB_DEPENDS})
-      string(TOUPPER "${DEP}${VARIANT_TARGET_NAME}" UDEP)
-      string(REPLACE "-" "_" UDEP ${UDEP})
-      set_property(GLOBAL APPEND
-        PROPERTY CPACK_COMPONENT_${UVARIANT_LIBNAME}_DEPENDS ${UDEP})
+      # We ask the library variant that this library depends on to tell us
+      # what it's associated installation component is. We depend on that 
+      # installation component.
+      get_property(DEP_COMPONENT 
+        TARGET "${DEP}${VARIANT_TARGET_NAME}"
+        PROPERTY BOOST_CPACK_COMPONENT)
+        
+      if (DEP_COMPONENT)
+        if (DEP_COMPONENT STREQUAL LIB_COMPONENT)
+          # Do nothing: we have library dependencies within one 
+          # Boost library
+        else()
+          set_property(GLOBAL APPEND
+          PROPERTY CPACK_COMPONENT_${LIB_COMPONENT}_DEPENDS ${DEP_COMPONENT})
+        endif()
+      endif()
     endforeach(DEP)
     if (THIS_LIB_DEPENDS)
       set_property(GLOBAL APPEND
         PROPERTY BOOST_CPACK_EXPORTS
-        CPACK_COMPONENT_${UVARIANT_LIBNAME}_DEPENDS)
+        CPACK_COMPONENT_${LIB_COMPONENT}_DEPENDS)
     endif ()
   endif (THIS_VARIANT_OKAY)
 endmacro(boost_library_variant)
@@ -1246,7 +1258,7 @@
   endif (THIS_EXE_OKAY)
 endmacro(boost_add_executable)
 
-# Sets the CPack variant named PROP to the given values, and ensures
+# Sets the CPack variable named PROP to the given values, and ensures
 # that CPack will see the variable.
 #
 #   boost_set_cpack_variable(PROP
@@ -1258,16 +1270,21 @@
 #   boost_set_cpack_variable(CPACK_COMPONENT_GRAPH_HEADERS_DISPLAY_NAME 
 #     "Graph headers")
 macro(boost_set_cpack_variable PROP)
+  get_property(BOOST_CPACK_VAR_HAS_VALUE
+    GLOBAL PROPERTY ${PROP} SET)
+
+  if (NOT BOOST_CPACK_VAR_HAS_VALUE)
   set(BOOST_CPACK_VAR_HAS_ARGS FALSE)
-  foreach (ARG ${ARGN})
-    set_property(GLOBAL APPEND
-      PROPERTY ${PROP}
-      ${ARG})
-    set(BOOST_CPACK_VAR_HAS_ARGS TRUE)
-  endforeach(ARG)
-  if (BOOST_CPACK_VAR_HAS_ARGS)
-    set_property(GLOBAL APPEND
-      PROPERTY BOOST_CPACK_EXPORTS
-      ${PROP})
+    foreach (ARG ${ARGN})
+      set_property(GLOBAL APPEND
+        PROPERTY ${PROP}
+        ${ARG})
+      set(BOOST_CPACK_VAR_HAS_ARGS TRUE)
+    endforeach(ARG)
+    if (BOOST_CPACK_VAR_HAS_ARGS)
+      set_property(GLOBAL APPEND
+        PROPERTY BOOST_CPACK_EXPORTS
+        ${PROP})
+    endif ()
   endif ()
 endmacro(boost_set_cpack_variable)