[Cmake-commits] [cmake-commits] hoffman committed CPack.Info.plist.in 1.5.2.1 1.5.2.2 CPack.cmake 1.35.2.3 1.35.2.4 FindBoost.cmake 1.4.2.3 1.4.2.4 FindQt4.cmake 1.96.2.12 1.96.2.13 FindwxWidgets.cmake 1.18.2.2 1.18.2.3 NSIS.template.in 1.25.2.2 1.25.2.3

cmake-commits at cmake.org cmake-commits at cmake.org
Sun Jul 13 17:55:27 EDT 2008


Update of /cvsroot/CMake/CMake/Modules
In directory public:/mounts/ram/cvs-serv32502/Modules

Modified Files:
      Tag: CMake-2-6
	CPack.Info.plist.in CPack.cmake FindBoost.cmake FindQt4.cmake 
	FindwxWidgets.cmake NSIS.template.in 
Log Message:
ENH: Merge from head create RC7


Index: NSIS.template.in
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/NSIS.template.in,v
retrieving revision 1.25.2.2
retrieving revision 1.25.2.3
diff -C 2 -d -r1.25.2.2 -r1.25.2.3
*** NSIS.template.in	25 Jun 2008 13:51:32 -0000	1.25.2.2
--- NSIS.template.in	13 Jul 2008 21:55:23 -0000	1.25.2.3
***************
*** 38,41 ****
--- 38,43 ----
    SetCompressor @CPACK_NSIS_COMPRESSOR@
     
+ @CPACK_NSIS_DEFINES@   
+    
    !include Sections.nsh
    
***************
*** 61,64 ****
--- 63,71 ----
  !macroend
  
+ ; Sets the value of a variable
+ !macro StoreVar VarName IntValue
+   IntOp $${VarName} 0 + ${IntValue}
+ !macroend
+ 
  !macro InitSection SecName
    ;  This macro reads component installed flag from the registry and
***************
*** 77,83 ****
    IntOp $AR_SecFlags $AR_RegFlags | $AR_SecFlags      ;Change lowest bit
  
    ;Writing modified flags
    SectionSetFlags ${${SecName}} $AR_SecFlags
!  
   "default_${SecName}:"
   !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected
--- 84,94 ----
    IntOp $AR_SecFlags $AR_RegFlags | $AR_SecFlags      ;Change lowest bit
  
+   ; Note whether this component was installed before
+   !insertmacro StoreVar ${SecName}_was_installed $AR_RegFlags
+   IntOp $R0 $AR_RegFlags & $AR_RegFlags
+   
    ;Writing modified flags
    SectionSetFlags ${${SecName}} $AR_SecFlags
!   
   "default_${SecName}:"
   !insertmacro LoadSectionSelectedIntoVar ${SecName} ${SecName}_selected
***************
*** 462,465 ****
--- 473,503 ----
  
  ;--------------------------------
+ 
+ !ifdef CPACK_USES_DOWNLOAD
+ Function DownloadFile
+     IfFileExists $INSTDIR\* +2
+     CreateDirectory $INSTDIR
+     Pop $0
+ 
+     ; Skip if already downloaded
+     IfFileExists $INSTDIR\$0 0 +2
+     Return
+ 
+     StrCpy $1 "@CPACK_DOWNLOAD_SITE@"
+ 
+   try_again:
+     NSISdl::download "$1/$0" "$INSTDIR\$0"
+     
+     Pop $1
+     StrCmp $1 "success" success
+     StrCmp $1 "Cancelled" cancel
+     MessageBox MB_OK "Download failed: $1"
+   cancel:
+     Return
+   success:
+ FunctionEnd
+ !endif
+ 
+ ;--------------------------------
  ; Installation types
  @CPACK_NSIS_INSTALLATION_TYPES@
***************
*** 520,524 ****
    SetOutPath "$INSTDIR"
    @CPACK_NSIS_FULL_INSTALL@
! 
    ;Store installation folder
    WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR
--- 558,562 ----
    SetOutPath "$INSTDIR"
    @CPACK_NSIS_FULL_INSTALL@
!   
    ;Store installation folder
    WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR
***************
*** 538,542 ****
--- 576,593 ----
    Push "$INSTDIR\Uninstall.exe"
    Call ConditionalAddToRegisty
+   Push "NoRepair"
+   Push "1"
+   Call ConditionalAddToRegisty
+   
+   !ifdef CPACK_NSIS_ADD_REMOVE
+   ;Create add/remove functionality
    Push "ModifyPath"
+   Push "$INSTDIR\AddRemove.exe"
+   Call ConditionalAddToRegisty
+   !else
+   Push "NoModify"
+   Push "1"
+   Call ConditionalAddToRegisty
+   !endif
    
    ; Optional registration
***************
*** 641,644 ****
--- 692,712 ----
    ;Removes unselected components and writes component status to registry
    !insertmacro SectionList "FinishSection"
+   
+ !ifdef CPACK_NSIS_ADD_REMOVE  
+   ; Get the name of the installer executable
+   System::Call 'kernel32::GetModuleFileNameA(i 0, t .R0, i 1024) i r1'
+   StrCpy $R3 $R0
+   
+   ; Strip off the last 13 characters, to see if we have AddRemove.exe
+   StrLen $R1 $R0
+   IntOp $R1 $R0 - 13
+   StrCpy $R2 $R0 13 $R1
+   StrCmp $R2 "AddRemove.exe" addremove_installed
+   
+   ; We're not running AddRemove.exe, so install it
+   CopyFiles $R3 $INSTDIR\AddRemove.exe
+   
+   addremove_installed:
+ !endif
  SectionEnd
  ;--- End of Add/Remove callback functions ---
***************
*** 675,678 ****
--- 743,751 ----
  @CPACK_NSIS_DELETE_DIRECTORIES@
  
+ !ifdef CPACK_NSIS_ADD_REMOVE  
+   ;Remove the add/remove program
+   Delete "$INSTDIR\AddRemove.exe"
+ !endif
+ 
    ;Remove the uninstaller itself.
    Delete "$INSTDIR\Uninstall.exe"

Index: FindQt4.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/FindQt4.cmake,v
retrieving revision 1.96.2.12
retrieving revision 1.96.2.13
diff -C 2 -d -r1.96.2.12 -r1.96.2.13
*** FindQt4.cmake	13 Jun 2008 12:55:15 -0000	1.96.2.12
--- FindQt4.cmake	13 Jul 2008 21:55:23 -0000	1.96.2.13
***************
*** 1344,1350 ****
    IF(EXISTS "${QT_MKSPECS_DIR}/qconfig.pri")
      FILE(READ ${QT_MKSPECS_DIR}/qconfig.pri _qconfig_FILE_contents)
!     STRING(REGEX MATCH "QT_CONFIG[^\n]+" QT_QCONFIG ${_qconfig_FILE_contents})
!     STRING(REGEX MATCH "CONFIG[^\n]+" QT_CONFIG ${_qconfig_FILE_contents})
!     STRING(REGEX MATCH "EDITION[^\n]+" QT_EDITION ${_qconfig_FILE_contents})
    ENDIF(EXISTS "${QT_MKSPECS_DIR}/qconfig.pri")
    IF("${QT_EDITION}" MATCHES "DesktopLight")
--- 1344,1350 ----
    IF(EXISTS "${QT_MKSPECS_DIR}/qconfig.pri")
      FILE(READ ${QT_MKSPECS_DIR}/qconfig.pri _qconfig_FILE_contents)
!     STRING(REGEX MATCH "QT_CONFIG[^\n]+" QT_QCONFIG "${_qconfig_FILE_contents}")
!     STRING(REGEX MATCH "CONFIG[^\n]+" QT_CONFIG "${_qconfig_FILE_contents}")
!     STRING(REGEX MATCH "EDITION[^\n]+" QT_EDITION "${_qconfig_FILE_contents}")
    ENDIF(EXISTS "${QT_MKSPECS_DIR}/qconfig.pri")
    IF("${QT_EDITION}" MATCHES "DesktopLight")

Index: CPack.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CPack.cmake,v
retrieving revision 1.35.2.3
retrieving revision 1.35.2.4
diff -C 2 -d -r1.35.2.3 -r1.35.2.4
*** CPack.cmake	25 Jun 2008 13:51:31 -0000	1.35.2.3
--- CPack.cmake	13 Jul 2008 21:55:23 -0000	1.35.2.4
***************
*** 1,5 ****
! # Default output files will be CPackConfig.cmake and CPackSourceConfig.cmake.
! # This can be overwritten with CPACK_OUTPUT_CONFIG_FILE and
! # CPACK_SOURCE_OUTPUT_CONFIG_FILE.
  
  # Pick a configuration file
--- 1,389 ----
! # - Build binary and source package installers
! #
! # The CPack module generates binary and source installers in a variety
! # of formats using the cpack program. Inclusion of the CPack module
! # adds two new targets to the resulting makefiles, package and
! # package_source, which build the binary and source installers,
! # respectively. The generated binary installers contain everything
! # installed via CMake's INSTALL command (and the deprecated
! # INSTALL_FILES, INSTALL_PROGRAMS, and INSTALL_TARGETS commands).
! #
! # For certain kinds of binary installers (including the graphical
! # installers on Mac OS X and Windows), CPack generates installers that
! # allow users to select individual application components to
! # install. The contents of each of the components are identified by
! # the COMPONENT argument of CMake's INSTALL command. These components
! # can be annotated with user-friendly names and descriptions,
! # inter-component dependencies, etc., and grouped in various ways to
! # customize the resulting installer. See the cpack_add_* commands,
! # described below, for more information about component-specific
! # installations.
! #
! # Before including the CPack module, there are a variety of variables
! # that can be set to customize the resulting installers. The most
! # commonly-used variables are:
! #
! #   CPACK_PACKAGE_NAME - The name of the package (or application). If
! #   not specified, defaults to the project name.
! #
! #   CPACK_PACKAGE_VENDOR - The name of the package vendor (e.g.,
! #   "Kitware").
! #
! #   CPACK_PACKAGE_VERSION_MAJOR - Package major Version
! #
! #   CPACK_PACKAGE_VERSION_MINOR - Package minor Version
! #
! #   CPACK_PACKAGE_VERSION_PATCH - Package patch Version
! #
! #   CPACK_PACKAGE_DESCRIPTION_FILE - A text file used to describe the
! #   project. Used, for example, the introduction screen of a
! #   CPack-generated Windows installer to describe the project.
! #
! #   CPACK_PACKAGE_DESCRIPTION_SUMMARY - Short description of the
! #   project (only a few words).
! #
! #   CPACK_PACKAGE_FILE_NAME - The name of the package file to generate,
! #   not including the extension. For example, cmake-2.6.1-Linux-i686.
! #
! #   CPACK_PACKAGE_INSTALL_DIRECTORY - Installation directory on the
! #   target system, e.g., "CMake 2.5".
! #
! #   CPACK_RESOURCE_FILE_LICENSE - License file for the project, which
! #   will typically be displayed to the user (often with an explicit
! #   "Accept" button, for graphical installers) prior to installation.
! #
! #   CPACK_RESOURCE_FILE_README - ReadMe file for the project, which
! #   typically describes in some detail
! #
! #   CPACK_RESOURCE_FILE_WELCOME - Welcome file for the project, which
! #   welcomes users to this installer. Typically used in the graphical
! #   installers on Windows and Mac OS X.
! #
! #   CPACK_MONOLITHIC_INSTALL - Disables the component-based 
! #   installation mechanism, so that all components are always installed.
! #
! #   CPACK_GENERATOR - List of CPack generators to use. If not
! #   specified, CPack will create a set of options (e.g.,
! #   CPACK_BINARY_NSIS) allowing the user to enable/disable individual
! #   generators.
! #
! #   CPACK_OUTPUT_CONFIG_FILE - The name of the CPack configuration file
! #   for binary installers that will be generated by the CPack
! #   module. Defaults to CPackConfig.cmake.
! #
! #   CPACK_PACKAGE_EXECUTABLES - Lists each of the executables along
! #   with a text label, to be used to create Start Menu shortcuts on
! #   Windows. For example, setting this to the list ccmake;CMake will
! #   create a shortcut named "CMake" that will execute the installed
! #   executable ccmake.
! #
! #   CPACK_STRIP_FILES - List of files to be stripped. Starting with
! #   CMake 2.6.0 CPACK_STRIP_FILES will be a boolean variable which
! #   enables stripping of all files (a list of files evaluates to TRUE
! #   in CMake, so this change is compatible).
! #
! # The following CPack variables are specific to source packages, and 
! # will not affect binary packages:
! #
! #   CPACK_SOURCE_PACKAGE_FILE_NAME - The name of the source package,
! #   e.g., cmake-2.6.1
! #
! #   CPACK_SOURCE_STRIP_FILES - List of files in the source tree that
! #   will be stripped. Starting with CMake 2.6.0
! #   CPACK_SOURCE_STRIP_FILES will be a boolean variable which enables
! #   stripping of all files (a list of files evaluates to TRUE in CMake,
! #   so this change is compatible).
! #
! #   CPACK_SOURCE_GENERATOR - List of generators used for the source
! #   packages. As with CPACK_GENERATOR, if this is not specified then
! #   CPack will create a set of options (e.g., CPACK_SOURCE_ZIP)
! #   allowing users to select which packages will be generated.
! #
! #   CPACK_SOURCE_OUTPUT_CONFIG_FILE - The name of the CPack
! #   configuration file for source installers that will be generated by
! #   the CPack module. Defaults to CPackSourceConfig.cmake.
! #
! #   CPACK_SOURCE_IGNORE_FILES - Pattern of files in the source tree
! #   that won't be packaged when building a source package. This is a
! #   list of patterns, e.g., /CVS/;/\\.svn/;\\.swp$;\\.#;/#;.*~;cscope.*
! #
! # The following variables are specific to the graphical installers built
! # on Windows using the Nullsoft Installation System.
! #
! #   CPACK_PACKAGE_INSTALL_REGISTRY_KEY - Registry key used when
! #   installing this project.
! #
! #   CPACK_NSIS_MUI_ICON - The icon file (.ico) for the generated
! #   install program.
! #
! #   CPACK_NSIS_MUI_UNIICON - The icon file (.ico) for the generated
! #   uninstall program.
! #
! #   CPACK_PACKAGE_ICON - A branding image that will be displayed inside
! #   the installer.
! #
! #   CPACK_NSIS_EXTRA_INSTALL_COMMANDS - Extra NSIS commands that will
! #   be added to the install Section.
! #
! #   CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS - Extra NSIS commands that will
! #   be added to the uninstall Section.
! #
! #   CPACK_NSIS_COMPRESSOR - The arguments that will be passed to the
! #   NSIS SetCompressor command.
! #
! #   CPACK_NSIS_MODIFY_PATH - If this is set to "ON", then an extra page
! #   will appear in the installer that will allow the user to choose
! #   whether the program directory should be added to the system PATH
! #   variable.
! #
! #   CPACK_NSIS_DISPLAY_NAME - The title displayed at the top of the
! #   installer.
! #
! #   CPACK_NSIS_INSTALLED_ICON_NAME - A path to the executable that
! #   contains the installer icon.
! #
! #   CPACK_NSIS_HELP_LINK - URL to a web site providing assistance in
! #   installing your application.
! #
! #   CPACK_NSIS_URL_INFO_ABOUT - URL to a web site providing more
! #   information about your application.
! #
! #   CPACK_NSIS_CONTACT - Contact information for questions and comments
! #   about the installation process.
! #
! #   CPACK_NSIS_CREATE_ICONS_EXTRA - Additional NSIS commands for
! #   creating start menu shortcuts.
! #
! #   CPACK_NSIS_DELETE_ICONS_EXTRA -Additional NSIS commands to
! #   uninstall start menu shortcuts.
! #
! # The following variable is specific to installers build on Mac OS X
! # using PackageMaker:
! #
! #   CPACK_OSX_PACKAGE_VERSION - The version of Mac OS X that the
! #   resulting PackageMaker archive should be compatible
! #   with. Different versions of Mac OS X support different
! #   features. For example, CPack can only build component-based
! #   installers for Mac OS X 10.4 or newer, and can only build
! #   installers that download component son-the-fly for Mac OS X 10.5
! #   or newer. If left blank, this value will be set to the minimum
! #   version of Mac OS X that supports the requested features. Set this
! #   variable to some value (e.g., 10.4) only if you want to guarantee
! #   that your installer will work on that version of Mac OS X, and
! #   don't mind missing extra features available in the installer
! #   shipping with later versions of Mac OS X.
! #
! # The following variables are for advanced uses of CPack:
! #
! #   CPACK_CMAKE_GENERATOR - What CMake generator should be used if the
! #   project is CMake project. Defaults to the value of CMAKE_GENERATOR;
! #   few users will want to change this setting.
! #
! #   CPACK_INSTALL_CMAKE_PROJECTS - List of four values that specify
! #   what project to install. The four values are: Build directory,
! #   Project Name, Project Component, Directory. If omitted, CPack will
! #   build an installer that installers everything.
! #
! #   CPACK_SYSTEM_NAME - System name, defaults to the value of
! #   ${CMAKE_SYSTEM_NAME}.
! #
! #   CPACK_PACKAGE_VERSION - Package full version, used internally. By
! #   default, this is built from CPACK_PACKAGE_VERSION_MAJOR,
! #   CPACK_PACKAGE_VERSION_MINOR, and CPACK_PACKAGE_VERSION_PATCH.
! #
! #   CPACK_TOPLEVEL_TAG - Directory for the installed files.
! #
! #   CPACK_INSTALL_COMMANDS - Extra commands to install components.
! #
! #   CPACK_INSTALL_DIRECTORIES - Extra directories to install.
! #
! # Component-specific installation allows users to select specific sets
! # of components to install during the install process. Installation
! # components are identified by the COMPONENT argument of CMake's
! # INSTALL commands, and should be further described by the following
! # CPack commands:
! #
! #   cpack_add_component - Describes a CPack installation component
! #   named by the COMPONENT argument to a CMake INSTALL command.
! #
! #     cpack_add_component(compname
! #                         [DISPLAY_NAME name]
! #                         [DESCRIPTION description]
! #                         [HIDDEN | REQUIRED | DISABLED ]
! #                         [GROUP group]
! #                         [DEPENDS comp1 comp2 ... ]
! #                         [INSTALL_TYPES type1 type2 ... ]
! #                         [DOWNLOADED]
! #                         [ARCHIVE_FILE filename])
! #
! #   The cmake_add_component command describes an installation
! #   component, which the user can opt to install or remove as part of
! #   the graphical installation process. compname is the name of the
! #   component, as provided to the COMPONENT argument of one or more
! #   CMake INSTALL commands.
! #
! #   DISPLAY_NAME is the displayed name of the component, used in
! #   graphical installers to display the component name. This value can
! #   be any string.
! #
! #   DESCRIPTION is an extended description of the component, used in
! #   graphical installers to give the user additional information about
! #   the component. Descriptions can span multiple lines using "\n" as
! #   the line separator. Typically, these descriptions should be no
! #   more than a few lines long.
! #
! #   HIDDEN indicates that this component will be hidden in the
! #   graphical installer, so that the user cannot directly change
! #   whether it is installed or not.
! #
! #   REQUIRED indicates that this component is required, and therefore
! #   will always be installed. It will be visible in the graphical
! #   installer, but it cannot be unselected. (Typically, required
! #   components are shown greyed out).
! #
! #   DISABLED indicates that this component should be disabled
! #   (unselected) by default. The user is free to select this component
! #   for installation, unless it is also HIDDEN.
! #
! #   DEPENDS lists the components on which this component depends. If
! #   this component is selected, then each of the components listed
! #   must also be selected. The dependency information is encoded
! #   within the installer itself, so that users cannot install
! #   inconsitent sets of components.
! #
! #   GROUP names the component group of which this component is a
! #   part. If not provided, the component will be a standalone
! #   component, not part of any component group. Component groups are
! #   described with the cpack_add_component_group command, detailed
! #   below.
! #
! #   INSTALL_TYPES lists the installation types of which this component
! #   is a part. When one of these installations types is selected, this
! #   component will automatically be selected. Installation types are
! #   described with the cpack_add_install_type command, detailed below.
! #
! #   DOWNLOADED indicates that this component should be downloaded
! #   on-the-fly by the installer, rather than packaged in with the
! #   installer itself. For more information, see the cpack_configure_downloads
! #   command.
! #
! #   ARCHIVE_FILE provides a name for the archive file created by CPack
! #   to be used for downloaded components. If not supplied, CPack will
! #   create a file with some name based on CPACK_PACKAGE_FILE_NAME and
! #   the name of the component. See cpack_configure_downloads for more
! #   information.
! #
! #   cpack_add_component_group - Describes a group of related CPack
! #   installation components.
! #
! #     cpack_add_component_group(groupname
! #                              [DISPLAY_NAME name]
! #                              [DESCRIPTION description]
! #                              [PARENT_GROUP parent]
! #                              [EXPANDED]
! #                              [BOLD_TITLE])
! #
! #   The cpack_add_component_group describes a group of installation
! #   components, which will be placed together within the listing of
! #   options. Typically, component groups allow the user to
! #   select/deselect all of the components within a single group via a
! #   single group-level option. Use component groups to reduce the
! #   complexity of installers with many options. groupname is an
! #   arbitrary name used to identify the group in the GROUP argument of
! #   the cpack_add_component command, which is used to place a
! #   component in a group. The name of the group must not conflict with
! #   the name of any component.
! #
! #   DISPLAY_NAME is the displayed name of the component group, used in
! #   graphical installers to display the component group name. This
! #   value can be any string.
! #
! #   DESCRIPTION is an extended description of the component group,
! #   used in graphical installers to give the user additional
! #   information about the components within that group. Descriptions
! #   can span multiple lines using "\n" as the line
! #   separator. Typically, these descriptions should be no more than a
! #   few lines long.
! #
! #   PARENT_GROUP, if supplied, names the parent group of this group. 
! #   Parent groups are used to establish a hierarchy of groups, 
! #   providing an arbitrary hierarchy of groups.
! #
! #   EXPANDED indicates that, by default, the group should show up as
! #   "expanded", so that the user immediately sees all of the
! #   components within the group. Otherwise, the group will initially
! #   show up as a single entry.
! #
! #   BOLD_TITLE indicates that the group title should appear in bold,
! #   to call the user's attention to the group.
! #
! #   cpack_add_install_type - Add a new installation type containing a
! #   set of predefined component selections to the graphical installer.
! #                      
! #     cpack_add_install_type(typename
! #                            [DISPLAY_NAME name])   
! #
! #   The cpack_add_install_type command identifies a set of preselected
! #   components that represents a common use case for an
! #   application. For example, a "Developer" install type might include
! #   an application along with its header and library files, while an
! #   "End user" install type might just include the application's
! #   executable. Each component identifies itself with one or more
! #   install types via the INSTALL_TYPES argument to
! #   cpack_add_component.
! #
! #   DISPLAY_NAME is the displayed name of the install type, which will
! #   typically show up in a drop-down box within a graphical
! #   installer. This value can be any string.
! #
! #   cpack_configure_downloads - Configure CPack to download selected
! #   components on-the-fly as part of the installation process.
! #
! #     cpack_configure_downloads(site
! #                               [UPLOAD_DIRECTORY dirname]
! #                               [ALL]
! #                               [ADD_REMOVE|NO_ADD_REMOVE])
! #
! #   The cpack_configure_downloads command configures installation-time
! #   downloads of selected components. For each downloadable component,
! #   CPack will create an archive containing the contents of that
! #   component, which should be uploaded to the given site. When the
! #   user selects that component for installation, the installer will
! #   download and extract the component in place. This feature is
! #   useful for creating small installers that only download the
! #   requested components, saving bandwidth. Additionally, the
! #   installers are small enough that they will be installed as part of
! #   the normal installation process, and the "Change" button in
! #   Windows Add/Remove Programs control panel will allow one to add or
! #   remove parts of the application after the original
! #   installation. On Windows, the downloaded-components functionality
! #   requires the ZipDLL plug-in for NSIS, available at:
! #
! #     http://nsis.sourceforge.net/ZipDLL_plug-in
! #
! #   On Mac OS X, installers that download components on-the-fly can
! #   only be built and installed on system using Mac OS X 10.5 or
! #   later.
! #
! #   The site argument is a URL where the archives for downloadable 
! #   components will reside, e.g., http://www.cmake.org/files/2.6.1/installer/
! #   All of the archives produced by CPack should be uploaded to that location.
! #
! #   UPLOAD_DIRECTORY is the local directory where CPack will create the 
! #   various archives for each of the components. The contents of this
! #   directory should be uploaded to a location accessible by the URL given
! #   in the site argument. If omitted, CPack will use the directory CPackUploads
! #   inside the CMake binary directory to store the generated archives.
! #
! #   The ALL flag indicates that all components be downloaded. Otherwise, only 
! #   those components explicitly marked as DOWNLOADED or that have a specified 
! #   ARCHIVE_FILE will be downloaded. Additionally, the ALL option implies
! #   ADD_REMOVE (unless NO_ADD_REMOVE is specified).
! #
! #   ADD_REMOVE indicates that CPack should install a copy of the installer
! #   that can be called from Windows' Add/Remove Programs dialog (via the 
! #   "Modify" button) to change the set of installed components. NO_ADD_REMOVE
! #   turns off this behavior. This option is ignored on Mac OS X.
! 
  
  # Pick a configuration file
***************
*** 13,16 ****
--- 397,609 ----
  ENDIF(EXISTS "${CMAKE_SOURCE_DIR}/CPackSourceConfig.cmake.in")
  
+ # Argument-parsing macro from http://www.cmake.org/Wiki/CMakeMacroParseArguments
+ MACRO(cpack_parse_arguments prefix arg_names option_names)
+   SET(${prefix}_DEFAULT_ARGS)
+   FOREACH(arg_name ${arg_names})    
+     SET(${prefix}_${arg_name})
+   ENDFOREACH(arg_name)
+   FOREACH(option ${option_names})
+     SET(${prefix}_${option} FALSE)
+   ENDFOREACH(option)
+ 
+   SET(current_arg_name DEFAULT_ARGS)
+   SET(current_arg_list)
+   FOREACH(arg ${ARGN})            
+     SET(larg_names ${arg_names})    
+     LIST(FIND larg_names "${arg}" is_arg_name)                   
+     IF (is_arg_name GREATER -1)
+       SET(${prefix}_${current_arg_name} ${current_arg_list})
+       SET(current_arg_name ${arg})
+       SET(current_arg_list)
+     ELSE (is_arg_name GREATER -1)
+       SET(loption_names ${option_names})    
+       LIST(FIND loption_names "${arg}" is_option)            
+       IF (is_option GREATER -1)
+         SET(${prefix}_${arg} TRUE)
+       ELSE (is_option GREATER -1)
+         SET(current_arg_list ${current_arg_list} ${arg})
+       ENDIF (is_option GREATER -1)
+     ENDIF (is_arg_name GREATER -1)
+   ENDFOREACH(arg)
+   SET(${prefix}_${current_arg_name} ${current_arg_list})
+ ENDMACRO(cpack_parse_arguments)
+ 
+ # Macro that appends a SET command for the given variable name (var)
+ # to the macro named strvar, but only if the variable named "var"
+ # has been defined. The string will eventually be appended to a CPack
+ # configuration file.
+ MACRO(cpack_append_variable_set_command var strvar)
+   IF (DEFINED ${var})
+     SET(${strvar} "${${strvar}}SET(${var}")
+     FOREACH(APPENDVAL ${${var}})
+       SET(${strvar} "${${strvar}} ${APPENDVAL}")
+     ENDFOREACH(APPENDVAL)
+     SET(${strvar} "${${strvar}})\n")
+   ENDIF (DEFINED ${var})
+ ENDMACRO(cpack_append_variable_set_command)
+ 
+ # Macro that appends a SET command for the given variable name (var)
+ # to the macro named strvar, but only if the variable named "var"
+ # has been defined and is a string. The string will eventually be
+ # appended to a CPack configuration file.
+ MACRO(cpack_append_string_variable_set_command var strvar)
+   IF (DEFINED ${var})
+     LIST(LENGTH ${var} CPACK_APP_VALUE_LEN)
+     IF(${CPACK_APP_VALUE_LEN} EQUAL 1)
+       SET(${strvar} "${${strvar}}SET(${var} \"${${var}}\")\n")
+     ENDIF(${CPACK_APP_VALUE_LEN} EQUAL 1)
+   ENDIF (DEFINED ${var})
+ ENDMACRO(cpack_append_string_variable_set_command)
+ 
+ # Macro that appends a SET command for the given variable name (var)
+ # to the macro named strvar, but only if the variable named "var"
+ # has been set to true. The string will eventually be
+ # appended to a CPack configuration file.
+ MACRO(cpack_append_option_set_command var strvar)
+   IF (${var})
+     LIST(LENGTH ${var} CPACK_APP_VALUE_LEN)
+     IF(${CPACK_APP_VALUE_LEN} EQUAL 1)
+       SET(${strvar} "${${strvar}}SET(${var} TRUE)\n")
+     ENDIF(${CPACK_APP_VALUE_LEN} EQUAL 1)
+   ENDIF (${var})
+ ENDMACRO(cpack_append_option_set_command)
+ 
+ # Macro that adds a component to the CPack installer
+ MACRO(cpack_add_component compname)
+   STRING(TOUPPER ${compname} CPACK_ADDCOMP_UNAME)
+   cpack_parse_arguments(CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}
+     "DISPLAY_NAME;DESCRIPTION;GROUP;DEPENDS;INSTALL_TYPES;ARCHIVE_FILE"
+     "HIDDEN;REQUIRED;DISABLED;DOWNLOADED"
+     ${ARGN}
+     )
+   
+   if (CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}_DOWNLOADED)
+     SET(CPACK_ADDCOMP_STR "\n# Configuration for downloaded component \"${compname}\"\n")
+   else ()
+     SET(CPACK_ADDCOMP_STR "\n# Configuration for component \"${compname}\"\n")
+   endif ()
+ 
+   IF(NOT CPACK_MONOLITHIC_INSTALL)
+     # If the user didn't set CPACK_COMPONENTS_ALL explicitly, update the
+     # value of CPACK_COMPONENTS_ALL in the configuration file. This will
+     # take care of any components that have been added after the CPack
+     # moduled was included.
+     IF(NOT CPACK_COMPONENTS_ALL_SET_BY_USER)
+       GET_CMAKE_PROPERTY(CPACK_ADDCOMP_COMPONENTS COMPONENTS)
+       SET(CPACK_ADDCOMP_STR "${CPACK_ADDCOMP_STR}\nSET(CPACK_COMPONENTS_ALL")
+       FOREACH(COMP ${CPACK_ADDCOMP_COMPONENTS})
+         SET(CPACK_ADDCOMP_STR "${CPACK_ADDCOMP_STR} ${COMP}")
+       ENDFOREACH(COMP)
+       SET(CPACK_ADDCOMP_STR "${CPACK_ADDCOMP_STR})\n")
+     ENDIF(NOT CPACK_COMPONENTS_ALL_SET_BY_USER)
+   ENDIF(NOT CPACK_MONOLITHIC_INSTALL)
+ 
+   cpack_append_string_variable_set_command(
+     CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}_DISPLAY_NAME
+     CPACK_ADDCOMP_STR)
+   cpack_append_string_variable_set_command(
+     CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}_DESCRIPTION
+     CPACK_ADDCOMP_STR)
+   cpack_append_variable_set_command(
+     CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}_GROUP
+     CPACK_ADDCOMP_STR)
+   cpack_append_variable_set_command(
+     CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}_DEPENDS
+     CPACK_ADDCOMP_STR)
+   cpack_append_variable_set_command(
+     CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}_INSTALL_TYPES
+     CPACK_ADDCOMP_STR)
+   cpack_append_string_variable_set_command(
+     CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}_ARCHIVE_FILE
+     CPACK_ADDCOMP_STR)    
+   cpack_append_option_set_command(
+     CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}_HIDDEN
+     CPACK_ADDCOMP_STR)
+   cpack_append_option_set_command(
+     CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}_REQUIRED
+     CPACK_ADDCOMP_STR)
+   cpack_append_option_set_command(
+     CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}_DISABLED
+     CPACK_ADDCOMP_STR)
+   cpack_append_option_set_command(
+     CPACK_COMPONENT_${CPACK_ADDCOMP_UNAME}_DOWNLOADED
+     CPACK_ADDCOMP_STR)
+   FILE(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${CPACK_ADDCOMP_STR}")
+ ENDMACRO(cpack_add_component)
+ 
+ # Macro that adds a component group to the CPack installer
+ MACRO(cpack_add_component_group grpname)
+   STRING(TOUPPER ${grpname} CPACK_ADDGRP_UNAME)
+   cpack_parse_arguments(CPACK_COMPONENT_GROUP_${CPACK_ADDGRP_UNAME}
+     "DISPLAY_NAME;DESCRIPTION"
+     "EXPANDED;BOLD_TITLE"
+     ${ARGN}
+     )
+ 
+   SET(CPACK_ADDGRP_STR "\n# Configuration for component group \"${grpname}\"\n")
+   cpack_append_string_variable_set_command(
+     CPACK_COMPONENT_GROUP_${CPACK_ADDGRP_UNAME}_DISPLAY_NAME
+     CPACK_ADDGRP_STR)
+   cpack_append_string_variable_set_command(
+     CPACK_COMPONENT_GROUP_${CPACK_ADDGRP_UNAME}_DESCRIPTION
+     CPACK_ADDGRP_STR)
+   cpack_append_option_set_command(
+     CPACK_COMPONENT_GROUP_${CPACK_ADDGRP_UNAME}_EXPANDED
+     CPACK_ADDGRP_STR)
+   cpack_append_option_set_command(
+     CPACK_COMPONENT_GROUP_${CPACK_ADDGRP_UNAME}_BOLD_TITLE
+     CPACK_ADDGRP_STR)
+   FILE(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${CPACK_ADDGRP_STR}")
+ ENDMACRO(cpack_add_component_group)
+ 
+ # Macro that adds an installation type to the CPack installer
+ MACRO(cpack_add_install_type insttype)
+   STRING(TOUPPER ${insttype} CPACK_INSTTYPE_UNAME)
+   cpack_parse_arguments(CPACK_INSTALL_TYPE_${CPACK_INSTTYPE_UNAME}
+     "DISPLAY_NAME"
+     ""
+     ${ARGN}
+     )
+ 
+   SET(CPACK_INSTTYPE_STR 
+     "\n# Configuration for installation type \"${insttype}\"\n")
+   SET(CPACK_INSTTYPE_STR 
+     "${CPACK_INSTTYPE_STR}LIST(APPEND CPACK_ALL_INSTALL_TYPES ${insttype})\n")
+   cpack_append_string_variable_set_command(
+     CPACK_INSTALL_TYPE_${CPACK_INSTTYPE_UNAME}_DISPLAY_NAME
+     CPACK_INSTTYPE_STR)
+   FILE(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${CPACK_INSTTYPE_STR}")
+ ENDMACRO(cpack_add_install_type)
+ 
+ MACRO(cpack_configure_downloads site)
+   cpack_parse_arguments(CPACK_DOWNLOAD
+     "UPLOAD_DIRECTORY"
+     "ALL;ADD_REMOVE;NO_ADD_REMOVE"
+     ${ARGN}
+     )
+     
+   SET(CPACK_CONFIG_DL_STR
+     "\n# Downloaded components configuration\n")
+   SET(CPACK_UPLOAD_DIRECTORY ${CPACK_DOWNLOAD_UPLOAD_DIRECTORY})
+   SET(CPACK_DOWNLOAD_SITE ${site})
+   cpack_append_string_variable_set_command(
+     CPACK_DOWNLOAD_SITE
+     CPACK_CONFIG_DL_STR)  
+   cpack_append_string_variable_set_command(
+     CPACK_UPLOAD_DIRECTORY
+     CPACK_CONFIG_DL_STR)
+   cpack_append_option_set_command(
+     CPACK_DOWNLOAD_ALL
+     CPACK_CONFIG_DL_STR)
+   IF (${CPACK_DOWNLOAD_ALL} AND NOT ${CPACK_DOWNLOAD_NO_ADD_REMOVE})
+     SET(CPACK_DOWNLOAD_ADD_REMOVE ON)
+   ENDIF (${CPACK_DOWNLOAD_ALL} AND NOT ${CPACK_DOWNLOAD_NO_ADD_REMOVE})
+   SET(CPACK_ADD_REMOVE ${CPACK_DOWNLOAD_ADD_REMOVE})
+   cpack_append_option_set_command(
+     CPACK_ADD_REMOVE
+     CPACK_CONFIG_DL_STR)
+   FILE(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${CPACK_CONFIG_DL_STR}")
+ ENDMACRO(cpack_configure_downloads)
+ 
  # Macro for setting values if a user did not overwrite them
  MACRO(cpack_set_if_not_set name value)
***************
*** 198,201 ****
--- 791,827 ----
  cpack_set_if_not_set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
  
+ IF(DEFINED CPACK_COMPONENTS_ALL)
+   IF(CPACK_MONOLITHIC_INSTALL)
+     MESSAGE("CPack warning: both CPACK_COMPONENTS_ALL and CPACK_MONOLITHIC_INSTALL have been set.\nDefaulting to a monolithic installation.")
+     SET(CPACK_COMPONENTS_ALL)
+   ELSE(CPACK_MONOLITHIC_INSTALL)
+     # The user has provided the set of components to be installed as
+     # part of a component-based installation; trust her.
+     SET(CPACK_COMPONENTS_ALL_SET_BY_USER TRUE)
+   ENDIF(CPACK_MONOLITHIC_INSTALL)
+ ELSE(DEFINED CPACK_COMPONENTS_ALL)
+   # If the user has not specifically requested a monolithic installer
+   # but has specified components in various "install" commands, tell
+   # CPack about those components.
+   IF(NOT CPACK_MONOLITHIC_INSTALL)
+     GET_CMAKE_PROPERTY(CPACK_COMPONENTS_ALL COMPONENTS)
+     LIST(LENGTH CPACK_COMPONENTS_ALL CPACK_COMPONENTS_LEN)
+     IF(CPACK_COMPONENTS_LEN EQUAL 1)
+       # Only one component: this is not a component-based installation
+       # (at least, it isn't a component-based installation, but may
+       # become one later if the user uses the cpack_add_* commands).
+       SET(CPACK_COMPONENTS_ALL)
+     ENDIF(CPACK_COMPONENTS_LEN EQUAL 1)
+     SET(CPACK_COMPONENTS_LEN)
+   ENDIF(NOT CPACK_MONOLITHIC_INSTALL)
+ ENDIF(DEFINED CPACK_COMPONENTS_ALL)
+ 
+ # CMake always generates a component named "Unspecified", which is
+ # used to install everything that doesn't have an explicitly-provided
+ # component. Since these files should always be installed, we'll make
+ # them hidden and required.
+ set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN TRUE)
+ set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED TRUE)
+ 
  cpack_encode_variables()
  configure_file("${cpack_input_file}" "${CPACK_OUTPUT_CONFIG_FILE}" @ONLY IMMEDIATE)

Index: FindwxWidgets.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/FindwxWidgets.cmake,v
retrieving revision 1.18.2.2
retrieving revision 1.18.2.3
diff -C 2 -d -r1.18.2.2 -r1.18.2.3
*** FindwxWidgets.cmake	25 Jun 2008 13:51:32 -0000	1.18.2.2
--- FindwxWidgets.cmake	13 Jul 2008 21:55:23 -0000	1.18.2.3
***************
*** 281,285 ****
  
      # Find wxWidgets multilib libraries.
!     FOREACH(LIB core adv aui html media xrc dbgrid gl qa)
        FIND_LIBRARY(WX_${LIB}${_DBG}
          NAMES
--- 281,285 ----
  
      # Find wxWidgets multilib libraries.
!     FOREACH(LIB core adv aui html media xrc dbgrid gl qa richtext)
        FIND_LIBRARY(WX_${LIB}${_DBG}
          NAMES
***************
*** 322,326 ****
  
      # Clear wxWidgets multilib libraries.
!     FOREACH(LIB core adv aui html media xrc dbgrid gl qa)
        WX_CLEAR_LIB(WX_${LIB}${_DBG})
      ENDFOREACH(LIB)
--- 322,326 ----
  
      # Clear wxWidgets multilib libraries.
!     FOREACH(LIB core adv aui html media xrc dbgrid gl qa richtext)
        WX_CLEAR_LIB(WX_${LIB}${_DBG})
      ENDFOREACH(LIB)
***************
*** 396,399 ****
--- 396,400 ----
        $ENV{ProgramFiles}
      PATH_SUFFIXES 
+       wxWidgets-2.8.8
        wxWidgets-2.8.7
        wxWidgets-2.8.6

Index: CPack.Info.plist.in
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/CPack.Info.plist.in,v
retrieving revision 1.5.2.1
retrieving revision 1.5.2.2
diff -C 2 -d -r1.5.2.1 -r1.5.2.2
*** CPack.Info.plist.in	25 Jun 2008 13:51:31 -0000	1.5.2.1
--- CPack.Info.plist.in	13 Jul 2008 21:55:23 -0000	1.5.2.2
***************
*** 33,37 ****
  <real>0.10000000149011612</real>
  <key>CFBundleIdentifier</key>
! <string>com. at CPACK_PACKAGE_VENDOR@. at CPACK_PACKAGE_NAME@. at CPACK_PACKAGE_VERSION@@CPACK_MODULE_VERSION_SUFFIX@</string>
  </dict>
  </plist>
--- 33,37 ----
  <real>0.10000000149011612</real>
  <key>CFBundleIdentifier</key>
! <string>com. at CPACK_PACKAGE_VENDOR@. at CPACK_PACKAGE_NAME@@CPACK_MODULE_VERSION_SUFFIX@</string>
  </dict>
  </plist>

Index: FindBoost.cmake
===================================================================
RCS file: /cvsroot/CMake/CMake/Modules/FindBoost.cmake,v
retrieving revision 1.4.2.3
retrieving revision 1.4.2.4
diff -C 2 -d -r1.4.2.3 -r1.4.2.4
*** FindBoost.cmake	15 May 2008 19:39:49 -0000	1.4.2.3
--- FindBoost.cmake	13 Jul 2008 21:55:23 -0000	1.4.2.4
***************
*** 42,46 ****
  #                                strings, where each string contains a number, i.e.
  #                                SET(Boost_ADDITIONAL_VERSIONS "0.99.0" "1.35.0")
! #  BOOST_ROOT                    Preferred installation prefix for searching for Boost,
  #                                set this if the module has problems finding the proper Boost installation
  #  BOOST_INCLUDEDIR              Set this to the include directory of Boost, if the
--- 42,46 ----
  #                                strings, where each string contains a number, i.e.
  #                                SET(Boost_ADDITIONAL_VERSIONS "0.99.0" "1.35.0")
! #  BOOST_ROOT or BOOSTROOT       Preferred installation prefix for searching for Boost,
  #                                set this if the module has problems finding the proper Boost installation
  #  BOOST_INCLUDEDIR              Set this to the include directory of Boost, if the
***************
*** 92,109 ****
  #  For details see the accompanying COPYING-CMAKE-SCRIPTS file.
  #
  
! # this module required CMake 2.5 for the Boost_FIND_VERSION stuff
! 
! # this must not be done in find modules, it changes the policy settings, which may have been
! # set in the projects cmake files.
! # beside that this module comes with cmake, so the cmake version is always correct, Alex
! # CMAKE_MINIMUM_REQUIRED(VERSION "2.6" FATAL_ERROR)
! 
! # MESSAGE(STATUS "Finding Boost libraries.... ")
! 
! OPTION(Boost_USE_MULTITHREADED "Use the multithreaded versions of the boost libraries" ON)
! 
! SET( _boost_TEST_VERSIONS ${Boost_ADDITIONAL_VERSIONS} "1.36.1" "1.36.0" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0" "1.34" "1.33.1" "1.33.0" "1.33" )
  
  
  ############################################
--- 92,117 ----
  #  For details see the accompanying COPYING-CMAKE-SCRIPTS file.
  #
+ OPTION(Boost_USE_MULTITHREADED 
+   "Use the multithreaded versions of the Boost libraries" ON)
  
! if (Boost_FIND_VERSION_EXACT)
!   if (Boost_FIND_VERSION_PATCH)
!     set( _boost_TEST_VERSIONS 
!       "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.${Boost_FIND_VERSION_PATCH}")
!   else (Boost_FIND_VERSION_PATCH)
!     set( _boost_TEST_VERSIONS 
!       "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.0"
!       "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
!   endif (Boost_FIND_VERSION_PATCH)
! else (Boost_FIND_VERSION_EXACT)
!   set( _boost_TEST_VERSIONS ${Boost_ADDITIONAL_VERSIONS} 
!     "1.36.1" "1.36.0" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0" "1.34" "1.33.1"
!     "1.33.0" "1.33" )
! endif (Boost_FIND_VERSION_EXACT)
  
+ # The reason that we failed to find Boost. This will be set to a
+ # user-friendly message when we fail to find some necessary piece of
+ # Boost.
+ set(Boost_ERROR_REASON)
  
  ############################################
***************
*** 120,125 ****
  MACRO (_Boost_ADJUST_LIB_VARS basename)
    IF (Boost_INCLUDE_DIR )
-     #MESSAGE(STATUS "Adjusting ${basename} ")
- 
      IF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE)
        # if the generator supports configuration types then set
--- 128,131 ----
***************
*** 153,157 ****
        GET_FILENAME_COMPONENT(Boost_LIBRARY_DIRS "${Boost_${basename}_LIBRARY}" PATH)
        SET(Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIRS} CACHE FILEPATH "Boost library directory")
!       SET(Boost_${basename}_FOUND ON CACHE INTERNAL "Was the boost boost ${basename} library found")
      ENDIF (Boost_${basename}_LIBRARY)
  
--- 159,163 ----
        GET_FILENAME_COMPONENT(Boost_LIBRARY_DIRS "${Boost_${basename}_LIBRARY}" PATH)
        SET(Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIRS} CACHE FILEPATH "Boost library directory")
!       SET(Boost_${basename}_FOUND ON CACHE INTERNAL "Whether the Boost ${basename} library found")
      ENDIF (Boost_${basename}_LIBRARY)
  
***************
*** 198,224 ****
  
    IF(WIN32)
!     # In windows, automatic linking is performed, so you do not have to specify the libraries.
!     # If you are linking to a dynamic runtime, then you can choose to link to either a static or a
!     # dynamic Boost library, the default is to do a static link.  You can alter this for a specific
!     # library "whatever" by defining BOOST_WHATEVER_DYN_LINK to force Boost library "whatever" to
!     # be linked dynamically.  Alternatively you can force all Boost libraries to dynamic link by
!     # defining BOOST_ALL_DYN_LINK.
    
!     # This feature can be disabled for Boost library "whatever" by defining BOOST_WHATEVER_NO_LIB,
!     # or for all of Boost by defining BOOST_ALL_NO_LIB.
    
!     # If you want to observe which libraries are being linked against then defining
!     # BOOST_LIB_DIAGNOSTIC will cause the auto-linking code to emit a #pragma message each time
!     # a library is selected for linking.
!     SET(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC" CACHE STRING "Boost diagnostic define")
    ENDIF(WIN32)
  
- 
    SET(_boost_INCLUDE_SEARCH_DIRS
      C:/boost/include
!     "C:/Program Files/boost/boost_${Boost_FIND_VERSION_MAJOR}_${Boost_FIND_VERSION_MINOR}_${Boost_FIND_VERSION_PATCH}"
!     # D: is very often the cdrom drive, IF you don't have a
!     # cdrom inserted it will popup a very annoying dialog
!     #D:/boost/include
      /sw/local/include
    )
--- 204,233 ----
  
    IF(WIN32)
!     # In windows, automatic linking is performed, so you do not have
!     # to specify the libraries.  If you are linking to a dynamic
!     # runtime, then you can choose to link to either a static or a
!     # dynamic Boost library, the default is to do a static link.  You
!     # can alter this for a specific library "whatever" by defining
!     # BOOST_WHATEVER_DYN_LINK to force Boost library "whatever" to be
!     # linked dynamically.  Alternatively you can force all Boost
!     # libraries to dynamic link by defining BOOST_ALL_DYN_LINK.
    
!     # This feature can be disabled for Boost library "whatever" by
!     # defining BOOST_WHATEVER_NO_LIB, or for all of Boost by defining
!     # BOOST_ALL_NO_LIB.
    
!     # If you want to observe which libraries are being linked against
!     # then defining BOOST_LIB_DIAGNOSTIC will cause the auto-linking
!     # code to emit a #pragma message each time a library is selected
!     # for linking.
!     SET(Boost_LIB_DIAGNOSTIC_DEFINITIONS 
!       "-DBOOST_LIB_DIAGNOSTIC" CACHE STRING "Boost diagnostic define")
    ENDIF(WIN32)
  
    SET(_boost_INCLUDE_SEARCH_DIRS
      C:/boost/include
!     "C:/boost"
!     "$ENV{ProgramFiles}/boost/boost_${Boost_FIND_VERSION_MAJOR}_${Boost_FIND_VERSION_MINOR}_${Boost_FIND_VERSION_PATCH}"
!     "$ENV{ProgramFiles}/Boost"
      /sw/local/include
    )
***************
*** 226,286 ****
    SET(_boost_LIBRARIES_SEARCH_DIRS
      C:/boost/lib
!     "C:/Program Files/boost/boost_${Boost_FIND_VERSION_MAJOR}_${Boost_FIND_VERSION_MINOR}_${Boost_FIND_VERSION_PATCH}/lib"
      /sw/local/lib
    )
  
!   IF( NOT $ENV{BOOST_ROOT} STREQUAL "" )
!     SET(_boost_INCLUDE_SEARCH_DIRS $ENV{BOOST_ROOT}/include ${_boost_INCLUDE_SEARCH_DIRS})
!     SET(_boost_LIBRARIES_SEARCH_DIRS $ENV{BOOST_ROOT}/lib ${_boost_INCLUDE_SEARCH_DIRS})
!   ENDIF( NOT $ENV{BOOST_ROOT} STREQUAL "" )
  
    IF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" )
!     SET(_boost_INCLUDE_SEARCH_DIRS $ENV{BOOST_INCLUDEDIR} ${_boost_INCLUDE_SEARCH_DIRS})
    ENDIF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" )
  
    IF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" )
!     SET(_boost_LIBRARIES_SEARCH_DIRS $ENV{BOOST_LIBRARYDIR} ${_boost_INCLUDE_SEARCH_DIRS})
    ENDIF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" )
  
    IF( BOOST_ROOT )
!     IF( WIN32 )
!       SET(_boost_INCLUDE_SEARCH_DIRS ${BOOST_ROOT} ${_boost_INCLUDE_SEARCH_DIRS})
!     ELSE( WIN32 )
!       SET(_boost_INCLUDE_SEARCH_DIRS ${BOOST_ROOT}/include ${_boost_INCLUDE_SEARCH_DIRS})
!     ENDIF( WIN32 )
!     SET(_boost_LIBRARIES_SEARCH_DIRS ${BOOST_ROOT}/lib ${_boost_LIBRARIES_SEARCH_DIRS})
    ENDIF( BOOST_ROOT )
  
    IF( BOOST_INCLUDEDIR )
!     SET(_boost_INCLUDE_SEARCH_DIRS ${BOOST_INCLUDEDIR} ${_boost_INCLUDE_SEARCH_DIRS})
    ENDIF( BOOST_INCLUDEDIR )
  
    IF( BOOST_LIBRARYDIR )
!     SET(_boost_LIBRARIES_SEARCH_DIRS ${BOOST_LIBRARYDIR} ${_boost_LIBRARIES_SEARCH_DIRS})
    ENDIF( BOOST_LIBRARYDIR )
  
!   #Try first in our own include search paths (e.g. BOOST_ROOT)
    FOREACH(_boost_VER ${_boost_TEST_VERSIONS})
      IF( NOT Boost_INCLUDE_DIR )
! 
!       # Add in a path suffix, based on the required version, ideally we could
!       # read this from version.hpp, but for that to work we'd need to know the include
!       # dir already
!       SET(_boost_PATH_SUFFIX
!         boost-${_boost_VER}
!       )
  
        IF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+")
!           STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX})
        ELSEIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+")
!           STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX})
        ENDIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+")
  
- 
        FIND_PATH(Boost_INCLUDE_DIR
            NAMES         boost/config.hpp
!           PATHS         ${_boost_INCLUDE_SEARCH_DIRS}
            PATH_SUFFIXES ${_boost_PATH_SUFFIX}
-           NO_DEFAULT_PATH
        )
  
--- 235,313 ----
    SET(_boost_LIBRARIES_SEARCH_DIRS
      C:/boost/lib
!     "C:/boost"
!     "$ENV{ProgramFiles}/boost/boost_${Boost_FIND_VERSION_MAJOR}_${Boost_FIND_VERSION_MINOR}_${Boost_FIND_VERSION_PATCH}/lib"
!     "$ENV{ProgramFiles}/Boost"
      /sw/local/lib
    )
  
!   # If BOOST_ROOT was defined in the environment, use it.
!   if (NOT BOOST_ROOT AND NOT $ENV{BOOST_ROOT} STREQUAL "")
!     set(BOOST_ROOT $ENV{BOOST_ROOT})
!   endif(NOT BOOST_ROOT AND NOT $ENV{BOOST_ROOT} STREQUAL "")
  
+   # If BOOSTROOT was defined in the environment, use it.
+   if (NOT BOOST_ROOT AND NOT $ENV{BOOSTROOT} STREQUAL "")
+     set(BOOST_ROOT $ENV{BOOSTROOT})
+   endif(NOT BOOST_ROOT AND NOT $ENV{BOOSTROOT} STREQUAL "")
+ 
+   # If BOOST_INCLUDEDIR was defined in the environment, use it.
    IF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" )
!     set(BOOST_INCLUDEDIR $ENV{BOOST_INCLUDEDIR})
    ENDIF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" )
  
+   # If BOOST_LIBRARYDIR was defined in the environment, use it.
    IF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" )
!     set(BOOST_LIBRARYDIR $ENV{BOOST_LIBRARYDIR})
    ENDIF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" )
  
    IF( BOOST_ROOT )
!     file(TO_CMAKE_PATH ${BOOST_ROOT} BOOST_ROOT)
!     SET(_boost_INCLUDE_SEARCH_DIRS 
!       ${BOOST_ROOT}/include 
!       ${BOOST_ROOT}
!       ${_boost_INCLUDE_SEARCH_DIRS})
!     SET(_boost_LIBRARIES_SEARCH_DIRS 
!       ${BOOST_ROOT}/lib 
!       ${BOOST_ROOT}/stage/lib 
!       ${_boost_LIBRARIES_SEARCH_DIRS})
    ENDIF( BOOST_ROOT )
  
    IF( BOOST_INCLUDEDIR )
!     file(TO_CMAKE_PATH ${BOOST_INCLUDEDIR} BOOST_INCLUDEDIR)
!     SET(_boost_INCLUDE_SEARCH_DIRS 
!       ${BOOST_INCLUDEDIR} ${_boost_INCLUDE_SEARCH_DIRS})
    ENDIF( BOOST_INCLUDEDIR )
  
    IF( BOOST_LIBRARYDIR )
!     file(TO_CMAKE_PATH ${BOOST_LIBRARYDIR} BOOST_LIBRARYDIR)
!     SET(_boost_LIBRARIES_SEARCH_DIRS 
!       ${BOOST_LIBRARYDIR} ${_boost_LIBRARIES_SEARCH_DIRS})
    ENDIF( BOOST_LIBRARYDIR )
  
!   # Try to find Boost by stepping backwards through the Boost versions
!   # we know about.
    FOREACH(_boost_VER ${_boost_TEST_VERSIONS})
      IF( NOT Boost_INCLUDE_DIR )
!       # Add in a path suffix, based on the required version, ideally
!       # we could read this from version.hpp, but for that to work we'd
!       # need to know the include dir already
!       if (WIN32 AND NOT CYGWIN)
!         set(_boost_PATH_SUFFIX boost_${_boost_VER})
!       else (WIN32 AND NOT CYGWIN)
!         set(_boost_PATH_SUFFIX boost-${_boost_VER})
!       endif (WIN32 AND NOT CYGWIN)
  
        IF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+")
!           STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3" 
!             _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX})
        ELSEIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+")
!           STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2" 
!             _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX})
        ENDIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+")
  
        FIND_PATH(Boost_INCLUDE_DIR
            NAMES         boost/config.hpp
!           HINTS         ${_boost_INCLUDE_SEARCH_DIRS}
            PATH_SUFFIXES ${_boost_PATH_SUFFIX}
        )
  
***************
*** 288,315 ****
    ENDFOREACH(_boost_VER)
  
-   # If nothing is found search again using system default paths
-   FOREACH(_boost_VER ${_boost_TEST_VERSIONS})
-     IF( NOT Boost_INCLUDE_DIR )
- 
-       # Add in a path suffix, based on the required version, ideally we could
-       # read this from version.hpp, but for that to work we'd need to know the include
-       # dir already
-       SET(_boost_PATH_SUFFIX
-         boost-${_boost_VER}
-       )
- 
-       IF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+")
-           STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX})
-       ELSEIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+")
-           STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX})
-       ENDIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+")
- 
-       FIND_PATH(Boost_INCLUDE_DIR
-           NAMES         boost/config.hpp
-           PATH_SUFFIXES ${_boost_PATH_SUFFIX}
-       )
-  
-     ENDIF( NOT Boost_INCLUDE_DIR )
-   ENDFOREACH(_boost_VER)
    IF(Boost_INCLUDE_DIR)
      # Extract Boost_VERSION and Boost_LIB_VERSION from version.hpp
--- 315,318 ----
***************
*** 330,339 ****
        MATH(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000")
        MATH(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100")
!   
      ENDIF(NOT "${Boost_VERSION}" STREQUAL "0")
    ENDIF(Boost_INCLUDE_DIR)
  
! 
!   #Setting some more suffixes for the library
    SET (Boost_LIB_PREFIX "")
    IF ( WIN32 AND Boost_USE_STATIC_LIBS )
--- 333,346 ----
        MATH(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000")
        MATH(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100")
! 
!       set(Boost_ERROR_REASON
!           "${Boost_ERROR_REASON}Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}\nBoost include path: ${Boost_INCLUDE_DIR}")
      ENDIF(NOT "${Boost_VERSION}" STREQUAL "0")
+   ELSE(Boost_INCLUDE_DIR)
+     set(Boost_ERROR_REASON
+       "${Boost_ERROR_REASON}Unable to find the Boost header files. Please set BOOST_ROOT to the root directory containing Boost or BOOST_INCLUDEDIR to the directory containing Boost's headers.")
    ENDIF(Boost_INCLUDE_DIR)
  
!   # Setting some more suffixes for the library
    SET (Boost_LIB_PREFIX "")
    IF ( WIN32 AND Boost_USE_STATIC_LIBS )
***************
*** 341,379 ****
    ENDIF ( WIN32 AND Boost_USE_STATIC_LIBS )
    SET (_boost_COMPILER "-gcc")
-   IF (MSVC71)
-     SET (_boost_COMPILER "-vc71")
-   ENDIF(MSVC71)
-   IF (MSVC80)
-     SET (_boost_COMPILER "-vc80")
-   ENDIF(MSVC80)
    IF (MSVC90)
      SET (_boost_COMPILER "-vc90")
!   ENDIF (MSVC90)
    IF (MINGW)
      EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
!       ARGS --version
        OUTPUT_VARIABLE _boost_COMPILER_VERSION
        )
!     STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.[0-9] .*" "\\1\\2"
        _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION})
      SET (_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}")
    ENDIF(MINGW)
-   IF (CYGWIN)
-     SET (_boost_COMPILER "-gcc")
-   ENDIF (CYGWIN)
    IF (UNIX)
      IF (APPLE)
!         SET (_boost_COMPILER "")
      ELSE (APPLE)
        IF (NOT CMAKE_COMPILER_IS_GNUCC)
!         # This is for the intel compiler
          SET (_boost_COMPILER "-il")
        ELSE (NOT CMAKE_COMPILER_IS_GNUCC)
!         #find out the version of gcc being used.
          EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
!             ARGS --version
              OUTPUT_VARIABLE _boost_COMPILER_VERSION
          )
!         STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.[0-9] .*" "\\1\\2"
                 _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION})
          SET (_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}")
--- 348,383 ----
    ENDIF ( WIN32 AND Boost_USE_STATIC_LIBS )
    SET (_boost_COMPILER "-gcc")
    IF (MSVC90)
      SET (_boost_COMPILER "-vc90")
!   ELSEIF (MSVC80)
!     SET (_boost_COMPILER "-vc80")
!   ELSEIF (MSVC71)
!     SET (_boost_COMPILER "-vc71")
!   ENDIF(MSVC90)
    IF (MINGW)
      EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
!       ARGS -dumpversion
        OUTPUT_VARIABLE _boost_COMPILER_VERSION
        )
!     STRING(REGEX REPLACE "([0-9])\\.([0-9])\\.[0-9]" "\\1\\2"
        _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION})
      SET (_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}")
    ENDIF(MINGW)
    IF (UNIX)
      IF (APPLE)
!       # Due to a quirk in Boost.Build, there is no compiler name
!       # mangled into library names on Mac OS X/Darwin.
!       SET (_boost_COMPILER "")
      ELSE (APPLE)
        IF (NOT CMAKE_COMPILER_IS_GNUCC)
!         # We assume that we have the Intel compiler.
          SET (_boost_COMPILER "-il")
        ELSE (NOT CMAKE_COMPILER_IS_GNUCC)
!         # Determine which version of GCC we have.
          EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
!             ARGS -dumpversion
              OUTPUT_VARIABLE _boost_COMPILER_VERSION
          )
!         STRING(REGEX REPLACE "([0-9])\\.([0-9])\\.[0-9]" "\\1\\2"
                 _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION})
          SET (_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}")
***************
*** 424,441 ****
                 ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}
                 ${Boost_LIB_PREFIX}boost_${COMPONENT}
!         PATHS  ${_boost_LIBRARIES_SEARCH_DIRS}
!         NO_DEFAULT_PATH
      )
  
-     IF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE} )
-       FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE
-           NAMES  ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${Boost_LIB_VERSION}
-                  ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION}
-                  ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}
-                  ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}
-                  ${Boost_LIB_PREFIX}boost_${COMPONENT}
-       )
-     ENDIF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE} )
- 
      FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG
          NAMES  ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION}
--- 428,434 ----
                 ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}
                 ${Boost_LIB_PREFIX}boost_${COMPONENT}
!         HINTS  ${_boost_LIBRARIES_SEARCH_DIRS}
      )
  
      FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG
          NAMES  ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION}
***************
*** 444,460 ****
                 ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}
                 ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG}
!         PATHS  ${_boost_LIBRARIES_SEARCH_DIRS}
!         NO_DEFAULT_PATH
      )
  
-     IF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG} )
-       FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG
-           NAMES  ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION}
-                ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION}
-                ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG}
-                ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}
-                ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG}
-       )
-     ENDIF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG} )
      _Boost_ADJUST_LIB_VARS(${UPPERCOMPONENT})
      IF( Boost_USE_STATIC_LIBS )
--- 437,443 ----
                 ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}
                 ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG}
!         HINTS  ${_boost_LIBRARIES_SEARCH_DIRS}
      )
  
      _Boost_ADJUST_LIB_VARS(${UPPERCOMPONENT})
      IF( Boost_USE_STATIC_LIBS )
***************
*** 470,500 ****
    )
  
-   # MESSAGE(STATUS "Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}")
-   # MESSAGE(STATUS "Boost_LIBRARIES: ${Boost_LIBRARIES}")
- 
    SET(Boost_FOUND FALSE)
    IF(Boost_INCLUDE_DIR)
      SET( Boost_FOUND TRUE )
!     IF( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" )
!       SET( Boost_FOUND FALSE )
!     ELSE( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" )
!       IF( Boost_FIND_VERSION_MINOR AND Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" )
!         SET( Boost_FOUND FALSE )
!       ELSE( Boost_FIND_VERSION_MINOR AND Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" )
!         IF( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" )
!           SET( Boost_FOUND FALSE )
!         ENDIF( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" )
!       ENDIF( Boost_FIND_VERSION_MINOR AND Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" )
!     ENDIF( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" )
!     set(_boost_CHECKED_COMPONENT FALSE)
!     FOREACH(COMPONENT ${Boost_FIND_COMPONENTS})
!       STRING(TOUPPER ${COMPONENT} COMPONENT)
!       set(_boost_CHECKED_COMPONENT TRUE)
!       IF(NOT Boost_${COMPONENT}_FOUND)
!         SET( Boost_FOUND FALSE)
!       ENDIF(NOT Boost_${COMPONENT}_FOUND)
!     ENDFOREACH(COMPONENT)
      IF( NOT Boost_LIBRARY_DIRS AND NOT _boost_CHECKED_COMPONENT )
!       # Compatibility Code for backwards compatibility with CMake 2.4
  
        # Look for the boost library path.
--- 453,553 ----
    )
  
    SET(Boost_FOUND FALSE)
    IF(Boost_INCLUDE_DIR)
      SET( Boost_FOUND TRUE )
! 
!     # Check the version of Boost against the requested version.
!     if (Boost_FIND_VERSION AND NOT Boost_FIND_VERSION_MINOR)
!       message(SEND_ERROR "When requesting a specific version of Boost, you must provide at least the major and minor version numbers, e.g., 1.34")
!     endif (Boost_FIND_VERSION AND NOT Boost_FIND_VERSION_MINOR)
!     if(Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" )
!       set( Boost_FOUND FALSE )
!       set(_Boost_VERSION_AGE "old")
!     elseif(Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" )
!       if(Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" )
!         set( Boost_FOUND FALSE )
!         set(_Boost_VERSION_AGE "old")
!       elseif(Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" )
!         if( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" )
!           set( Boost_FOUND FALSE )
!           set(_Boost_VERSION_AGE "old")
!         endif( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" )
!       endif( Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" )
!     endif( Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" )
! 
!     if (Boost_FOUND AND Boost_FIND_VERSION_EXACT)
!       # If the user requested an exact version of Boost, check
!       # that. We already know that the Boost version we have is >= the
!       # requested version.
!       set(_Boost_VERSION_AGE "new")
! 
!       # If the user didn't specify a patchlevel, it's 0.
!       if (NOT Boost_FIND_VERSION_PATCH)
!         set(Boost_FIND_VERSION_PATCH 0)
!       endif (NOT Boost_FIND_VERSION_PATCH)
!       
!       # We'll set Boost_FOUND true again if we have an exact version match.
!       set(Boost_FOUND FALSE)
!       if(Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" )
!         if(Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" )
!           if(Boost_SUBMINOR_VERSION EQUAL "${Boost_FIND_VERSION_PATCH}" )
!             set( Boost_FOUND TRUE )
!           endif(Boost_SUBMINOR_VERSION EQUAL "${Boost_FIND_VERSION_PATCH}" )
!         endif( Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" )
!       endif( Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" )
!     endif (Boost_FOUND AND Boost_FIND_VERSION_EXACT)
! 
!     if(NOT Boost_FOUND)
!       # State that we found a version of Boost that is too new or too old.
!       set(Boost_ERROR_REASON
!         "${Boost_ERROR_REASON}\nDetected version of Boost is too ${_Boost_VERSION_AGE}. Requested version was ${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
!       if (Boost_FIND_VERSION_PATCH)
!         set(Boost_ERROR_REASON 
!           "${Boost_ERROR_REASON}.${Boost_FIND_VERSION_PATCH}")
!       endif (Boost_FIND_VERSION_PATCH)
!       if (NOT Boost_FIND_VERSION_EXACT)
!         set(Boost_ERROR_REASON "${Boost_ERROR_REASON} (or newer)")
!       endif (NOT Boost_FIND_VERSION_EXACT)
!       set(Boost_ERROR_REASON "${Boost_ERROR_REASON}.")
!     endif (NOT Boost_FOUND)
! 
!     if (Boost_FOUND)
!       set(_boost_CHECKED_COMPONENT FALSE)
!       set(_Boost_MISSING_COMPONENTS)
!       foreach(COMPONENT ${Boost_FIND_COMPONENTS})
!         string(TOUPPER ${COMPONENT} COMPONENT)
!         set(_boost_CHECKED_COMPONENT TRUE)
!         if(NOT Boost_${COMPONENT}_FOUND)
!           string(TOLOWER ${COMPONENT} COMPONENT)
!           list(APPEND _Boost_MISSING_COMPONENTS ${COMPONENT})
!           set( Boost_FOUND FALSE)
!         endif(NOT Boost_${COMPONENT}_FOUND)
!       endforeach(COMPONENT)
!     endif (Boost_FOUND)
! 
!     if (_Boost_MISSING_COMPONENTS)
!       # We were unable to find some libraries, so generate a sensible
!       # error message that lists the libraries we were unable to find.
!       set(Boost_ERROR_REASON
!         "${Boost_ERROR_REASON}\nThe following Boost libraries could not be found:\n")
!       foreach(COMPONENT ${_Boost_MISSING_COMPONENTS})
!         set(Boost_ERROR_REASON
!           "${Boost_ERROR_REASON}        boost_${COMPONENT}\n")
!       endforeach(COMPONENT)
! 
!       list(LENGTH Boost_FIND_COMPONENTS Boost_NUM_COMPONENTS_WANTED)
!       list(LENGTH _Boost_MISSING_COMPONENTS Boost_NUM_MISSING_COMPONENTS)
!       if (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS})
!         set(Boost_ERROR_REASON
!           "${Boost_ERROR_REASON}No Boost libraries were found. You may need to set Boost_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.")
!       else (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS})
!         set(Boost_ERROR_REASON
!           "${Boost_ERROR_REASON}Some (but not all) of the required Boost libraries were found. You may need to install these additional Boost libraries. Alternatively, set Boost_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.")
!       endif (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS})
!     endif (_Boost_MISSING_COMPONENTS)
! 
      IF( NOT Boost_LIBRARY_DIRS AND NOT _boost_CHECKED_COMPONENT )
!       # Compatibility Code for backwards compatibility with CMake
!       # 2.4's FindBoost module.
  
        # Look for the boost library path.
***************
*** 550,555 ****
    ELSE (Boost_FOUND)
        IF (Boost_FIND_REQUIRED)
!         MESSAGE(STATUS "Boost version required: ${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.${Boost_FIND_VERSION_PATCH}, found: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
!         MESSAGE(FATAL_ERROR "Couldn't find the Boost libraries and/or include directory, or the version found is too old. Please install the Boost libraries AND development packages. You can set BOOST_ROOT, BOOST_INCLUDEDIR and BOOST_LIBRARYDIR to help find Boost.")
        ENDIF(Boost_FIND_REQUIRED)
    ENDIF(Boost_FOUND)
--- 603,607 ----
    ELSE (Boost_FOUND)
        IF (Boost_FIND_REQUIRED)
!         message(SEND_ERROR "Unable to find the requested Boost libraries.\n${Boost_ERROR_REASON}")
        ENDIF(Boost_FIND_REQUIRED)
    ENDIF(Boost_FOUND)



More information about the Cmake-commits mailing list