now in kdepimlibs

now in kdepimlibs

svn path=/trunk/KDE/kdepim/; revision=682314

--- cmake/modules/FindGpgme.cmake
+++ cmake/modules/FindGpgme.cmake
@@ -1,81 +0,0 @@
-# - Try to find the gpgme library
-# Once done this will define
-#
-#  GPGME_FOUND - system has the gpgme library
-#  GPGME_INCLUDES - the gpgme include directory
-#  GPGME_LIBRARIES - The libraries needed to use gpgme
-
-include (MacroEnsureVersion)
-
-# if not already in cache
-if (NOT GPGME_LIBRARIES OR NOT GPGME_INCLUDES)
-  set(GPGME_FOUND FALSE)
-
-  FIND_PROGRAM(GPGMECONFIG_EXECUTABLE NAMES gpgme-config)
-
-  # if gpgme-config has been found
-  if (GPGMECONFIG_EXECUTABLE)
-
-	message(STATUS "Found gpgme-config")
-
-    EXEC_PROGRAM(${GPGMECONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE GPGME_VERSION)
-
-    MACRO_ENSURE_VERSION( "0.4.5" ${GPGME_VERSION} GPGME_INSTALLED_VERSION_OK )
-
-    if (GPGME_INSTALLED_VERSION_OK)
-
-      EXEC_PROGRAM(${GPGMECONFIG_EXECUTABLE} ARGS --libs OUTPUT_VARIABLE GPGME_LIBRARIES)
-
-      # append -lgpg-error to the list of libraries, if necessary
-      if (NOT GPGME_LIBRARIES MATCHES "lgpg-error")
-        set(GPGME_LIBRARIES "${GPGME_LIBRARIES} -lgpg-error")
-      endif (NOT GPGME_LIBRARIES MATCHES "lgpg-error")
-
-      EXEC_PROGRAM(${GPGMECONFIG_EXECUTABLE} ARGS --cflags OUTPUT_VARIABLE GPGME_CFLAGS)
-      if (GPGME_CFLAGS)
-        string(REGEX REPLACE "(\r?\n)+$" "" GPGME_CFLAGS "${GPGME_CFLAGS}")
-        string(REGEX REPLACE " *-I" ";" GPGME_INCLUDES "${GPGME_CFLAGS}")
-      endif (GPGME_CFLAGS)
-
-      # ensure that they are cached
-      set(GPGME_INCLUDES ${GPGME_INCLUDES} CACHE INTERNAL "The gpgme include paths")
-      set(GPGME_LIBRARIES ${GPGME_LIBRARIES} CACHE INTERNAL "The gpgme libraries")
-
-    else (GPGME_INSTALLED_VERSION_OK)
-      message(STATUS "The installed version of gpgme is too old: ${GPGME_VERSION}")
-    endif (GPGME_INSTALLED_VERSION_OK)
-
-  endif (GPGMECONFIG_EXECUTABLE)
-
-  if (GPGME_LIBRARIES)
-      set(GPGME_FOUND TRUE)
-  endif (GPGME_LIBRARIES)
-
-else (NOT GPGME_LIBRARIES OR NOT GPGME_INCLUDES)
-  # It was found before, assume it's OK
-  set(GPGME_FOUND TRUE)
-endif (NOT GPGME_LIBRARIES OR NOT GPGME_INCLUDES)
-
-macro_bool_to_01(GPGME_FOUND HAVE_GPGME)
-
-if (NOT Gpgme_FIND_QUIETLY)
-   if (GPGME_FOUND)
-      message(STATUS "Found gpgme.")
-   else (GPGME_FOUND)
-      message(STATUS "gpg not found.")
-   endif (GPGME_FOUND)
-   if (Gpgme_FIND_REQUIRED)
-      set (_req TRUE)
-   else (Gpgme_FIND_REQUIRED)
-      set (_req FALSE)
-   endif (Gpgme_FIND_REQUIRED)
-   macro_log_feature(GPGME_FOUND "gpgme" "GnuPG Made Easy Development Libraries" "http://www.gnupg.org/related_software/gpgme" ${_req} "0.4.5 or greater" "Needed to provide GNU Privacy Guard support in KDE PIM applications. Necessary to compile many PIM application, including KMail.")
-else (NOT Gpgme_FIND_QUIETLY)
-   if (NOT GPGME_FOUND)
-      if (Gpgme_FIND_REQUIRED)
-         message(FATAL_ERROR "")
-      endif (Gpgme_FIND_REQUIRED)
-   endif (NOT GPGME_FOUND)
-endif (NOT Gpgme_FIND_QUIETLY)
-
-


cmake/modules/FindVIGRA.cmake: Search for configVersion.hxx or config_version.hxx. Later versions of VIGRA use the latter.

--- cmake/modules/FindVIGRA.cmake
+++ cmake/modules/FindVIGRA.cmake
@@ -19,7 +19,7 @@
 endif()

 # configVersion.hxx only present, after build of Vigra
-FIND_PATH(VIGRA_INCLUDE_DIR vigra/configVersion.hxx PATHS ${VIGRA_ROOT}/include ENV CPLUS_INCLUDE_PATH)
+FIND_PATH(VIGRA_INCLUDE_DIR NAMES vigra/configVersion.hxx vigra/config_version.hxx PATHS ${VIGRA_ROOT}/include ENV CPLUS_INCLUDE_PATH)

 if (NOT "${VIGRA_ROOT}" STREQUAL "")
     set(VIGRA_LIBRARY_DIR ${VIGRA_ROOT}/lib)


qt5: Set QT_IMPORTS_DIR on qt5

qt5: Set QT_IMPORTS_DIR on qt5

--- cmake/modules/QtHelpers.cmake
+++ cmake/modules/QtHelpers.cmake
@@ -31,6 +31,20 @@
         set(QT_QTCORE_LIBRARY ${Qt5Core_LIBRARIES})
         set(QT_QTGUI_LIBRARY ${Qt5Widgets_LIBRARIES})
         set(QT_INCLUDE_DIR ${Qt5Widgets_INCLUDE_DIRS})
+
+        function(_QT5_QUERY_QMAKE VAR RESULT)
+          get_target_property(_QMAKE ${Qt5Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION)
+          execute_process(COMMAND "${_QMAKE}" -query ${VAR}
+            RESULT_VARIABLE return_code
+            OUTPUT_VARIABLE output
+            OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE)
+          if(NOT return_code)
+            file(TO_CMAKE_PATH "${output}" output)
+            set(${RESULT} ${output} PARENT_SCOPE)
+          endif()
+        endfunction()
+
+        _qt5_query_qmake(QT_INSTALL_IMPORTS QT_IMPORTS_DIR)
     endif()
     find_package(Qt5Declarative)
     if (Qt5Declarative_FOUND)


Remove FindBoost.cmake

Remove FindBoost.cmake

--- cmake_modules/FindBoost.cmake
+++ cmake_modules/FindBoost.cmake
@@ -1,1145 +0,0 @@
-# - Try to find Boost include dirs and libraries
-# Usage of this module as follows:
-#
-# NOTE: Take note of the Boost_ADDITIONAL_VERSIONS variable below.
-# Due to Boost naming conventions and limitations in CMake this find
-# module is NOT future safe with respect to Boost version numbers,
-# and may break.
-#
-# == Using Header-Only libraries from within Boost: ==
-#
-#   find_package( Boost 1.36.0 )
-#   if(Boost_FOUND)
-#      include_directories(${Boost_INCLUDE_DIRS})
-#      add_executable(foo foo.cc)
-#   endif()
-#
-#
-# == Using actual libraries from within Boost: ==
-#
-#   set(Boost_USE_STATIC_LIBS        ON)
-#   set(Boost_USE_MULTITHREADED      ON)
-#   set(Boost_USE_STATIC_RUNTIME    OFF)
-#   find_package( Boost 1.36.0 COMPONENTS date_time filesystem system ... )
-#
-#   if(Boost_FOUND)
-#      include_directories(${Boost_INCLUDE_DIRS})
-#      add_executable(foo foo.cc)
-#      target_link_libraries(foo ${Boost_LIBRARIES})
-#   endif()
-#
-#
-# The components list needs to contain actual names of boost libraries only,
-# such as "date_time" for "libboost_date_time".  If you're using parts of
-# Boost that contain header files only (e.g. foreach) you do not need to
-# specify COMPONENTS.
-#
-# You should provide a minimum version number that should be used. If you provide this
-# version number and specify the REQUIRED attribute, this module will fail if it
-# can't find the specified or a later version. If you specify a version number this is
-# automatically put into the considered list of version numbers and thus doesn't need
-# to be specified in the Boost_ADDITIONAL_VERSIONS variable (see below).
-#
-# NOTE for Visual Studio Users:
-#     Automatic linking is used on MSVC & Borland compilers by default when
-#     #including things in Boost.  It's important to note that setting
-#     Boost_USE_STATIC_LIBS to OFF is NOT enough to get you dynamic linking,
-#     should you need this feature.  Automatic linking typically uses static
-#     libraries with a few exceptions (Boost.Python is one).
-#
-#     Please see the section below near Boost_LIB_DIAGNOSTIC_DEFINITIONS for
-#     more details.  Adding a TARGET_LINK_LIBRARIES() as shown in the example
-#     above appears to cause VS to link dynamically if Boost_USE_STATIC_LIBS
-#     gets set to OFF.  It is suggested you avoid automatic linking since it
-#     will make your application less portable.
-#
-# =========== The mess that is Boost_ADDITIONAL_VERSIONS (sorry?) ============
-#
-# OK, so the Boost_ADDITIONAL_VERSIONS variable can be used to specify a list of
-# boost version numbers that should be taken into account when searching
-# for Boost. Unfortunately boost puts the version number into the
-# actual filename for the libraries, so this variable will certainly be needed
-# in the future when new Boost versions are released.
-#
-# Currently this module searches for the following version numbers:
-# 1.33, 1.33.0, 1.33.1, 1.34, 1.34.0, 1.34.1, 1.35, 1.35.0, 1.35.1,
-# 1.36, 1.36.0, 1.36.1, 1.37, 1.37.0, 1.38, 1.38.0, 1.39, 1.39.0,
-# 1.40, 1.40.0, 1.41, 1.41.0, 1.42, 1.42.0, 1.43, 1.43.0, 1.44, 1.44.0
-#
-# NOTE: If you add a new major 1.x version in Boost_ADDITIONAL_VERSIONS you should
-# add both 1.x and 1.x.0 as shown above.  Official Boost include directories
-# omit the 3rd version number from include paths if it is 0 although not all
-# binary Boost releases do so.
-#
-# SET(Boost_ADDITIONAL_VERSIONS "1.78" "1.78.0" "1.79" "1.79.0")
-#
-# ===================================== ============= ========================
-#
-# Variables used by this module, they can change the default behaviour and
-# need to be set before calling find_package:
-#
-#   Boost_USE_MULTITHREADED      Can be set to OFF to use the non-multithreaded
-#                                boost libraries.  If not specified, defaults
-#                                to ON.
-#
-#   Boost_USE_STATIC_LIBS        Can be set to ON to force the use of the static
-#                                boost libraries. Defaults to OFF.
-#
-#   Boost_NO_SYSTEM_PATHS        Set to TRUE to suppress searching in system
-#                                paths (or other locations outside of BOOST_ROOT
-#                                or BOOST_INCLUDEDIR).  Useful when specifying
-#                                BOOST_ROOT. Defaults to OFF.
-#                                  [Since CMake 2.8.3]
-#
-#   Boost_USE_STATIC_RUNTIME     If enabled, searches for boost libraries
-#                                linked against a static C++ standard library
-#                                ('s' ABI tag). This option should be set to
-#                                ON or OFF because the default behavior
-#                                if not specified is platform dependent
-#                                for backwards compatibility.
-#                                  [Since CMake 2.8.3]
-#
-#   Boost_USE_DEBUG_PYTHON       If enabled, searches for boost libraries
-#                                compiled against a special debug build of
-#                                Python ('y' ABI tag). Defaults to OFF.
-#                                  [Since CMake 2.8.3]
-#
-#   Boost_USE_STLPORT            If enabled, searches for boost libraries
-#                                compiled against the STLPort standard
-#                                library ('p' ABI tag). Defaults to OFF.
-#                                  [Since CMake 2.8.3]
-#
-#   Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS
-#                                If enabled, searches for boost libraries
-#                                compiled against the deprecated STLPort
-#                                "native iostreams" feature ('n' ABI tag).
-#                                Defaults to OFF.
-#                                  [Since CMake 2.8.3]
-#
-# Other Variables used by this module which you may want to set.
-#
-#   Boost_ADDITIONAL_VERSIONS    A list of version numbers to use for searching
-#                                the boost include directory.  Please see
-#                                the documentation above regarding this
-#                                annoying, but necessary variable :(
-#
-#   Boost_DEBUG                  Set this to TRUE to enable debugging output
-#                                of FindBoost.cmake if you are having problems.
-#                                Please enable this before filing any bug
-#                                reports.
-#
-#   Boost_DETAILED_FAILURE_MSG   FindBoost doesn't output detailed information
-#                                about why it failed or how to fix the problem
-#                                unless this is set to TRUE or the REQUIRED
-#                                keyword is specified in find_package().
-#                                  [Since CMake 2.8.0]
-#
-#   Boost_COMPILER               Set this to the compiler suffix used by Boost
-#                                (e.g. "-gcc43") if FindBoost has problems finding
-#                                the proper Boost installation
-#
-#   Boost_THREADAPI                When building boost.thread, sometimes the name of the
-#                                library contains an additional "pthread" or "win32"
-#                                string known as the threadapi.  This can happen when
-#                                compiling against pthreads on Windows or win32 threads
-#                                on Cygwin.  You may specify this variable and if set
-#                                when FindBoost searches for the Boost threading library
-#                                it will first try to match the threadapi you specify.
-#                                  For Example: libboost_thread_win32-mgw45-mt-1_43.a
-#                                might be found if you specified "win32" here before
-#                                falling back on libboost_thread-mgw45-mt-1_43.a.
-#                                  [Since CMake 2.8.3]
-#
-#   Boost_REALPATH               Resolves symbolic links for discovered boost libraries
-#                                to assist with packaging.  For example, instead of
-#                                Boost_SYSTEM_LIBRARY_RELEASE being resolved to
-#                                "/usr/lib/libboost_system.so" it would be
-#                                "/usr/lib/libboost_system.so.1.42.0" instead.
-#                                This does not affect linking and should not be
-#                                enabled unless the user needs this information.
-#                                  [Since CMake 2.8.3]
-#
-
-
-#
-# These last three variables are available also as environment variables:
-#
-#   BOOST_ROOT or BOOSTROOT      The preferred installation prefix for searching for
-#                                Boost.  Set this if the module has problems finding
-#                                the proper Boost installation.  To prevent falling
-#                                back on the system paths, set Boost_NO_SYSTEM_PATHS
-#                                to true.
-#
-#   BOOST_INCLUDEDIR             Set this to the include directory of Boost, if the
-#                                module has problems finding the proper Boost installation
-#
-#   BOOST_LIBRARYDIR             Set this to the lib directory of Boost, if the
-#                                module has problems finding the proper Boost installation
-#
-# Variables defined by this module:
-#
-#   Boost_FOUND                         System has Boost, this means the include dir was
-#                                       found, as well as all the libraries specified in
-#                                       the COMPONENTS list.
-#
-#   Boost_INCLUDE_DIRS                  Boost include directories: not cached
-#
-#   Boost_INCLUDE_DIR                   This is almost the same as above, but this one is
-#                                       cached and may be modified by advanced users
-#
-#   Boost_LIBRARIES                     Link to these to use the Boost libraries that you
-#                                       specified: not cached
-#
-#   Boost_LIBRARY_DIRS                  The path to where the Boost library files are.
-#
-#   Boost_VERSION                       The version number of the boost libraries that
-#                                       have been found, same as in version.hpp from Boost
-#
-#   Boost_LIB_VERSION                   The version number in filename form as
-#                                       it's appended to the library filenames
-#
-#   Boost_MAJOR_VERSION                 major version number of boost
-#   Boost_MINOR_VERSION                 minor version number of boost
-#   Boost_SUBMINOR_VERSION              subminor version number of boost
-#
-#   Boost_LIB_DIAGNOSTIC_DEFINITIONS    [WIN32 Only] You can call
-#                                       add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
-#                                       to have diagnostic information about Boost's
-#                                       automatic linking outputted during compilation time.
-#
-# For each component you specify in find_package(), the following (UPPER-CASE)
-# variables are set.  You can use these variables if you would like to pick and
-# choose components for your targets instead of just using Boost_LIBRARIES.
-#
-#   Boost_${COMPONENT}_FOUND            True IF the Boost library "component" was found.
-#
-#   Boost_${COMPONENT}_LIBRARY          Contains the libraries for the specified Boost
-#                                       "component" (includes debug and optimized keywords
-#                                       when needed).
-
-#=============================================================================
-# Copyright 2006-2009 Kitware, Inc.
-# Copyright 2006-2008 Andreas Schneider <mail@cynapses.org>
-# Copyright 2007      Wengo
-# Copyright 2007      Mike Jackson
-# Copyright 2008      Andreas Pakulat <apaku@gmx.de>
-# Copyright 2008-2010 Philip Lowman <philip@yhbt.com>
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-#  License text for the above reference.)
-
-#-------------------------------------------------------------------------------
-#  FindBoost functions & macros
-#
-############################################
-#
-# Check the existence of the libraries.
-#
-############################################
-# This macro was taken directly from the FindQt4.cmake file that is included
-# with the CMake distribution. This is NOT my work. All work was done by the
-# original authors of the FindQt4.cmake file. Only minor modifications were
-# made to remove references to Qt and make this file more generally applicable
-# And ELSE/ENDIF pairs were removed for readability.
-#########################################################################
-
-MACRO (_Boost_ADJUST_LIB_VARS basename)
-  IF (Boost_INCLUDE_DIR )
-    IF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE)
-      # if the generator supports configuration types then set
-      # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value
-      IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
-        SET(Boost_${basename}_LIBRARY optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG})
-      ELSE()
-        # if there are no configuration types and CMAKE_BUILD_TYPE has no value
-        # then just use the release libraries
-        SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE} )
-      ENDIF()
-      # FIXME: This probably should be set for both cases
-      SET(Boost_${basename}_LIBRARIES optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG})
-    ENDIF()
-
-    # if only the release version was found, set the debug variable also to the release version
-    IF (Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG)
-      SET(Boost_${basename}_LIBRARY_DEBUG ${Boost_${basename}_LIBRARY_RELEASE})
-      SET(Boost_${basename}_LIBRARY       ${Boost_${basename}_LIBRARY_RELEASE})
-      SET(Boost_${basename}_LIBRARIES     ${Boost_${basename}_LIBRARY_RELEASE})
-    ENDIF()
-
-    # if only the debug version was found, set the release variable also to the debug version
-    IF (Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE)
-      SET(Boost_${basename}_LIBRARY_RELEASE ${Boost_${basename}_LIBRARY_DEBUG})
-      SET(Boost_${basename}_LIBRARY         ${Boost_${basename}_LIBRARY_DEBUG})
-      SET(Boost_${basename}_LIBRARIES       ${Boost_${basename}_LIBRARY_DEBUG})
-    ENDIF()
-
-    IF (Boost_${basename}_LIBRARY)
-      set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY} CACHE FILEPATH "The Boost ${basename} library")
-
-      # Remove superfluous "debug" / "optimized" keywords from
-      # Boost_LIBRARY_DIRS
-      FOREACH(_boost_my_lib ${Boost_${basename}_LIBRARY})
-        GET_FILENAME_COMPONENT(_boost_my_lib_path "${_boost_my_lib}" PATH)
-        LIST(APPEND Boost_LIBRARY_DIRS ${_boost_my_lib_path})
-      ENDFOREACH()
-      LIST(REMOVE_DUPLICATES Boost_LIBRARY_DIRS)
-
-      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)
-
-  ENDIF (Boost_INCLUDE_DIR )
-  # Make variables changeble to the advanced user
-  MARK_AS_ADVANCED(
-      Boost_${basename}_LIBRARY
-      Boost_${basename}_LIBRARY_RELEASE
-      Boost_${basename}_LIBRARY_DEBUG
-  )
-ENDMACRO (_Boost_ADJUST_LIB_VARS)
-
-#-------------------------------------------------------------------------------
-
-#
-# Runs compiler with "-dumpversion" and parses major/minor
-# version with a regex.
-#
-FUNCTION(_Boost_COMPILER_DUMPVERSION _OUTPUT_VERSION)
-
-  EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
-    ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
-    OUTPUT_VARIABLE _boost_COMPILER_VERSION
-  )
-  STRING(REGEX REPLACE "([0-9])\\.([0-9])(\\.[0-9])?" "\\1\\2"
-    _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION})
-
-  SET(${_OUTPUT_VERSION} ${_boost_COMPILER_VERSION} PARENT_SCOPE)
-ENDFUNCTION()
-
-#
-# A convenience function for marking desired components
-# as found or not
-#
-function(_Boost_MARK_COMPONENTS_FOUND _yes_or_no)
-  foreach(COMPONENT ${Boost_FIND_COMPONENTS})
-    string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
-    set(Boost_${UPPERCOMPONENT}_FOUND ${_yes_or_no} CACHE INTERNAL "Whether the Boost ${COMPONENT} library found" FORCE)
-  endforeach()
-endfunction()
-
-#
-# Take a list of libraries with "thread" in it
-# and prepend duplicates with "thread_${Boost_THREADAPI}"
-# at the front of the list
-#
-function(_Boost_PREPEND_LIST_WITH_THREADAPI _output)
-  set(_orig_libnames ${ARGN})
-  string(REPLACE "thread" "thread_${Boost_THREADAPI}" _threadapi_libnames ${_orig_libnames})
-  set(${_output} ${_threadapi_libnames} ${_orig_libnames} PARENT_SCOPE)
-endfunction()
-
-#
-# If a library is found, replace its cache entry with its REALPATH
-#
-function(_Boost_SWAP_WITH_REALPATH _library _docstring)
-  if(${_library})
-    get_filename_component(_boost_filepathreal ${${_library}} REALPATH)
-    unset(${_library} CACHE)
-    set(${_library} ${_boost_filepathreal} CACHE FILEPATH "${_docstring}")
-  endif()
-endfunction()
-
-#
-# End functions/macros
-#
-#-------------------------------------------------------------------------------
-
-
-
-
-IF(NOT DEFINED Boost_USE_MULTITHREADED)
-    SET(Boost_USE_MULTITHREADED TRUE)
-ENDIF()
-
-if(Boost_FIND_VERSION_EXACT)
-  # The version may appear in a directory with or without the patch
-  # level, even when the patch level is non-zero.
-  set(_boost_TEST_VERSIONS
-    "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.${Boost_FIND_VERSION_PATCH}"
-    "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
-else(Boost_FIND_VERSION_EXACT)
-  # The user has not requested an exact version.  Among known
-  # versions, find those that are acceptable to the user request.
-  set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
-    "1.44.0" "1.44" "1.43.0" "1.43" "1.42.0" "1.42"
-    "1.41.0" "1.41" "1.40.0" "1.40" "1.39.0" "1.39" "1.38.0" "1.38" "1.37.0" "1.37"
-    "1.36.1" "1.36.0" "1.36" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0"
-    "1.34" "1.33.1" "1.33.0" "1.33")
-  set(_boost_TEST_VERSIONS)
-  if(Boost_FIND_VERSION)
-    set(_Boost_FIND_VERSION_SHORT "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
-    # Select acceptable versions.
-    foreach(version ${_Boost_KNOWN_VERSIONS})
-      if(NOT "${version}" VERSION_LESS "${Boost_FIND_VERSION}")
-        # This version is high enough.
-        list(APPEND _boost_TEST_VERSIONS "${version}")
-      elseif("${version}.99" VERSION_EQUAL "${_Boost_FIND_VERSION_SHORT}.99")
-        # This version is a short-form for the requested version with
-        # the patch level dropped.
-        list(APPEND _boost_TEST_VERSIONS "${version}")
-      endif()
-    endforeach(version)
-  else(Boost_FIND_VERSION)
-    # Any version is acceptable.
-    set(_boost_TEST_VERSIONS "${_Boost_KNOWN_VERSIONS}")
-  endif(Boost_FIND_VERSION)
-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)
-
-SET( _boost_IN_CACHE TRUE)
-IF(Boost_INCLUDE_DIR)
-
-  # On versions < 1.35, remove the System library from the considered list
-  # since it wasn't added until 1.35.
-  if(Boost_VERSION AND Boost_FIND_COMPONENTS)
-     math(EXPR _boost_maj "${Boost_VERSION} / 100000")
-     math(EXPR _boost_min "${Boost_VERSION} / 100 % 1000")
-     if(${_boost_maj}.${_boost_min} VERSION_LESS 1.35)
-       list(REMOVE_ITEM Boost_FIND_COMPONENTS system)
-     endif()
-  endif()
-
-  FOREACH(COMPONENT ${Boost_FIND_COMPONENTS})
-    STRING(TOUPPER ${COMPONENT} COMPONENT)
-    IF(NOT Boost_${COMPONENT}_FOUND)
-      SET( _boost_IN_CACHE FALSE)
-    ENDIF(NOT Boost_${COMPONENT}_FOUND)
-  ENDFOREACH(COMPONENT)
-ELSE(Boost_INCLUDE_DIR)
-  SET( _boost_IN_CACHE FALSE)
-ENDIF(Boost_INCLUDE_DIR)
-
-IF (_boost_IN_CACHE)
-  # in cache already
-  SET(Boost_FOUND TRUE)
-  FOREACH(COMPONENT ${Boost_FIND_COMPONENTS})
-    STRING(TOUPPER ${COMPONENT} COMPONENT)
-    _Boost_ADJUST_LIB_VARS( ${COMPONENT} )
-    SET(Boost_LIBRARIES ${Boost_LIBRARIES} ${Boost_${COMPONENT}_LIBRARY})
-  ENDFOREACH(COMPONENT)
-  SET(Boost_INCLUDE_DIRS ${Boost_INCLUDE_DIR})
-  IF(Boost_VERSION AND NOT "${Boost_VERSION}" STREQUAL "0")
-    MATH(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000")
-    MATH(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000")
-    MATH(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100")
-  ENDIF(Boost_VERSION AND NOT "${Boost_VERSION}" STREQUAL "0")
-  if(Boost_DEBUG)
-      message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                     "boost ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION} "
-                     "is already in the cache.  To view debugging messages, please clear the cache.")
-  endif()
-ELSE (_boost_IN_CACHE)
-  # Need to search for boost
-  if(Boost_DEBUG)
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "Boost not in cache")
-    # Output some of their choices
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "_boost_TEST_VERSIONS = ${_boost_TEST_VERSIONS}")
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "Boost_USE_MULTITHREADED = ${Boost_USE_MULTITHREADED}")
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "Boost_USE_STATIC_LIBS = ${Boost_USE_STATIC_LIBS}")
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "Boost_USE_STATIC_RUNTIME = ${Boost_USE_STATIC_RUNTIME}")
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "Boost_ADDITIONAL_VERSIONS = ${Boost_ADDITIONAL_VERSIONS}")
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "Boost_NO_SYSTEM_PATHS = ${Boost_NO_SYSTEM_PATHS}")
-  endif()
-
-  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_SYSTEM
-    C:/boost/include
-    C:/boost
-    "$ENV{ProgramFiles}/boost/include"
-    "$ENV{ProgramFiles}/boost"
-    /sw/local/include
-  )
-
-  # If Boost_ROOT was defined, gently correct the user
-  if(Boost_ROOT)
-    message("WARNING: Boost_ROOT was set which is incorrect and is being ignored.  "
-            "You need to use BOOST_ROOT instead.  "
-            "Also, we suggest setting Boost_NO_SYSTEM_PATHS.")
-  endif()
-
-  # 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)
-  ENDIF( BOOST_ROOT )
-
-  if(Boost_DEBUG)
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "Declared as CMake or Environmental Variables:")
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "  BOOST_ROOT = ${BOOST_ROOT}")
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "  BOOST_INCLUDEDIR = ${BOOST_INCLUDEDIR}")
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "  BOOST_LIBRARYDIR = ${BOOST_LIBRARYDIR}")
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                   "_boost_TEST_VERSIONS = ${_boost_TEST_VERSIONS}")
-  endif()
-
-  if( Boost_NO_SYSTEM_PATHS)
-    set(_boost_FIND_OPTIONS NO_CMAKE_SYSTEM_PATH)
-  else()
-    set(_boost_INCLUDE_SEARCH_DIRS ${_boost_INCLUDE_SEARCH_DIRS_SYSTEM})
-  endif()
-
-  if( BOOST_ROOT )
-    set(_boost_INCLUDE_SEARCH_DIRS
-      ${BOOST_ROOT}/include
-      ${BOOST_ROOT}
-      ${_boost_INCLUDE_SEARCH_DIRS})
-  endif()
-
-  # prepend BOOST_INCLUDEDIR to search path if specified
-  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 )
-
-  # ------------------------------------------------------------------------
-  #  Search for Boost include DIR
-  # ------------------------------------------------------------------------
-  # Try to find Boost by stepping backwards through the Boost versions
-  # we know about.
-  IF( NOT Boost_INCLUDE_DIR )
-    # Build a list of path suffixes for each version.
-    SET(_boost_PATH_SUFFIXES)
-    FOREACH(_boost_VER ${_boost_TEST_VERSIONS})
-      # 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_BOOSTIFIED_VERSION)
-
-      # Transform 1.35 => 1_35 and 1.36.0 => 1_36_0
-      IF(_boost_VER MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+")
-          STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3"
-            _boost_BOOSTIFIED_VERSION ${_boost_VER})
-      ELSEIF(_boost_VER MATCHES "[0-9]+\\.[0-9]+")
-          STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2"
-            _boost_BOOSTIFIED_VERSION ${_boost_VER})
-      ENDIF()
-
-      list(APPEND _boost_PATH_SUFFIXES "boost-${_boost_BOOSTIFIED_VERSION}")
-      list(APPEND _boost_PATH_SUFFIXES "boost_${_boost_BOOSTIFIED_VERSION}")
-
-    ENDFOREACH(_boost_VER)
-
-    if(Boost_DEBUG)
-      message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                     "Include debugging info:")
-      message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                     "  _boost_INCLUDE_SEARCH_DIRS = ${_boost_INCLUDE_SEARCH_DIRS}")
-      message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                     "  _boost_PATH_SUFFIXES = ${_boost_PATH_SUFFIXES}")
-    endif()
-
-    # Look for a standard boost header file.
-    FIND_PATH(Boost_INCLUDE_DIR
-      NAMES         boost/config.hpp
-      HINTS         ${_boost_INCLUDE_SEARCH_DIRS}
-      PATH_SUFFIXES ${_boost_PATH_SUFFIXES}
-      ${_boost_FIND_OPTIONS}
-      )
-  ENDIF( NOT Boost_INCLUDE_DIR )
-
-  # ------------------------------------------------------------------------
-  #  Extract version information from version.hpp
-  # ------------------------------------------------------------------------
-
-  IF(Boost_INCLUDE_DIR)
-    # Extract Boost_VERSION and Boost_LIB_VERSION from version.hpp
-    # Read the whole file:
-    #
-    SET(BOOST_VERSION 0)
-    SET(BOOST_LIB_VERSION "")
-    FILE(READ "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS)
-    if(Boost_DEBUG)
-      message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                     "location of version.hpp: ${Boost_INCLUDE_DIR}/boost/version.hpp")
-    endif()
-
-    STRING(REGEX REPLACE ".*#define BOOST_VERSION ([0-9]+).*" "\\1" Boost_VERSION "${_boost_VERSION_HPP_CONTENTS}")
-    STRING(REGEX REPLACE ".*#define BOOST_LIB_VERSION \"([0-9_]+)\".*" "\\1" Boost_LIB_VERSION "${_boost_VERSION_HPP_CONTENTS}")
-
-    SET(Boost_LIB_VERSION ${Boost_LIB_VERSION} CACHE INTERNAL "The library version string for boost libraries")
-    SET(Boost_VERSION ${Boost_VERSION} CACHE INTERNAL "The version number for boost libraries")
-
-    IF(NOT "${Boost_VERSION}" STREQUAL "0")
-      MATH(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000")
-      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")
-    if(Boost_DEBUG)
-      message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                     "version.hpp reveals boost "
-                     "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
-    endif()
-  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)
-
-  # ------------------------------------------------------------------------
-  #  Suffix initialization and compiler suffix detection.
-  # ------------------------------------------------------------------------
-
-  # Setting some more suffixes for the library
-  SET (Boost_LIB_PREFIX "")
-  if ( WIN32 AND Boost_USE_STATIC_LIBS AND NOT CYGWIN)
-    SET (Boost_LIB_PREFIX "lib")
-  endif()
-
-  if (Boost_COMPILER)
-    set(_boost_COMPILER ${Boost_COMPILER})
-    if(Boost_DEBUG)
-      message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                     "using user-specified Boost_COMPILER = ${_boost_COMPILER}")
-    endif()
-  else(Boost_COMPILER)
-    # Attempt to guess the compiler suffix
-    # NOTE: this is not perfect yet, if you experience any issues
-    # please report them and use the Boost_COMPILER variable
-    # to work around the problems.
-    if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel"
-        OR "${CMAKE_CXX_COMPILER}" MATCHES "icl"
-        OR "${CMAKE_CXX_COMPILER}" MATCHES "icpc")
-      if(WIN32)
-        set (_boost_COMPILER "-iw")
-      else()
-        set (_boost_COMPILER "-il")
-      endif()
-    elseif (MSVC90)
-      SET (_boost_COMPILER "-vc90")
-    elseif (MSVC10)
-      SET (_boost_COMPILER "-vc100")
-    elseif (MSVC80)
-      SET (_boost_COMPILER "-vc80")
-    elseif (MSVC71)
-      SET (_boost_COMPILER "-vc71")
-    elseif (MSVC70) # Good luck!
-      SET (_boost_COMPILER "-vc7") # yes, this is correct
-    elseif (MSVC60) # Good luck!
-      SET (_boost_COMPILER "-vc6") # yes, this is correct
-    elseif (BORLAND)
-      SET (_boost_COMPILER "-bcb")
-    elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "SunPro")
-      set(_boost_COMPILER "-sw")
-    elseif (MINGW)
-      if(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34)
-          SET(_boost_COMPILER "-mgw") # no GCC version encoding prior to 1.34
-      else()
-        _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION)
-        SET (_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}")
-      endif()
-    elseif (UNIX)
-      if (CMAKE_COMPILER_IS_GNUCXX)
-        if(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34)
-          SET(_boost_COMPILER "-gcc") # no GCC version encoding prior to 1.34
-        else()
-          _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION)
-          # Determine which version of GCC we have.
-          IF(APPLE)
-            IF(Boost_MINOR_VERSION)
-              IF(${Boost_MINOR_VERSION} GREATER 35)
-                # In Boost 1.36.0 and newer, the mangled compiler name used
-                # on Mac OS X/Darwin is "xgcc".
-                SET(_boost_COMPILER "-xgcc${_boost_COMPILER_VERSION}")
-              ELSE(${Boost_MINOR_VERSION} GREATER 35)
-                # In Boost <= 1.35.0, there is no mangled compiler name for
-                # the Mac OS X/Darwin version of GCC.
-                SET(_boost_COMPILER "")
-              ENDIF(${Boost_MINOR_VERSION} GREATER 35)
-            ELSE(Boost_MINOR_VERSION)
-              # We don't know the Boost version, so assume it's
-              # pre-1.36.0.
-              SET(_boost_COMPILER "")
-            ENDIF(Boost_MINOR_VERSION)
-          ELSE()
-            SET (_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}")
-          ENDIF()
-        endif()
-      endif (CMAKE_COMPILER_IS_GNUCXX)
-    endif()
-    if(Boost_DEBUG)
-      message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-        "guessed _boost_COMPILER = ${_boost_COMPILER}")
-    endif()
-  endif(Boost_COMPILER)
-
-  set (_boost_MULTITHREADED "-mt")
-  if( NOT Boost_USE_MULTITHREADED )
-    set (_boost_MULTITHREADED "")
-  endif()
-  if(Boost_DEBUG)
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-      "_boost_MULTITHREADED = ${_boost_MULTITHREADED}")
-  endif()
-
-  #======================
-  # Systematically build up the Boost ABI tag
-  # http://boost.org/doc/libs/1_41_0/more/getting_started/windows.html#library-naming
-  set( _boost_RELEASE_ABI_TAG "-")
-  set( _boost_DEBUG_ABI_TAG   "-")
-  # Key       Use this library when:
-  #  s        linking statically to the C++ standard library and
-  #           compiler runtime support libraries.
-  if(Boost_USE_STATIC_RUNTIME)
-    set( _boost_RELEASE_ABI_TAG "${_boost_RELEASE_ABI_TAG}s")
-    set( _boost_DEBUG_ABI_TAG   "${_boost_DEBUG_ABI_TAG}s")
-  endif()
-  #  g        using debug versions of the standard and runtime
-  #           support libraries
-  if(WIN32)
-    if(MSVC OR "${CMAKE_CXX_COMPILER}" MATCHES "icl"
-            OR "${CMAKE_CXX_COMPILER}" MATCHES "icpc")
-      set(_boost_DEBUG_ABI_TAG "${_boost_DEBUG_ABI_TAG}g")
-    endif()
-  endif()
-  #  y        using special debug build of python
-  if(Boost_USE_DEBUG_PYTHON)
-    set(_boost_DEBUG_ABI_TAG "${_boost_DEBUG_ABI_TAG}y")
-  endif()
-  #  d        using a debug version of your code
-  set(_boost_DEBUG_ABI_TAG "${_boost_DEBUG_ABI_TAG}d")
-  #  p        using the STLport standard library rather than the
-  #           default one supplied with your compiler
-  if(Boost_USE_STLPORT)
-    set( _boost_RELEASE_ABI_TAG "${_boost_RELEASE_ABI_TAG}p")
-    set( _boost_DEBUG_ABI_TAG   "${_boost_DEBUG_ABI_TAG}p")
-  endif()
-  #  n        using the STLport deprecated "native iostreams" feature
-  if(Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS)
-    set( _boost_RELEASE_ABI_TAG "${_boost_RELEASE_ABI_TAG}n")
-    set( _boost_DEBUG_ABI_TAG   "${_boost_DEBUG_ABI_TAG}n")
-  endif()
-
-  if(Boost_DEBUG)
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-      "_boost_RELEASE_ABI_TAG = ${_boost_RELEASE_ABI_TAG}")
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-      "_boost_DEBUG_ABI_TAG = ${_boost_DEBUG_ABI_TAG}")
-  endif()
-
-  # ------------------------------------------------------------------------
-  #  Begin finding boost libraries
-  # ------------------------------------------------------------------------
-
-  if(BOOST_ROOT)
-    set(_boost_LIBRARY_SEARCH_DIRS_ALWAYS
-      ${BOOST_ROOT}/lib
-      ${BOOST_ROOT}/stage/lib)
-  endif()
-  set(_boost_LIBRARY_SEARCH_DIRS_ALWAYS
-    ${_boost_LIBRARY_SEARCH_DIRS_ALWAYS}
-    ${Boost_INCLUDE_DIR}/lib
-    ${Boost_INCLUDE_DIR}/../lib
-    ${Boost_INCLUDE_DIR}/stage/lib
-  )
-  set(_boost_LIBRARY_SEARCH_DIRS_SYSTEM
-    C:/boost/lib
-    C:/boost
-    "$ENV{ProgramFiles}/boost/boost_${Boost_MAJOR_VERSION}_${Boost_MINOR_VERSION}_${Boost_SUBMINOR_VERSION}/lib"
-    "$ENV{ProgramFiles}/boost/boost_${Boost_MAJOR_VERSION}_${Boost_MINOR_VERSION}/lib"
-    "$ENV{ProgramFiles}/boost/lib"
-    "$ENV{ProgramFiles}/boost"
-    /sw/local/lib
-  )
-  set(_boost_LIBRARY_SEARCH_DIRS ${_boost_LIBRARY_SEARCH_DIRS_ALWAYS})
-  if( Boost_NO_SYSTEM_PATHS )
-    set(_boost_FIND_OPTIONS NO_CMAKE_SYSTEM_PATH)
-  else()
-    list(APPEND _boost_LIBRARY_SEARCH_DIRS ${_boost_LIBRARY_SEARCH_DIRS_SYSTEM})
-  endif()
-
-  # prepend BOOST_LIBRARYDIR to search path if specified
-  if( BOOST_LIBRARYDIR )
-    file(TO_CMAKE_PATH ${BOOST_LIBRARYDIR} BOOST_LIBRARYDIR)
-    set(_boost_LIBRARY_SEARCH_DIRS
-      ${BOOST_LIBRARYDIR} ${_boost_LIBRARY_SEARCH_DIRS})
-  endif()
-
-  if(Boost_DEBUG)
-    message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-      "_boost_LIBRARY_SEARCH_DIRS = ${_boost_LIBRARY_SEARCH_DIRS}")
-  endif()
-
-  # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
-  if( Boost_USE_STATIC_LIBS )
-    set( _boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
-    if(WIN32)
-      set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
-    else()
-      set(CMAKE_FIND_LIBRARY_SUFFIXES .a )
-    endif()
-  endif()
-
-  # We want to use the tag inline below without risking double dashes
-  if(_boost_RELEASE_ABI_TAG)
-    if(${_boost_RELEASE_ABI_TAG} STREQUAL "-")
-      set(_boost_RELEASE_ABI_TAG "")
-    endif()
-  endif()
-  if(_boost_DEBUG_ABI_TAG)
-    if(${_boost_DEBUG_ABI_TAG} STREQUAL "-")
-      set(_boost_DEBUG_ABI_TAG "")
-    endif()
-  endif()
-
-  # The previous behavior of FindBoost when Boost_USE_STATIC_LIBS was enabled
-  # on WIN32 was to:
-  #  1. Search for static libs compiled against a SHARED C++ standard runtime library (use if found)
-  #  2. Search for static libs compiled against a STATIC C++ standard runtime library (use if found)
-  # We maintain this behavior since changing it could break people's builds.
-  # To disable the ambiguous behavior, the user need only
-  # set Boost_USE_STATIC_RUNTIME either ON or OFF.
-  set(_boost_STATIC_RUNTIME_WORKAROUND false)
-  if(WIN32 AND Boost_USE_STATIC_LIBS)
-    if(NOT DEFINED Boost_USE_STATIC_RUNTIME)
-      set(_boost_STATIC_RUNTIME_WORKAROUND true)
-    endif()
-  endif()
-
-
-  foreach(COMPONENT ${Boost_FIND_COMPONENTS})
-    string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
-    set( Boost_${UPPERCOMPONENT}_LIBRARY "Boost_${UPPERCOMPONENT}_LIBRARY-NOTFOUND" )
-    set( Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE "Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE-NOTFOUND" )
-    set( Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG "Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG-NOTFOUND")
-
-    set( _boost_docstring_release "Boost ${COMPONENT} library (release)")
-    set( _boost_docstring_debug   "Boost ${COMPONENT} library (debug)")
-
-    #
-    # Find RELEASE libraries
-    #
-    set(_boost_RELEASE_NAMES
-      ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}-${Boost_LIB_VERSION}
-      ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}
-      ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}-${Boost_LIB_VERSION}
-      ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}
-      ${Boost_LIB_PREFIX}boost_${COMPONENT} )
-    if(_boost_STATIC_RUNTIME_WORKAROUND)
-      set(_boost_RELEASE_STATIC_ABI_TAG "-s${_boost_RELEASE_ABI_TAG}")
-      list(APPEND _boost_RELEASE_NAMES
-        ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}-${Boost_LIB_VERSION}
-        ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}
-        ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}-${Boost_LIB_VERSION}
-        ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG} )
-    endif()
-    if(Boost_THREADAPI AND ${COMPONENT} STREQUAL "thread")
-       _Boost_PREPEND_LIST_WITH_THREADAPI(_boost_RELEASE_NAMES ${_boost_RELEASE_NAMES})
-    endif()
-    if(Boost_DEBUG)
-      message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                     "Searching for ${UPPERCOMPONENT}_LIBRARY_RELEASE: ${_boost_RELEASE_NAMES}")
-    endif()
-    find_library(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE
-        NAMES ${_boost_RELEASE_NAMES}
-        HINTS ${_boost_LIBRARY_SEARCH_DIRS}
-        ${_boost_FIND_OPTIONS}
-        DOC "${_boost_docstring_release}"
-    )
-
-    #
-    # Find DEBUG libraries
-    #
-    set(_boost_DEBUG_NAMES
-      ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}-${Boost_LIB_VERSION}
-      ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}
-      ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}-${Boost_LIB_VERSION}
-      ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}
-      ${Boost_LIB_PREFIX}boost_${COMPONENT} )
-    if(_boost_STATIC_RUNTIME_WORKAROUND)
-      set(_boost_DEBUG_STATIC_ABI_TAG "-s${_boost_DEBUG_ABI_TAG}")
-      list(APPEND _boost_DEBUG_NAMES
-        ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}-${Boost_LIB_VERSION}
-        ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}
-        ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}-${Boost_LIB_VERSION}
-        ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG} )
-    endif()
-    if(Boost_THREADAPI AND ${COMPONENT} STREQUAL "thread")
-       _Boost_PREPEND_LIST_WITH_THREADAPI(_boost_DEBUG_NAMES ${_boost_DEBUG_NAMES})
-    endif()
-    if(Boost_DEBUG)
-      message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
-                     "Searching for ${UPPERCOMPONENT}_LIBRARY_DEBUG: ${_boost_DEBUG_NAMES}")
-    endif()
-    find_library(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG
-        NAMES ${_boost_DEBUG_NAMES}
-        HINTS ${_boost_LIBRARY_SEARCH_DIRS}
-        ${_boost_FIND_OPTIONS}
-        DOC "${_boost_docstring_debug}"
-    )
-
-    if(Boost_REALPATH)
-      _Boost_SWAP_WITH_REALPATH(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE "${_boost_docstring_release}")
-      _Boost_SWAP_WITH_REALPATH(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG   "${_boost_docstring_debug}"  )
-    endif()
-
-    _Boost_ADJUST_LIB_VARS(${UPPERCOMPONENT})
-
-  endforeach(COMPONENT)
-
-  # Restore the original find library ordering
-  if( Boost_USE_STATIC_LIBS )
-    set(CMAKE_FIND_LIBRARY_SUFFIXES ${_boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
-  endif()
-  # ------------------------------------------------------------------------
-  #  End finding boost libraries
-  # ------------------------------------------------------------------------
-
-  SET(Boost_INCLUDE_DIRS
-    ${Boost_INCLUDE_DIR}
-  )
-
-  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 (NOT Boost_FOUND)
-      _Boost_MARK_COMPONENTS_FOUND(OFF)
-    endif()
-
-    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)
-      _Boost_MARK_COMPONENTS_FOUND(OFF)
-      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 )
-            _Boost_MARK_COMPONENTS_FOUND(ON)
-          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)
-
-    # Always check for missing components
-    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)
-
-    if(Boost_DEBUG)
-      message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] Boost_FOUND = ${Boost_FOUND}")
-    endif()
-
-    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.
-      # Note that the user may not have installed any libraries
-      # so it is quite possible the Boost_LIBRARY_PATH may not exist.
-      SET(_boost_LIB_DIR ${Boost_INCLUDE_DIR})
-
-      IF("${_boost_LIB_DIR}" MATCHES "boost-[0-9]+")
-        GET_FILENAME_COMPONENT(_boost_LIB_DIR ${_boost_LIB_DIR} PATH)
-      ENDIF ("${_boost_LIB_DIR}" MATCHES "boost-[0-9]+")
-
-      IF("${_boost_LIB_DIR}" MATCHES "/include$")
-        # Strip off the trailing "/include" in the path.
-        GET_FILENAME_COMPONENT(_boost_LIB_DIR ${_boost_LIB_DIR} PATH)
-      ENDIF("${_boost_LIB_DIR}" MATCHES "/include$")
-
-      IF(EXISTS "${_boost_LIB_DIR}/lib")
-        SET (_boost_LIB_DIR ${_boost_LIB_DIR}/lib)
-      ELSE(EXISTS "${_boost_LIB_DIR}/lib")
-        IF(EXISTS "${_boost_LIB_DIR}/stage/lib")
-          SET(_boost_LIB_DIR ${_boost_LIB_DIR}/stage/lib)
-        ELSE(EXISTS "${_boost_LIB_DIR}/stage/lib")
-          SET(_boost_LIB_DIR "")
-        ENDIF(EXISTS "${_boost_LIB_DIR}/stage/lib")
-      ENDIF(EXISTS "${_boost_LIB_DIR}/lib")
-
-      IF(_boost_LIB_DIR AND EXISTS "${_boost_LIB_DIR}")
-        SET(Boost_LIBRARY_DIRS ${_boost_LIB_DIR} CACHE FILEPATH "Boost library directory")
-      ENDIF(_boost_LIB_DIR AND EXISTS "${_boost_LIB_DIR}")
-
-    ENDIF( NOT Boost_LIBRARY_DIRS AND NOT _boost_CHECKED_COMPONENT )
-
-  ELSE(Boost_INCLUDE_DIR)
-    SET( Boost_FOUND FALSE)
-  ENDIF(Boost_INCLUDE_DIR)
-
-  IF (Boost_FOUND)
-      IF (NOT Boost_FIND_QUIETLY)
-        MESSAGE(STATUS "Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
-        if(Boost_FIND_COMPONENTS)
-          message(STATUS "Found the following Boost libraries:")
-        endif()
-      ENDIF(NOT Boost_FIND_QUIETLY)
-      FOREACH ( COMPONENT  ${Boost_FIND_COMPONENTS} )
-        STRING( TOUPPER ${COMPONENT} UPPERCOMPONENT )
-        IF ( Boost_${UPPERCOMPONENT}_FOUND )
-          IF (NOT Boost_FIND_QUIETLY)
-            MESSAGE (STATUS "  ${COMPONENT}")
-          ENDIF(NOT Boost_FIND_QUIETLY)
-          SET(Boost_LIBRARIES ${Boost_LIBRARIES} ${Boost_${UPPERCOMPONENT}_LIBRARY})
-        ENDIF ( Boost_${UPPERCOMPONENT}_FOUND )
-      ENDFOREACH(COMPONENT)
-  else()
-    if(Boost_FIND_REQUIRED)
-      message(SEND_ERROR "Unable to find the requested Boost libraries.\n${Boost_ERROR_REASON}")
-    else()
-      if(NOT Boost_FIND_QUIETLY)
-        # we opt not to automatically output Boost_ERROR_REASON here as
-        # it could be quite lengthy and somewhat imposing in it's requests
-        # Since Boost is not always a required dependency we'll leave this
-        # up to the end-user.
-        if(Boost_DEBUG OR Boost_DETAILED_FAILURE_MSG)
-          message(STATUS "Could NOT find Boost\n${Boost_ERROR_REASON}")
-        else()
-          message(STATUS "Could NOT find Boost")
-        endif()
-      endif()
-    endif(Boost_FIND_REQUIRED)
-  endif()
-
-  # show the Boost_INCLUDE_DIRS AND Boost_LIBRARIES variables only in the advanced view
-  MARK_AS_ADVANCED(Boost_INCLUDE_DIR
-      Boost_INCLUDE_DIRS
-      Boost_LIBRARY_DIRS
-  )
-ENDIF(_boost_IN_CACHE)
-


Backup.

Backup.

--- cmake_modules/LPSCommon.cmake
+++ cmake_modules/LPSCommon.cmake
@@ -817,7 +817,11 @@
         GROUP_READ GROUP_EXECUTE
         WORLD_READ WORLD_EXECUTE
         )
-
+        file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "\n")
+        file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "set(USE_VTK OFF CACHE BOOL \"Set to link against VTK libs\")\n")
+        file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "\n")
+        file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "set(VTK_LIB_DIR @SHEAFSYSTEM_HOME@/lib/vtk CACHE STRING \"Location of VTK libs\")\n")
+        file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "\n")
     else()

         foreach(name ${VTK_LIBS})
@@ -825,7 +829,7 @@
             set(VTK_IMPORT_LIBS ${VTK_IMPORT_LIBS} ${files})
         endforeach()

-        install(FILES ${VTK_INSTALL_LIBS} DESTINATION lib/vtk/
+        install(FILES ${VTK_IMPORT_LIBS} DESTINATION lib/vtk/
         PERMISSIONS
         OWNER_WRITE OWNER_READ OWNER_EXECUTE
         GROUP_READ GROUP_EXECUTE
@@ -837,20 +841,19 @@
             set(VTK_RUNTIME_LIBS ${VTK_RUNTIME_LIBS} ${files})
         endforeach()

-        install(FILES ${VTK_RUNTIME_LIBS} DESTINATION lib/vtk/
+        install(FILES ${VTK_RUNTIME_LIBS} DESTINATION bin/vtk/
         PERMISSIONS
         OWNER_WRITE OWNER_READ OWNER_EXECUTE
         GROUP_READ GROUP_EXECUTE
         WORLD_READ WORLD_EXECUTE
         )
-
-    endif()
-
-    file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "\n")
-    file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "set(USE_VTK OFF CACHE BOOL \"Set to link against VTK libs\")\n")
-    file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "\n")
-    file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "set(VTK_LIB_DIR @SHEAFSYSTEM_HOME@/lib/vtk CACHE STRING \"Location of VTK libs\")\n")
-    file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "\n")
+        file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "\n")
+        file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "set(USE_VTK OFF CACHE BOOL \"Set to link against VTK libs\")\n")
+        file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "\n")
+        file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "set(VTK_LIB_DIR @SHEAFSYSTEM_HOME@/bin/vtk CACHE STRING \"Location of VTK libs\")\n")
+        file(APPEND ${CMAKE_BINARY_DIR}/${EXPORTS_FILE} "\n")
+    endif()
+

      # Install only the VTK includes we use
     foreach(inc ${VTK_INCS})


Remove working directory from cmake tests

This ensures that we are relying on the installed package

--- tests/PythonTests.cmake
+++ tests/PythonTests.cmake
@@ -79,15 +79,14 @@
     set(pythonpath "${PROJECT_SOURCE_DIR}/plugins/${fn_PLUGIN}")
     set(other_covg ",${PROJECT_SOURCE_DIR}/plugins/${fn_PLUGIN}/server")
   else()
-    set(module tests.cases.${case}_test)
-    set(pythonpath "")
+    set(module cases.${case}_test)
+    set(pythonpath "${PROJECT_SOURCE_DIR}/tests")
     set(other_covg "")
   endif()

   if(PYTHON_COVERAGE)
     add_test(
       NAME ${name}
-      WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
       COMMAND "${PYTHON_COVERAGE_EXECUTABLE}" run -p --append "--rcfile=${py_coverage_rc}"
               "--source=girder,${PROJECT_SOURCE_DIR}/clients/python/girder_client${other_covg}"
               -m unittest -v ${module}
@@ -95,7 +94,6 @@
   else()
     add_test(
       NAME ${name}
-      WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
       COMMAND "${PYTHON_EXECUTABLE}" -m unittest -v ${module}
     )
   endif()
@@ -106,6 +104,7 @@
     "GIRDER_TEST_DB=mongodb://localhost:27017/girder_test_${_db_name}"
     "GIRDER_TEST_ASSETSTORE=${name}"
     "GIRDER_TEST_PORT=${server_port}"
+    "CUMULUS_SOURCE_DIRECTORY=${PROJECT_SOURCE_DIR}"
   )
   set_property(TEST ${name} PROPERTY COST 50)
   if(fn_RESOURCE_LOCKS)


ARROW-3422: [C++] Uniformly add ExternalProject builds to the "toolchain" target. Fix gRPC EP build on Linux

Now `make toolchain` or `ninja toolchain` builds all the EPs. This also will enable faster and easier testing that the thirdparty toolchain works properly without having to build any other Arrow targets.

Author: Wes McKinney <wesm+git@apache.org>

Closes #3572 from wesm/ARROW-3422 and squashes the following commits:

5a252de4 <Wes McKinney> Fix grpc EP build on Linux
4e0b24d5 <Wes McKinney> Consistently add all external projects to the toolchain CMake target

--- cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -632,6 +632,8 @@
       BUILD_IN_SOURCE 1
       BUILD_BYPRODUCTS "${GFLAGS_STATIC_LIB}"
       CMAKE_ARGS ${GFLAGS_CMAKE_ARGS})
+
+    add_dependencies(toolchain gflags_ep)
   else()
     set(GFLAGS_VENDORED 0)
     find_package(GFlags REQUIRED)
@@ -691,6 +693,8 @@
       BUILD_BYPRODUCTS ${GTEST_STATIC_LIB} ${GTEST_MAIN_STATIC_LIB} ${GMOCK_STATIC_LIB} ${GMOCK_MAIN_STATIC_LIB}
       CMAKE_ARGS ${GTEST_CMAKE_ARGS}
       ${EP_LOG_OPTIONS})
+
+    add_dependencies(toolchain googletest_ep)
   else()
     find_package(GTest REQUIRED)
     set(GTEST_VENDORED 0)
@@ -775,6 +779,8 @@
       BUILD_BYPRODUCTS "${GBENCHMARK_STATIC_LIB}"
       CMAKE_ARGS ${GBENCHMARK_CMAKE_ARGS}
       ${EP_LOG_OPTIONS})
+
+    add_dependencies(toolchain gbenchmark_ep)
   else()
     find_package(GBenchmark REQUIRED)
     set(GBENCHMARK_VENDORED 0)
@@ -811,6 +817,7 @@

     set(RAPIDJSON_INCLUDE_DIR "${RAPIDJSON_HOME}/include")
     set(RAPIDJSON_VENDORED 1)
+
     add_dependencies(toolchain rapidjson_ep)
   else()
     set(RAPIDJSON_INCLUDE_DIR "${RAPIDJSON_HOME}/include")
@@ -892,6 +899,8 @@
     SHARED_LIB ${JEMALLOC_SHARED_LIB}
     DEPS Threads::Threads)
   add_dependencies(jemalloc_static jemalloc_ep)
+
+  add_dependencies(toolchain jemalloc_ep)
 endif()

 ## Google PerfTools
@@ -973,6 +982,8 @@
       BUILD_BYPRODUCTS "${ZLIB_STATIC_LIB}"
       CMAKE_ARGS ${ZLIB_CMAKE_ARGS})
     add_dependencies(${ZLIB_LIBRARY} zlib_ep)
+
+    add_dependencies(toolchain zlib_ep)
   endif()

   include_directories(SYSTEM ${ZLIB_INCLUDE_DIR})
@@ -1031,7 +1042,9 @@
         URL ${SNAPPY_SOURCE_URL}
         BUILD_BYPRODUCTS "${SNAPPY_STATIC_LIB}")
     endif()
+
     set(SNAPPY_VENDORED 1)
+    add_dependencies(toolchain snappy_ep)
   else()
     find_package(Snappy REQUIRED)
     set(SNAPPY_VENDORED 0)
@@ -1083,6 +1096,8 @@
         WORKING_DIRECTORY ${SOURCE_DIR})
     endif()
     set(BROTLI_VENDORED 1)
+
+    add_dependencies(toolchain brotli_ep)
   else()
     find_package(Brotli REQUIRED)
     set(BROTLI_VENDORED 0)
@@ -1157,6 +1172,8 @@
         )

     set(LZ4_VENDORED 1)
+
+    add_dependencies(toolchain lz4_ep)
   else()
     find_package(Lz4 REQUIRED)
     set(LZ4_VENDORED 0)
@@ -1217,6 +1234,7 @@
       BUILD_BYPRODUCTS "${ZSTD_STATIC_LIB}")

     set(ZSTD_VENDORED 1)
+    add_dependencies(toolchain zstd_ep)
   else()
     find_package(ZSTD REQUIRED)
     set(ZSTD_VENDORED 0)
@@ -1299,6 +1317,7 @@
       ${EP_LOG_OPTIONS})

     set (PROTOBUF_VENDORED 1)
+    add_dependencies(toolchain protobuf_ep)
   else ()
     find_package (Protobuf REQUIRED)
     set (PROTOBUF_VENDORED 0)
@@ -1345,6 +1364,8 @@
       URL ${CARES_SOURCE_URL}
       CMAKE_ARGS ${CARES_CMAKE_ARGS}
       BUILD_BYPRODUCTS "${CARES_STATIC_LIB}")
+
+    add_dependencies(toolchain cares_ep)
   else()
     set(CARES_VENDORED 0)
     find_package(c-ares REQUIRED)
@@ -1402,14 +1423,14 @@
     set(GRPC_CMAKE_ARGS
       -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
       -DCMAKE_PREFIX_PATH='${GRPC_PREFIX_PATH_ALT_SEP}'
-      '-DgRPC_CARES_PROVIDER=package'
-      '-DgRPC_GFLAGS_PROVIDER=package'
-      '-DgRPC_PROTOBUF_PROVIDER=package'
-      '-DgRPC_SSL_PROVIDER=package'
-      '-DgRPC_ZLIB_PROVIDER=package'
-      '-DCMAKE_CXX_FLAGS=${EP_CXX_FLAGS}'
-      '-DCMAKE_C_FLAGS=${EP_C_FLAGS}'
-      '-DCMAKE_INSTALL_PREFIX=${GRPC_PREFIX}'
+      -DgRPC_CARES_PROVIDER=package
+      -DgRPC_GFLAGS_PROVIDER=package
+      -DgRPC_PROTOBUF_PROVIDER=package
+      -DgRPC_SSL_PROVIDER=package
+      -DgRPC_ZLIB_PROVIDER=package
+      -DCMAKE_CXX_FLAGS=${EP_CXX_FLAGS}
+      -DCMAKE_C_FLAGS=${EP_C_FLAGS}
+      -DCMAKE_INSTALL_PREFIX=${GRPC_PREFIX}
       -DCMAKE_INSTALL_LIBDIR=lib
       -DBUILD_SHARED_LIBS=OFF)

@@ -1652,6 +1673,8 @@
     ${EP_LOG_OPTIONS})

   set(THRIFT_VENDORED 1)
+
+  add_dependencies(toolchain thrift_ep)
 else()
   set(THRIFT_VENDORED 0)
 endif()
@@ -1713,6 +1736,7 @@
       ${EP_LOG_OPTIONS})

     set(GLOG_VENDORED 1)
+    add_dependencies(toolchain glog_ep)
   else()
     find_package(GLOG REQUIRED)
     set(GLOG_VENDORED 0)


unix eol

unix eol

--- os/cygwin.cmake
+++ os/cygwin.cmake
@@ -1,12 +1,12 @@
-# Copyright (c) 2014, Ruslan Baratov
-# All rights reserved.
-
-if(DEFINED POLLY_OS_CYGWIN_CMAKE_)
-  return()
-else()
-  set(POLLY_OS_CYGWIN_CMAKE_ 1)
-endif()
-
-include(polly_add_cache_flag)
-
-polly_add_cache_flag(CMAKE_CXX_FLAGS "-U__STRICT_ANSI__")
+# Copyright (c) 2014, Ruslan Baratov
+# All rights reserved.
+
+if(DEFINED POLLY_OS_CYGWIN_CMAKE_)
+  return()
+else()
+  set(POLLY_OS_CYGWIN_CMAKE_ 1)
+endif()
+
+include(polly_add_cache_flag)
+
+polly_add_cache_flag(CMAKE_CXX_FLAGS "-U__STRICT_ANSI__")


fix typo

fix typo

--- compiler.cmake
+++ compiler.cmake
@@ -17,7 +17,7 @@
 endif()

 if (MSVC AND (MSVC_VERSION LESS 1900))
-  message(FATAL_ERROR "MSVC version ${MSVC_VERSION} have not full c++11 support")
+  message(FATAL_ERROR "MSVC version ${MSVC_VERSION} have no full c++11 support")
 elseif (NOT MSVC)
   check_cxx_compiler_flag("-std=c++11" CXX_SUPPORTS_CXX11)
   if (CXX_SUPPORTS_CXX11)


Remove W32-lib compilation config option since it's not used anywhere

--- config.h.cmake
+++ config.h.cmake
@@ -32,9 +32,6 @@
 /* Define to 1 if you want to enable ZLIB */
 #cmakedefine WITH_LIBZ 1

-/* Define to 1 if you want to compile for W32API instead of *nix */
-#cmakedefine USE_W32API 1
-
 /* Define if building with gcov instrumentation */
 #cmakedefine CGREEN_INTERNAL_WITH_GCOV


ConfigurePackages.cmake: use $(PlatformName) instead of $(Platform) (the shorter version is available only on VS >= 2010).

--- cmake/ConfigurePackages.cmake
+++ cmake/ConfigurePackages.cmake
@@ -276,8 +276,8 @@
         else()
             set(VS2008_OR_VS2010 "VS2010")
         endif()
-        target_link_libraries(${TARGET_NAME} optimized ${ENV_TUNDRA_DEP_PATH}/ogg/win32/${VS2008_OR_VS2010}/$(Platform)/Release/libogg_static.lib)
-        target_link_libraries(${TARGET_NAME} debug ${ENV_TUNDRA_DEP_PATH}/ogg/win32/${VS2008_OR_VS2010}/$(Platform)/Debug/libogg_static.lib)
+        target_link_libraries(${TARGET_NAME} optimized ${ENV_TUNDRA_DEP_PATH}/ogg/win32/${VS2008_OR_VS2010}/$(PlatformName)/Release/libogg_static.lib)
+        target_link_libraries(${TARGET_NAME} debug ${ENV_TUNDRA_DEP_PATH}/ogg/win32/${VS2008_OR_VS2010}/$(PlatformName)/Debug/libogg_static.lib)
     else()
         target_link_libraries(${TARGET_NAME} general ogg)
     endif()
@@ -297,10 +297,10 @@
         else()
             set(VS2008_OR_VS2010 "VS2010")
         endif()
-        target_link_libraries(${TARGET_NAME} optimized ${ENV_TUNDRA_DEP_PATH}/vorbis/win32/${VS2008_OR_VS2010}/$(Platform)/Release/libvorbis_static.lib)
-        target_link_libraries(${TARGET_NAME} optimized ${ENV_TUNDRA_DEP_PATH}/vorbis/win32/${VS2008_OR_VS2010}/$(Platform)/Release/libvorbisfile_static.lib)
-        target_link_libraries(${TARGET_NAME} debug ${ENV_TUNDRA_DEP_PATH}/vorbis/win32/${VS2008_OR_VS2010}/$(Platform)/Debug/libvorbis_static.lib)
-        target_link_libraries(${TARGET_NAME} debug ${ENV_TUNDRA_DEP_PATH}/vorbis/win32/${VS2008_OR_VS2010}/$(Platform)/Debug/libvorbisfile_static.lib)
+        target_link_libraries(${TARGET_NAME} optimized ${ENV_TUNDRA_DEP_PATH}/vorbis/win32/${VS2008_OR_VS2010}/$(PlatformName)/Release/libvorbis_static.lib)
+        target_link_libraries(${TARGET_NAME} optimized ${ENV_TUNDRA_DEP_PATH}/vorbis/win32/${VS2008_OR_VS2010}/$(PlatformName)/Release/libvorbisfile_static.lib)
+        target_link_libraries(${TARGET_NAME} debug ${ENV_TUNDRA_DEP_PATH}/vorbis/win32/${VS2008_OR_VS2010}/$(PlatformName)/Debug/libvorbis_static.lib)
+        target_link_libraries(${TARGET_NAME} debug ${ENV_TUNDRA_DEP_PATH}/vorbis/win32/${VS2008_OR_VS2010}/$(PlatformName)/Debug/libvorbisfile_static.lib)
     else()
         target_link_libraries(${TARGET_NAME} general vorbis general vorbisfile)
     endif()
@@ -316,8 +316,8 @@
     if (MSVC)
         # Always use ENV_TUNDRA_DEP_PATH as its read from cache. $ENV{TUNDRA_DEP_PATH} is not and can be empty/incorrect.
         # Using full-built deps.
-        target_link_libraries(${TARGET_NAME} optimized ${ENV_TUNDRA_DEP_PATH}/theora/win32/VS2008/$(Platform)/Release_SSE2/libtheora_static.lib)
-        target_link_libraries(${TARGET_NAME} debug ${ENV_TUNDRA_DEP_PATH}/theora/win32/VS2008/$(Platform)/Debug/libtheora_static.lib)
+        target_link_libraries(${TARGET_NAME} optimized ${ENV_TUNDRA_DEP_PATH}/theora/win32/VS2008/$(PlatformName)/Release_SSE2/libtheora_static.lib)
+        target_link_libraries(${TARGET_NAME} debug ${ENV_TUNDRA_DEP_PATH}/theora/win32/VS2008/$(PlatformName)/Debug/libtheora_static.lib)
     else()
         target_link_libraries(${TARGET_NAME} general theora)
     endif()


Mystery fix for finding Boost on Linux.

Mystery fix for finding Boost on Linux.

--- cmake/ConfigurePackages.cmake
+++ cmake/ConfigurePackages.cmake
@@ -44,6 +44,8 @@

 if (APPLE OR MSVC)
    find_package(Boost 1.39.0 COMPONENTS system thread regex)
+else()
+   find_package(Boost 1.39.0 COMPONENTS system thread regex) # Some Ubuntu 12.10 installs require system, others do not. OSX fails with system. Not needed on MSVC
 endif()

 if (Boost_FOUND)


CMake: CheckZLIB: explicitly enable C language, cmake now requires this.

--- cmake/Modules/CheckZLIB.cmake
+++ cmake/Modules/CheckZLIB.cmake
@@ -2,6 +2,8 @@
 include(CheckTypeSize)
 include(CheckPrototypeDefinition)
 include(CheckCXXSymbolExists)
+
+enable_language(C)

 set(CMAKE_REQUIRED_INCLUDES_SAVE "${CMAKE_REQUIRED_INCLUDES}")
 set(CMAKE_EXTRA_INCLUDE_FILES_SAVE "${CMAKE_EXTRA_INCLUDE_FILES}")


[cmake] FindCBLAS.cmake now tests if CBLAS symbols are found

--- cmake/Modules/FindCBLAS.cmake
+++ cmake/Modules/FindCBLAS.cmake
@@ -1,31 +1,210 @@
-# - Find cBLAS
-# Find the cBLAS includes and library
+# - Find CBLAS library
 #
-#  CBLAS_INCLUDES    - where to find cblas.h/Accelerate.h
-#  CBLAS_LIBRARIES   - List of libraries when using CBLAS.
-#  CBLAS_FOUND       - True if CBLAS found.
-
-include (FindPackageHandleStandardArgs)
-
-if (APPLE)
-  find_path (CBLAS_INCLUDES_PRE Accelerate.h)
-  find_library (CBLAS_LIBRARIES_PRE NAMES Accelerate)
-else ()
-  find_path (CBLAS_INCLUDES_PRE cblas.h)
-  find_library (CBLAS_LIBRARIES_PRE NAMES blas)
-endif ()
-
-# handle the QUIETLY and REQUIRED arguments and set CBLAS_FOUND to TRUE if
-# all listed variables are TRUE
-
-if (CBLAS_LIBRARIES_PRE)
-  set (CBLAS_LIBRARIES ${CBLAS_LIBRARIES_PRE})
-endif ()
-if (CBLAS_INCLUDES_PRE)
-  set (CBLAS_INCLUDES ${CBLAS_INCLUDES_PRE})
-  set (CBLAS_FOUND TRUE CACHE INTERNAL "")
-endif ()
-
-find_package_handle_standard_args (CBLAS DEFAULT_MSG CBLAS_LIBRARIES CBLAS_INCLUDES)
-
-mark_as_advanced (CBLAS_LIBRARIES CBLAS_INCLUDES)
+# This module finds an installed fortran library that implements the CBLAS
+# linear-algebra interface (see http://www.netlib.org/blas/), with CBLAS
+# interface.
+#
+# This module sets the following variables:
+#  CBLAS_FOUND - set to true if a library implementing the CBLAS interface
+#    is found
+#  CBLAS_LINKER_FLAGS - uncached list of required linker flags (excluding -l
+#    and -L).
+#  CBLAS_LIBRARIES - uncached list of libraries (using full path name) to
+#    link against to use CBLAS
+#  CBLAS_INCLUDE_DIR - path to includes
+#  CBLAS_INCLUDE_FILE - the file to be included to use CBLAS
+#
+
+include(CheckFunctionExists)
+include(CheckIncludeFile)
+include(FindPackageHandleStandardArgs)
+
+macro(CHECK_ALL_LIBRARIES LIBRARIES _prefix _name _flags _list _include _search_include)
+  # This macro checks for the existence of the combination of fortran libraries
+  # given by _list.  If the combination is found, this macro checks (using the
+  # Check_Fortran_Function_Exists macro) whether can link against that library
+  # combination using the name of a routine given by _name using the linker
+  # flags given by _flags.  If the combination of libraries is found and passes
+  # the link test, LIBRARIES is set to the list of complete library paths that
+  # have been found.  Otherwise, LIBRARIES is set to FALSE.
+
+  # N.B. _prefix is the prefix applied to the names of all cached variables that
+  # are generated internally and marked advanced by this macro.
+
+  set(__list)
+  foreach(_elem ${_list})
+    if(__list)
+      set(__list "${__list} - ${_elem}")
+    else(__list)
+      set(__list "${_elem}")
+    endif(__list)
+  endforeach(_elem)
+  message(STATUS "Checking for [${__list}]")
+  set(_libraries_work TRUE)
+  set(${LIBRARIES})
+  set(_combined_name)
+  set(_paths)
+  foreach(_library ${_list})
+    set(_combined_name ${_combined_name}_${_library})
+
+    # did we find all the libraries in the _list until now?
+    # (we stop at the first unfound one)
+    if(_libraries_work)
+      if(APPLE)
+        find_library(${_prefix}_${_library}_LIBRARY
+          NAMES ${_library}
+          PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64 ENV
+          DYLD_LIBRARY_PATH
+          )
+      else(APPLE)
+        find_library(${_prefix}_${_library}_LIBRARY
+          NAMES ${_library}
+          PATHS /usr/local/lib /usr/lib /usr/local/lib64 /usr/lib64 ENV
+          LD_LIBRARY_PATH
+          )
+      endif(APPLE)
+      mark_as_advanced(${_prefix}_${_library}_LIBRARY)
+      if(${_prefix}_${_library}_LIBRARY)
+        get_filename_component(_path ${${_prefix}_${_library}_LIBRARY} PATH)
+        list(APPEND _paths ${_path}/../include ${_path}/../../include)
+      endif(${_prefix}_${_library}_LIBRARY)
+      set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
+      set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
+    endif(_libraries_work)
+  endforeach(_library ${_list})
+
+  # Test include
+  set(_bug_search_include ${_search_include}) #CMAKE BUG!!! SHOULD NOT BE THAT
+  if(_bug_search_include)
+    find_path(${_prefix}${_combined_name}_INCLUDE ${_include} ${_paths})
+    mark_as_advanced(${_prefix}${_combined_name}_INCLUDE)
+    if(${_prefix}${_combined_name}_INCLUDE)
+      message(STATUS "Checking for [${__list}] -- includes found")
+      set(${_prefix}_INCLUDE_DIR ${${_prefix}${_combined_name}_INCLUDE})
+      set(${_prefix}_INCLUDE_FILE ${_include})
+    else(${_prefix}${_combined_name}_INCLUDE)
+      message(STATUS "Checking for [${__list}] -- includes not found")
+      set(_libraries_work FALSE)
+    endif(${_prefix}${_combined_name}_INCLUDE)
+  else(_bug_search_include)
+    set(${_prefix}_INCLUDE_DIR)
+    set(${_prefix}_INCLUDE_FILE ${_include})
+  endif(_bug_search_include)
+
+  if(_libraries_work)
+    # Test this combination of libraries.
+    set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}})
+    CHECK_FUNCTION_EXISTS(${_name} ${_prefix}${_combined_name}_WORKS)
+    set(CMAKE_REQUIRED_LIBRARIES)
+    mark_as_advanced(${_prefix}${_combined_name}_WORKS)
+    set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
+
+    if(_libraries_work)
+      message(STATUS "Checking for [${__list}] -- libraries found")
+    endif(_libraries_work)
+
+  endif(_libraries_work)
+
+
+  if(NOT _libraries_work)
+    set(${LIBRARIES} FALSE)
+  endif(NOT _libraries_work)
+
+ENDMACRO(CHECK_ALL_LIBRARIES)
+
+set(CBLAS_LINKER_FLAGS)
+set(CBLAS_LIBRARIES)
+
+# CBLAS in intel mkl library? (shared)
+if(NOT CBLAS_LIBRARIES)
+  CHECK_ALL_LIBRARIES(
+    CBLAS_LIBRARIES
+    CBLAS
+    cblas_sgemm
+    ""
+    "mkl;guide;pthread"
+    "mkl_cblas.h"
+    TRUE
+    )
+endif(NOT CBLAS_LIBRARIES)
+
+#CBLAS in intel mkl library? (static, 32bit)
+if(NOT CBLAS_LIBRARIES)
+  CHECK_ALL_LIBRARIES(
+    CBLAS_LIBRARIES
+    CBLAS
+    cblas_sgemm
+    ""
+    "mkl_ia32;guide;pthread"
+    "mkl_cblas.h"
+    TRUE
+    )
+endif(NOT CBLAS_LIBRARIES)
+
+#CBLAS in intel mkl library? (static, em64t 64bit)
+if(NOT CBLAS_LIBRARIES)
+  CHECK_ALL_LIBRARIES(
+    CBLAS_LIBRARIES
+    CBLAS
+    cblas_sgemm
+    ""
+    "mkl_em64t;guide;pthread"
+    "mkl_cblas.h"
+    ON
+    )
+endif(NOT CBLAS_LIBRARIES)
+
+if(NOT CBLAS_LIBRARIES)
+  # CBLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
+  CHECK_ALL_LIBRARIES(
+    CBLAS_LIBRARIES
+    CBLAS
+    cblas_dgemm
+    ""
+    "cblas;f77blas;atlas"
+    "cblas.h"
+    TRUE
+    )
+endif(NOT CBLAS_LIBRARIES)
+
+if(NOT CBLAS_LIBRARIES)
+  # CBLAS in OpenBLAS library?
+  CHECK_ALL_LIBRARIES(
+    CBLAS_LIBRARIES
+    CBLAS
+    cblas_dgemm
+    ""
+    "openblas"
+    "cblas.h"
+    TRUE
+    )
+endif(NOT CBLAS_LIBRARIES)
+
+# Apple CBLAS library?
+if(NOT CBLAS_LIBRARIES)
+  CHECK_ALL_LIBRARIES(
+    CBLAS_LIBRARIES
+    CBLAS
+    cblas_dgemm
+    ""
+    "Accelerate"
+    "Accelerate/Accelerate.h"
+    FALSE
+    )
+endif(NOT CBLAS_LIBRARIES)
+
+if(NOT CBLAS_LIBRARIES)
+  CHECK_ALL_LIBRARIES(
+    CBLAS_LIBRARIES
+    CBLAS
+    cblas_dgemm
+    ""
+    "vecLib"
+    "vecLib/vecLib.h"
+    FALSE
+    )
+endif(NOT CBLAS_LIBRARIES)
+
+find_package_handle_standard_args(CBLAS DEFAULT_MSG CBLAS_LIBRARIES CBLAS_INCLUDES)
+
+mark_as_advanced(CBLAS_LIBRARIES CBLAS_INCLUDES)


Fix FindSFML2 to search for sfml2-${module} and sfml-${module} libraries.

--- cmake/Modules/FindSFML2.cmake
+++ cmake/Modules/FindSFML2.cmake
@@ -17,7 +17,7 @@
 # Library
 foreach(module ${SFML_MODULES})
     find_library(SFML2_${module}_LIBRARY
-    NAMES sfml2-${module}
+    NAMES sfml-${module} sfml2-${module}
     )
     set(SFML2_LIBS ${SFML2_LIBS} ${SFML2_${module}_LIBRARY})
 endforeach(module)


Do not install gmock (#1047)

Do not install gmock (#1047)

Fixes the issue described in https://github.com/googlecartographer/cartographer/pull/1041.

The docker file is not to be merged, it is only here to help reproducing the issue and fix.

--- cmake/modules/FindGMock.cmake
+++ cmake/modules/FindGMock.cmake
@@ -54,7 +54,8 @@
     if(GMOCK_SRC_DIR)
       # If src version found, build it.
       if(NOT TARGET gmock)
-        add_subdirectory(${GMOCK_SRC_DIR} "${CMAKE_CURRENT_BINARY_DIR}/gmock")
+        add_subdirectory(${GMOCK_SRC_DIR} "${CMAKE_CURRENT_BINARY_DIR}/gmock"
+          EXCLUDE_FROM_ALL)
       endif()
       # The next line is needed for Ubuntu Trusty.
       set(GMOCK_INCLUDE_DIRS "${GMOCK_SRC_DIR}/gtest/include")


Add support for MariaDB and fix customizability of FindMySQL.

Because in FindMySQL, the system path are listed before the environment variable provide path, it always favored a system installation.

--- cmake/modules/FindMySQL.cmake
+++ cmake/modules/FindMySQL.cmake
@@ -10,11 +10,18 @@
 endif()

 if(NOT WIN32)
-  find_program(MYSQL_CONFIG_EXECUTABLE mysql_config
-    /usr/bin/
-    /usr/local/bin
-    ${MYSQL_DIR}/bin $ENV{MYSQL_DIR}/bin
-  )
+  # Split into two find_program invocations to avoid user-specified
+  # mariadb_config being overridden by system mysql_config.
+  find_program(MYSQL_CONFIG_EXECUTABLE NAMES mysql_config mariadb_config
+    PATH_SUFFIXES bin
+    NO_DEFAULT_PATH
+    HINTS ${MYSQL_DIR} $ENV{MYSQL_DIR}
+    )
+  # Will not overwrite if MYSQL_CONFIG_EXECUTABLE is already set.
+  find_program(MYSQL_CONFIG_EXECUTABLE NAMES mysql_config mariadb_config
+    PATH_SUFFIXES bin
+    PATHS /usr/local /usr
+    )
 endif()

 if(MYSQL_CONFIG_EXECUTABLE)
@@ -26,17 +33,22 @@
   execute_process(COMMAND ${MYSQL_CONFIG_EXECUTABLE} --libs OUTPUT_VARIABLE MYSQL_LIBRARIES OUTPUT_STRIP_TRAILING_WHITESPACE)
 else()
   find_path(MYSQL_INCLUDE_DIR mysql.h
-    /usr/local/mysql/include
-    /usr/local/include/mysql
-    /usr/local/include
-    /usr/include/mysql
-    /usr/include
-    /usr/mysql/include
-    $ENV{MYSQL_DIR}/include
-  )
+    PATH_SUFFIXES include/mysql include/mariadb
+    HINTS ${MYSQL_DIR} $ENV{MYSQL_DIR}
+    NO_DEFAULT_PATH
+    )
+  if (NOT MYSQL_INCLUDE_DIR)
+    find_path(MYSQL_INCLUDE_DIR mysql.h
+      PATH_SUFFIXES include/mysql include/mariadb
+      PATHS /usr/local/mysql /usr/local /usr
+      )
+  endif()
   set(MYSQL_NAMES mysqlclient mysqlclient_r)
   find_library(MYSQL_LIBRARY NAMES ${MYSQL_NAMES}
-    PATHS /usr/local/mysql/lib /usr/local/lib /usr/lib $ENV{MYSQL_DIR}/lib $ENV{MYSQL_DIR}/lib/opt
+    PATH_SUFFIXES lib lib/mariadb lib/mysql
+    lib/opt lib/opt/mariadb lib/opt/mysql
+    HINTS ${MYSQL_DIR} $ENV{MYSQL_DIR}
+    PATHS /usr/local/mysql /usr/local /usr
   )
   set(MYSQL_LIBRARIES ${MYSQL_LIBRARY})
 endif()


Emit WARNING when the AGG component of wxwidgets has been dropped.

svn path=/trunk/; revision=11093

--- cmake/modules/wxwidgets.cmake
+++ cmake/modules/wxwidgets.cmake
@@ -93,6 +93,8 @@
 	${wxwidgets_LINK_FLAGS}
 	${AGG_LIBRARIES}
 	)
+    else(HAVE_AGG)
+      message(STATUS "WARNING: wxwidgets driver and bindings components depending on AGG library have been dropped.")
     endif(HAVE_AGG)
     set(
       wxwidgets_COMPILE_FLAGS


added a hack so that inclusion order does nto matter

--- cmake/task/task_enqueue.cmake
+++ cmake/task/task_enqueue.cmake
@@ -1,5 +1,13 @@
 ## adds a callable as a task which is to be invoked later
 function(task_enqueue callable)
+  if(NOT COMMAND return_ref OR NOT COMMAND function_import OR NOT COMMAND ans OR NOT COMMAND map_new OR NOT COMMAND map_set OR NOT COMMAND map_append)
+    ## hack. sometimes task_enqueue is called before function_import
+    ## semicolon encode before string_semicolon_encode exists
+    string(ASCII  31 us)
+    string(REPLACE ";" "${us}" callable "${callable}")
+    set_property(GLOBAL APPEND PROPERTY __initial_invoke_later_list "${callable}")
+    return()
+  endif()
   function_import("${callable}")
   ans(callback)
   map_new()


"could not find BSON" err message for CMake

--- build/cmake/FindBSON.cmake
+++ build/cmake/FindBSON.cmake
@@ -82,7 +82,7 @@
       "Could NOT find BSON version"
   )
 else ()
-   find_package_handle_standard_args(BSON "Could NOT find BSON uuuurh"
+   find_package_handle_standard_args(BSON "Could NOT find BSON"
       BSON_LIBRARIES
       BSON_INCLUDE_DIR
   )


cmake: Improve CheckCCompilerFlagSSP

cmake: Improve CheckCCompilerFlagSSP

--- cmake/Modules/CheckCCompilerFlagSSP.cmake
+++ cmake/Modules/CheckCCompilerFlagSSP.cmake
@@ -18,12 +18,31 @@
 # Requires cmake 3.10
 #include_guard(GLOBAL)
 include(CheckCSourceCompiles)
+include(CMakeCheckCompilerFlagCommonPatterns)

 macro(CHECK_C_COMPILER_FLAG_SSP _FLAG _RESULT)
    set(SAFE_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
    set(CMAKE_REQUIRED_FLAGS "${_FLAG}")

-   check_c_source_compiles("int main(int argc, char **argv) { char buffer[256]; return buffer[argc]=0;}" ${_RESULT})
+   # Normalize locale during test compilation.
+   set(_CheckCCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG)
+   foreach(v ${_CheckCCompilerFlag_LOCALE_VARS})
+     set(_CheckCCompilerFlag_SAVED_${v} "$ENV{${v}}")
+     set(ENV{${v}} C)
+   endforeach()
+
+   CHECK_COMPILER_FLAG_COMMON_PATTERNS(_CheckCCompilerFlag_COMMON_PATTERNS)
+   check_c_source_compiles("int main(int argc, char **argv) { char buffer[256]; return buffer[argc]=0;}"
+                           ${_RESULT}
+                           # Some compilers do not fail with a bad flag
+                           FAIL_REGEX "command line option .* is valid for .* but not for C" # GNU
+                           ${_CheckCCompilerFlag_COMMON_PATTERNS})
+   foreach(v ${_CheckCCompilerFlag_LOCALE_VARS})
+     set(ENV{${v}} ${_CheckCCompilerFlag_SAVED_${v}})
+     unset(_CheckCCompilerFlag_SAVED_${v})
+   endforeach()
+   unset(_CheckCCompilerFlag_LOCALE_VARS)
+   unset(_CheckCCompilerFlag_COMMON_PATTERNS)

    set(CMAKE_REQUIRED_FLAGS "${SAFE_CMAKE_REQUIRED_FLAGS}")
 endmacro(CHECK_C_COMPILER_FLAG_SSP)


ENH: Ginger: Updated local build of Qt to 64 bits

--- Ginger_Aylward_Org_TubeTK_Nightly.cmake
+++ Ginger_Aylward_Org_TubeTK_Nightly.cmake
@@ -38,7 +38,7 @@

 set( SITE_MAKE_COMMAND "${CTEST_BUILD_COMMAND}" )
 set( SITE_CMAKE_COMMAND "C:/Program Files/CMake 2.8/bin/cmake" )
-set( SITE_QMAKE_COMMAND "C:/Qt/4.8.2/bin/qmake" )
+set( SITE_QMAKE_COMMAND "C:/Qt/qt-everywhere-opensource-src-4.8.2/bin/qmake" )
 set( SITE_CTEST_COMMAND "C:/Program Files/CMake 2.8/bin/ctest" )

 set( SITE_MEMORYCHECK_COMMAND "" )


Sync VERSION.cmake with .spec

Sync VERSION.cmake with .spec

--- VERSION.cmake
+++ VERSION.cmake
@@ -1,4 +1,4 @@
 set (LIBDNF_MAJOR_VERSION 0)
-set (LIBDNF_MINOR_VERSION 40)
+set (LIBDNF_MINOR_VERSION 41)
 set (LIBDNF_MICRO_VERSION 0)
 set (LIBDNF_VERSION ${LIBDNF_MAJOR_VERSION}.${LIBDNF_MINOR_VERSION}.${LIBDNF_MICRO_VERSION})


Report skipped tests in CTest output (#243)

When adding a test using `ament_add_test`, the `SKIP_TEST` argument
results in the `--skip-test` argument being passed to the test wrapper
script `run_test.py`. The wrapper script then writes a JUnit output
describing that the test was skipped, and returns 0.

As far as CTest knows, the test succeeded and shows `Passed` on the
console. However, since we know that the test will be skipped by the
wrapper, and we expect the wrapper to return 0 after it writes the JUnit
file, we can set a test property that will mark the test as `Skipped`
when the wrapper returns 0.

This way, the JUnit output file is still written, but CTest displays the
test as skipped as well.

Signed-off-by: Scott K Logan <8c724d14625be4be480086a9212b212477a303ef@cottsay.net>

--- ament_cmake_test/cmake/ament_add_test.cmake
+++ ament_cmake_test/cmake/ament_add_test.cmake
@@ -124,4 +124,10 @@
     "${testname}"
     PROPERTIES TIMEOUT ${ARG_TIMEOUT}
   )
+  if(ARG_SKIP_TEST)
+    set_tests_properties(
+      "${testname}"
+      PROPERTIES SKIP_RETURN_CODE 0
+    )
+  endif()
 endfunction()


Set BITCODE_GENERATION_MODE to 'marker' when build config is not Release (#2178)

--- platforms/ios/config.cmake
+++ platforms/ios/config.cmake
@@ -9,7 +9,8 @@
 execute_process(COMMAND xcrun --sdk iphoneos --show-sdk-version OUTPUT_VARIABLE IOS_SDK_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
 # Set the global BITCODE_GENERATION_MODE value to 'bitcode' for Release builds.
 # This is for generating full bitcode outside of the "archive" command.
-set(CMAKE_XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE "$<$<CONFIG:Release>:bitcode>")
+# Set 'marker' for other configs to make debug builds install-able on devices.
+set(CMAKE_XCODE_ATTRIBUTE_BITCODE_GENERATION_MODE "$<IF:$<CONFIG:Release>,bitcode,marker>")

 # Copy necessary workspace settings into a user-specific location in the iOS workspace.
 # See platforms/ios/DEVELOPING.md for details.


Small Bugfix

Small Bugfix

git-svn-id: fbbf69ba8011aca0e74e1c67904b11cccbdbe66b@26685 0785d39b-7218-0410-832d-ea1e28bc413d

--- deal.II/cmake/setup_deal_ii.cmake
+++ deal.II/cmake/setup_deal_ii.cmake
@@ -55,9 +55,8 @@
   "${CMAKE_INSTALL_PREFIX}/${DEAL_II_INCLUDE_RELDIR}"
   )

-
 #
-# The library name:
+# A lot of magic to guess the resulting library names:
 #

 IF(BUILD_SHARED_LIBS)
@@ -68,17 +67,23 @@
   SET(DEAL_II_LIBRARY_NAME_DEBUG ${CMAKE_STATIC_LIBRARY_PREFIX}${DEAL_II_BASE_NAME}${DEAL_II_DEBUG_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} )
 ENDIF()

-LIST(APPEND DEAL_II_LIBRARIES_DEBUG
-  "${CMAKE_INSTALL_PREFIX}/${DEAL_II_LIBRARY_RELDIR}/${DEAL_II_LIBRARY_NAME_DEBUG}"
-  )
-LIST(APPEND DEAL_II_LIBRARIES_RELEASE
-  "${CMAKE_INSTALL_PREFIX}/${DEAL_II_LIBRARY_RELDIR}/${DEAL_II_LIBRARY_NAME_RELEASE}"
-  )
+IF(CMAKE_BUILD_TYPE MATCHES "Debug")
+  LIST(APPEND DEAL_II_LIBRARIES_DEBUG
+    "${CMAKE_INSTALL_PREFIX}/${DEAL_II_LIBRARY_RELDIR}/${DEAL_II_LIBRARY_NAME_DEBUG}"
+    )
+  LIST(APPEND DEAL_II_LIBRARIES
+    DEBUG
+    "${CMAKE_INSTALL_PREFIX}/${DEAL_II_LIBRARY_RELDIR}/${DEAL_II_LIBRARY_NAME_DEBUG}"
+    )
+ENDIF()

-LIST(APPEND DEAL_II_LIBRARIES
-  DEBUG
-  "${CMAKE_INSTALL_PREFIX}/${DEAL_II_LIBRARY_RELDIR}/${DEAL_II_LIBRARY_NAME_DEBUG}"
-  RELEASE
-  "${CMAKE_INSTALL_PREFIX}/${DEAL_II_LIBRARY_RELDIR}/${DEAL_II_LIBRARY_NAME_RELEASE}"
-  )
+IF(CMAKE_BUILD_TYPE MATCHES "Release")
+  LIST(APPEND DEAL_II_LIBRARIES_RELEASE
+    "${CMAKE_INSTALL_PREFIX}/${DEAL_II_LIBRARY_RELDIR}/${DEAL_II_LIBRARY_NAME_RELEASE}"
+    )
+  LIST(APPEND DEAL_II_LIBRARIES
+    RELEASE
+    "${CMAKE_INSTALL_PREFIX}/${DEAL_II_LIBRARY_RELDIR}/${DEAL_II_LIBRARY_NAME_RELEASE}"
+    )
+ENDIF()


enable format in travis regression

enable format in travis regression

--- docker/TravisCI.cmake
+++ docker/TravisCI.cmake
@@ -9,6 +9,7 @@
 set(CMAKE_ARGS "${CMAKE_ARGS} -D CMAKE_CXX_COMPILER=mpicxx")
 set(CMAKE_ARGS "${CMAKE_ARGS} -D BUILD_SHARED_LIBS=ON")
 set(CMAKE_ARGS "${CMAKE_ARGS} -D ENABLE_COVERAGE=ON")
+set(CMAKE_ARGS "${CMAKE_ARGS} -D ENABLE_FORMAT=ON")
 set(CMAKE_ARGS "${CMAKE_ARGS} -D BOOST_DIR=$ENV{BOOST_DIR}")
 set(CMAKE_ARGS "${CMAKE_ARGS} -D ENABLE_PYTHON:BOOL=ON")
 set(CMAKE_ARGS "${CMAKE_ARGS} -D PYTHON_LIBRARY=$ENV{PYTHON_DIR}/lib/libpython3.5.so")


argh, never put a character in front of - in a [] regex

--- cmake/AddCompilerFlag.cmake
+++ cmake/AddCompilerFlag.cmake
@@ -2,7 +2,7 @@
 include("${_currentDir}/CheckCCompilerFlag.cmake")
 include("${_currentDir}/CheckCXXCompilerFlag.cmake")
 macro(AddCompilerFlag _flag)
-   string(REGEX REPLACE "[.-+/:= ]" "_" _flag_esc "${_flag}")
+   string(REGEX REPLACE "[-.+/:= ]" "_" _flag_esc "${_flag}")
    check_c_compiler_flag("${_flag}" check_c_compiler_flag_${_flag_esc})
    check_cxx_compiler_flag("${_flag}" check_cxx_compiler_flag_${_flag_esc})


Initial support for conan installs

Initial support for conan installs

--- cmake/DevBaseExternal.cmake
+++ cmake/DevBaseExternal.cmake
@@ -110,7 +110,16 @@

 if(DEVBASE_DOCOPT_REQUIRED)
-    find_package(Docopt REQUIRED)
+    if(CONAN_DOCOPT_ROOT)
+        find_package(docopt
+            REQUIRED
+            NO_DEFAULT_PATH
+            PATHS
+                ${CONAN_DOCOPT_ROOT}
+        )
+    else()
+        find_package(Docopt REQUIRED)
+    endif()
 endif()

@@ -257,10 +266,15 @@

 if(DEVBASE_NLOHMANN_JSON_REQUIRED)
-    find_package(nlohmann_json REQUIRED)
-
-    if(NOT nlohmann_json_FOUND)
-        message(FATAL_ERROR "nlohmann json not found")
+    if(CONAN_JSONFORMODERNCPP_ROOT)
+        find_package(nlohmann_json
+            REQUIRED
+            NO_DEFAULT_PATH
+            PATHS
+                ${CONAN_JSONFORMODERNCPP_ROOT}
+        )
+    else()
+        find_package(nlohmann_json REQUIRED)
     endif()
 endif()

@@ -345,10 +359,15 @@
 # call to CMake's FindPython. Otherwise find_package(PythonLibs) fails (at
 # least on macOS / MacPorts.
 if(DEVBASE_PYBIND11_REQUIRED)
-    find_package(pybind11 REQUIRED)
-
-    if(NOT pybind11_FOUND)
-        message(FATAL_ERROR "pybind11 library not found")
+    if(CONAN_PYBIND11_ROOT)
+        find_package(pybind11
+            REQUIRED
+            NO_DEFAULT_PATH
+            PATHS
+                ${CONAN_PYBIND11_ROOT}
+        )
+    else()
+        find_package(pybind11 REQUIRED)
     endif()
 endif()


Support for opengl2 in vtk 7.1

Support for opengl2 in vtk 7.1

--- cmake/OpenCVDetectVTK.cmake
+++ cmake/OpenCVDetectVTK.cmake
@@ -3,7 +3,14 @@
 endif()

 # VTK 6.x components
-find_package(VTK QUIET COMPONENTS vtkRenderingOpenGL vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport NO_MODULE)
+find_package(VTK QUIET COMPONENTS vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport NO_MODULE)
+IF(VTK_FOUND)
+  IF(VTK_RENDERING_BACKEND) #in vtk 7, the rendering backend is exported as a var.
+      find_package(VTK QUIET COMPONENTS vtkRendering${VTK_RENDERING_BACKEND} vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport NO_MODULE)
+  ELSE(VTK_RENDERING_BACKEND)
+      find_package(VTK QUIET COMPONENTS vtkRenderingOpenGL vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport NO_MODULE)
+  ENDIF(VTK_RENDERING_BACKEND)
+ENDIF(VTK_FOUND)

 # VTK 5.x components
 if(NOT VTK_FOUND)


Deb package build fix for CUDA 6.5 and newer.

(cherry picked from commit e650d87e470b2e6a8f87ad4dd81977748a136aee)

--- cmake/OpenCVPackaging.cmake
+++ cmake/OpenCVPackaging.cmake
@@ -68,9 +68,23 @@

 if(HAVE_CUDA)
   string(REPLACE "." "-" cuda_version_suffix ${CUDA_VERSION})
-  set(CPACK_DEB_libs_PACKAGE_DEPENDS "cuda-core-libs-${cuda_version_suffix}, cuda-extra-libs-${cuda_version_suffix}")
+  if(${CUDA_VERSION} VERSION_LESS "6.5")
+    set(CPACK_DEB_libs_PACKAGE_DEPENDS "cuda-core-libs-${cuda_version_suffix}, cuda-extra-libs-${cuda_version_suffix}")
+    set(CPACK_DEB_dev_PACKAGE_DEPENDS "cuda-headers-${cuda_version_suffix}")
+  else()
+    set(CPACK_DEB_libs_PACKAGE_DEPENDS "cuda-cudart-${cuda_version_suffix}, cuda-npp-${cuda_version_suffix}")
+    set(CPACK_DEB_dev_PACKAGE_DEPENDS "cuda-cudart-dev-${cuda_version_suffix}, cuda-npp-dev-${cuda_version_suffix}")
+    if(HAVE_CUFFT)
+      set(CPACK_DEB_libs_PACKAGE_DEPENDS "${CPACK_DEB_libs_PACKAGE_DEPENDS}, cuda-cufft-${cuda_version_suffix}")
+      set(CPACK_DEB_dev_PACKAGE_DEPENDS "${CPACK_DEB_dev_PACKAGE_DEPENDS}, cuda-cufft-dev-${cuda_version_suffix}")
+    endif()
+    if(HAVE_HAVE_CUBLAS)
+      set(CPACK_DEB_libs_PACKAGE_DEPENDS "${CPACK_DEB_libs_PACKAGE_DEPENDS}, cuda-cublas-${cuda_version_suffix}")
+      set(CPACK_DEB_dev_PACKAGE_DEPENDS "${CPACK_DEB_dev_PACKAGE_DEPENDS}, cuda-cublas-dev-${cuda_version_suffix}")
+    endif()
+  endif()
   set(CPACK_COMPONENT_dev_DEPENDS libs)
-  set(CPACK_DEB_dev_PACKAGE_DEPENDS "cuda-headers-${cuda_version_suffix}")
+
 endif()

 if(NOT OPENCV_CUSTOM_PACKAGE_INFO)


Update to look for non-threaded and threaded versions of boost

--- cmake/ThirdPartyBoost.cmake
+++ cmake/ThirdPartyBoost.cmake
@@ -85,12 +85,24 @@
     ENDIF ()
 ELSE (THIRDPARTY_BUILD_BOOST)
     SET(Boost_DEBUG 1)
-    SET(Boost_USE_MULTITHREADED OFF)
     SET(Boost_ADDITIONAL_VERSIONS "1.51" "1.51.0" "1.50" "1.50.0" "1.49" "1.49.0" "1.48" "1.48.0" "1.47.0" "1.47" "1.46" "1.46. 1" "1.40" "1.40.0" "1.35.0" "1.35")
     SET(Boost_NO_BOOST_CMAKE ON)

     IF( NOT BOOST_ROOT )
         #If the user has not set BOOST_ROOT, look in a couple common places first.
+        SET(BOOST_ROOT $ENV{BOOST_HOME})
+        FIND_PACKAGE( Boost COMPONENTS thread iostreams zlib date_time
+                filesystem system program_options regex )
+        SET(BOOST_ROOT ${CMAKE_SOURCE_DIR}/ThirdParty/boost)
+        FIND_PACKAGE( Boost COMPONENTS thread iostreams zlib date_time filesystem system program_options regex)
+        SET(BOOST_ROOT ${CMAKE_SOURCE_DIR}/../ThirdParty/boost)
+        FIND_PACKAGE( Boost COMPONENTS thread iostreams zlib date_time filesystem system program_options regex)
+        SET(BOOST_ROOT ${CMAKE_SOURCE_DIR}/ThirdParty/dist)
+        FIND_PACKAGE( Boost COMPONENTS thread iostreams zlib date_time filesystem system program_options regex)
+
+        # In case we have not found the threaded version, look for the
+        # non-threaded version of the libraries.
+        SET(Boost_USE_MULTITHREADED OFF)
         SET(BOOST_ROOT $ENV{BOOST_HOME})
         FIND_PACKAGE( Boost COMPONENTS thread iostreams zlib date_time filesystem system program_options regex)
         SET(BOOST_ROOT ${CMAKE_SOURCE_DIR}/ThirdParty/boost)
@@ -99,11 +111,6 @@
         FIND_PACKAGE( Boost COMPONENTS thread iostreams zlib date_time filesystem system program_options regex)
         SET(BOOST_ROOT ${CMAKE_SOURCE_DIR}/ThirdParty/dist)
         FIND_PACKAGE( Boost COMPONENTS thread iostreams zlib date_time filesystem system program_options regex)
-        # Hack for odd distributions which do not symlink for non -mt thread lib
-        IF( NOT BOOST_THREAD_FOUND )
-            SET( Boost_USE_MULTITHREADED ON)
-            FIND_PACKAGE( Boost COMPONENTS thread )
-        ENDIF()
     ELSE()
         FIND_PACKAGE( Boost COMPONENTS thread iostreams zlib date_time filesystem system program_options regex)
     ENDIF()


cmake: update desc of GENERATED_KERNEL_* variables

The previous description of the `GENERATED_KERNEL_*` cmake variables
was incorrect in that these are generated after the second link stage
when `CONFIG_USERSPACE` is enabled.

The sources in these variables are generated from `zephyr_prebuilt.elf`
for inclusion in `zephyr.elf`. However `zephyr_prebuilt.elf` is preceded
by `app_smem_unaligned_prebuilt.elf` when `CONFIG_USERSPACE` is enabled.

Signed-off-by: Jordan Yates <d74a90e280bbad1cc3646781a4e234b467b60fe1@data61.csiro.au>

--- cmake/app/boilerplate.cmake
+++ cmake/app/boilerplate.cmake
@@ -51,17 +51,17 @@
 set_property(GLOBAL PROPERTY ZEPHYR_INTERFACE_LIBS "")

 define_property(GLOBAL PROPERTY GENERATED_KERNEL_OBJECT_FILES
-  BRIEF_DOCS "Object files that are generated after Zephyr has been linked once."
+  BRIEF_DOCS "Object files that are generated after symbol addresses are fixed."
   FULL_DOCS "\
-Object files that are generated after Zephyr has been linked once.\
+Object files that are generated after symbol addresses are fixed.\
 May include mmu tables, etc."
   )
 set_property(GLOBAL PROPERTY GENERATED_KERNEL_OBJECT_FILES "")

 define_property(GLOBAL PROPERTY GENERATED_KERNEL_SOURCE_FILES
-  BRIEF_DOCS "Source files that are generated after Zephyr has been linked once."
+  BRIEF_DOCS "Source files that are generated after symbol addresses are fixed."
   FULL_DOCS "\
-Source files that are generated after Zephyr has been linked once.\
+Source files that are generated after symbol addresses are fixed.\
 May include isr_tables.c etc."
   )
 set_property(GLOBAL PROPERTY GENERATED_KERNEL_SOURCE_FILES "")