From 4e660c43d64dc568e53f1fc37fe5c861ad79c9ab Mon Sep 17 00:00:00 2001 From: Alexander Neundorf Date: Sat, 26 Apr 2008 17:40:59 +0000 Subject: -add FindBoost.cmake from cmake 2.4.5, since the one from 2.6.9RC9 has a problem with the cmake policies Alex svn path=/trunk/KDE/kdelibs/; revision=801447 --- modules/FindBoost.cmake | 164 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 modules/FindBoost.cmake (limited to 'modules/FindBoost.cmake') diff --git a/modules/FindBoost.cmake b/modules/FindBoost.cmake new file mode 100644 index 00000000..85ec1ff2 --- /dev/null +++ b/modules/FindBoost.cmake @@ -0,0 +1,164 @@ +# - Find the Boost includes and libraries. +# The following variables are set if Boost is found. If Boost is not +# found, Boost_FOUND is set to false. +# Boost_FOUND - True when the Boost include directory is found. +# Boost_INCLUDE_DIRS - the path to where the boost include files are. +# Boost_LIBRARY_DIRS - The path to where the boost library files are. +# Boost_LIB_DIAGNOSTIC_DEFINITIONS - Only set if using Windows. + +# !!!!!!!!!!!!!!!!!!! +# this is FindBoost.cmake from cmake 2.4.4 to 2.4.8 +# it is here because the one in 2.6.0RC9 is slightly broken +# and will be removed again once 2.6.0 or 2.6.0RC10 is released +# Alex +# !!!!!!!!!!!!!!!!!!!!!! + +# ---------------------------------------------------------------------------- +# If you have installed Boost in a non-standard location or you have +# just staged the boost files using bjam then you have three +# options. In the following comments, it is assumed that +# points to the root directory of the include directory of Boost. e.g +# If you have put boost in C:\development\Boost then is +# "C:/development/Boost" and in this directory there will be two +# directories called "include" and "lib". +# 1) After CMake runs, set Boost_INCLUDE_DIR to /include/boost<-version> +# 2) Use CMAKE_INCLUDE_PATH to set a path to /include. This will allow FIND_PATH() +# to locate Boost_INCLUDE_DIR by utilizing the PATH_SUFFIXES option. e.g. +# SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "/include") +# 3) Set an environment variable called ${BOOST_ROOT} that points to the root of where you have +# installed Boost, e.g. . It is assumed that there is at least a subdirectory called +# include in this path. +# +# Note: +# 1) If you are just using the boost headers, then you do not need to use +# Boost_LIBRARY_DIRS in your CMakeLists.txt file. +# 2) If Boost has not been installed, then when setting Boost_LIBRARY_DIRS +# the script will look for /lib first and, if this fails, then for /stage/lib. +# +# Usage: +# In your CMakeLists.txt file do something like this: +# ... +# # Boost +# FIND_PACKAGE(Boost) +# ... +# INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) +# LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) +# +# In Windows, we make the assumption that, if the Boost files are installed, the default directory +# will be C:\boost. + +# +# TODO: +# +# 1) Automatically find the Boost library files and eliminate the need +# to use Link Directories. +# + +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") +ENDIF(WIN32) + + +SET(BOOST_INCLUDE_PATH_DESCRIPTION "directory containing the boost include files. E.g /usr/local/include/boost-1_33_1 or c:\\boost\\include\\boost-1_33_1") + +SET(BOOST_DIR_MESSAGE "Set the Boost_INCLUDE_DIR cmake cache entry to the ${BOOST_INCLUDE_PATH_DESCRIPTION}") + +SET(BOOST_DIR_SEARCH $ENV{BOOST_ROOT}) +IF(BOOST_DIR_SEARCH) + FILE(TO_CMAKE_PATH ${BOOST_DIR_SEARCH} BOOST_DIR_SEARCH) + SET(BOOST_DIR_SEARCH ${BOOST_DIR_SEARCH}/include) +ENDIF(BOOST_DIR_SEARCH) + +IF(WIN32) + SET(BOOST_DIR_SEARCH + ${BOOST_DIR_SEARCH} + C:/boost/include + D:/boost/include + ) +ENDIF(WIN32) + +# Add in some path suffixes. These will have to be updated whenever a new Boost version comes out. +SET(SUFFIX_FOR_PATH + boost-1_34_1 + boost-1_34_0 + boost-1_33_1 + boost-1_33_0 +) + +# +# Look for an installation. +# +FIND_PATH(Boost_INCLUDE_DIR NAMES boost/config.hpp PATH_SUFFIXES ${SUFFIX_FOR_PATH} PATHS + + # Look in other places. + ${BOOST_DIR_SEARCH} + + # Help the user find it if we cannot. + DOC "The ${BOOST_INCLUDE_PATH_DESCRIPTION}" +) + +# Assume we didn't find it. +SET(Boost_FOUND 0) + +# Now try to get the include and library path. +IF(Boost_INCLUDE_DIR) + + # 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_LIBRARY_DIR ${Boost_INCLUDE_DIR}) + + IF("${Boost_LIBRARY_DIR}" MATCHES "boost-[0-9]+") + GET_FILENAME_COMPONENT(Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR} PATH) + ENDIF ("${Boost_LIBRARY_DIR}" MATCHES "boost-[0-9]+") + + IF("${Boost_LIBRARY_DIR}" MATCHES "/include$") + # Strip off the trailing "/include" in the path. + GET_FILENAME_COMPONENT(Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR} PATH) + ENDIF("${Boost_LIBRARY_DIR}" MATCHES "/include$") + + IF(EXISTS "${Boost_LIBRARY_DIR}/lib") + SET (Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR}/lib) + ELSE(EXISTS "${Boost_LIBRARY_DIR}/lib") + IF(EXISTS "${Boost_LIBRARY_DIR}/stage/lib") + SET(Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR}/stage/lib) + ELSE(EXISTS "${Boost_LIBRARY_DIR}/stage/lib") + SET(Boost_LIBRARY_DIR "") + ENDIF(EXISTS "${Boost_LIBRARY_DIR}/stage/lib") + ENDIF(EXISTS "${Boost_LIBRARY_DIR}/lib") + + IF(EXISTS "${Boost_INCLUDE_DIR}") + SET(Boost_INCLUDE_DIRS ${Boost_INCLUDE_DIR}) + # We have found boost. It is possible that the user has not + # compiled any libraries so we set Boost_FOUND to be true here. + SET(Boost_FOUND 1) + ENDIF(EXISTS "${Boost_INCLUDE_DIR}") + + IF(Boost_LIBRARY_DIR AND EXISTS "${Boost_LIBRARY_DIR}") + SET(Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIR}) + ENDIF(Boost_LIBRARY_DIR AND EXISTS "${Boost_LIBRARY_DIR}") +ENDIF(Boost_INCLUDE_DIR) + +IF(NOT Boost_FOUND) + IF(NOT Boost_FIND_QUIETLY) + MESSAGE(STATUS "Boost was not found. ${BOOST_DIR_MESSAGE}") + ELSE(NOT Boost_FIND_QUIETLY) + IF(Boost_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Boost was not found. ${BOOST_DIR_MESSAGE}") + ENDIF(Boost_FIND_REQUIRED) + ENDIF(NOT Boost_FIND_QUIETLY) +ENDIF(NOT Boost_FOUND) + -- cgit v1.2.1 From c5df6012928ed05055fe0cd872b0fd534abfbf0b Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Thu, 8 May 2008 17:48:47 +0000 Subject: add two more include dirs can't we switch to FindBoost from cmake 2.6.0? CCMAIL: neundorf@kde.org svn path=/trunk/KDE/kdelibs/; revision=805536 --- modules/FindBoost.cmake | 2 ++ 1 file changed, 2 insertions(+) (limited to 'modules/FindBoost.cmake') diff --git a/modules/FindBoost.cmake b/modules/FindBoost.cmake index 85ec1ff2..5b685ef9 100644 --- a/modules/FindBoost.cmake +++ b/modules/FindBoost.cmake @@ -94,8 +94,10 @@ ENDIF(WIN32) SET(SUFFIX_FOR_PATH boost-1_34_1 boost-1_34_0 + boost-1_34 boost-1_33_1 boost-1_33_0 + boost-1_33 ) # -- cgit v1.2.1 From 7bc93dbb8a217688ba6e9379f957cd895aca5932 Mon Sep 17 00:00:00 2001 From: Andreas Pakulat Date: Sun, 6 Jul 2008 09:38:22 +0000 Subject: Copy over FindBoost.cmake from kdevplatform, which is 95% of the CMake 2.6 version of this module (the 5% are owed to the fact that we're not requiring CMake 2.6 yet, when we do this can be dropped completely). This is backwards compatible with the cmake 2.4 version we had before in terms of usage so there are no expected portings or breakages from this. (tested by a couple of cmake users while implementing this for CMake 2.6) svn path=/trunk/KDE/kdelibs/; revision=828628 --- modules/FindBoost.cmake | 693 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 551 insertions(+), 142 deletions(-) (limited to 'modules/FindBoost.cmake') diff --git a/modules/FindBoost.cmake b/modules/FindBoost.cmake index 5b685ef9..01075ec7 100644 --- a/modules/FindBoost.cmake +++ b/modules/FindBoost.cmake @@ -1,166 +1,575 @@ -# - Find the Boost includes and libraries. -# The following variables are set if Boost is found. If Boost is not -# found, Boost_FOUND is set to false. -# Boost_FOUND - True when the Boost include directory is found. -# Boost_INCLUDE_DIRS - the path to where the boost include files are. -# Boost_LIBRARY_DIRS - The path to where the boost library files are. -# Boost_LIB_DIAGNOSTIC_DEFINITIONS - Only set if using Windows. - -# !!!!!!!!!!!!!!!!!!! -# this is FindBoost.cmake from cmake 2.4.4 to 2.4.8 -# it is here because the one in 2.6.0RC9 is slightly broken -# and will be removed again once 2.6.0 or 2.6.0RC10 is released -# Alex -# !!!!!!!!!!!!!!!!!!!!!! - -# ---------------------------------------------------------------------------- -# If you have installed Boost in a non-standard location or you have -# just staged the boost files using bjam then you have three -# options. In the following comments, it is assumed that -# points to the root directory of the include directory of Boost. e.g -# If you have put boost in C:\development\Boost then is -# "C:/development/Boost" and in this directory there will be two -# directories called "include" and "lib". -# 1) After CMake runs, set Boost_INCLUDE_DIR to /include/boost<-version> -# 2) Use CMAKE_INCLUDE_PATH to set a path to /include. This will allow FIND_PATH() -# to locate Boost_INCLUDE_DIR by utilizing the PATH_SUFFIXES option. e.g. -# SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "/include") -# 3) Set an environment variable called ${BOOST_ROOT} that points to the root of where you have -# installed Boost, e.g. . It is assumed that there is at least a subdirectory called -# include in this path. +# - Try to find Boost include dirs and libraries +# Usage of this module as follows: # -# Note: -# 1) If you are just using the boost headers, then you do not need to use -# Boost_LIBRARY_DIRS in your CMakeLists.txt file. -# 2) If Boost has not been installed, then when setting Boost_LIBRARY_DIRS -# the script will look for /lib first and, if this fails, then for /stage/lib. +# SET(Boost_USE_STATIC_LIBS ON) +# SET(Boost_USE_MULTITHREAD OFF) +# FIND_PACKAGE( Boost COMPONENTS date_time filesystem iostreams ... ) # -# Usage: -# In your CMakeLists.txt file do something like this: -# ... -# # Boost -# FIND_PACKAGE(Boost) -# ... -# INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) -# LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) +# 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 the libraries. Unfortunately boost puts the version number into the +# actual filename for the libraries, so this might be needed in the future +# when new boost versions are released. # -# In Windows, we make the assumption that, if the Boost files are installed, the default directory -# will be C:\boost. - +# 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.0, 1.36.1 +# +# The components list needs to be the actual names of boost libraries, that is +# the part of the actual library files that differ on different libraries. So +# its "date_time" for "libboost_date_time...". Anything else will result in +# errors +# +# Variables used by this module, they can change the default behaviour and need to be set +# before calling find_package: +# Boost_USE_STATIC_LIBS Can be set to ON to force the use of static +# boost libraries. Defaults to OFF +# Boost_USE_MULTITHREAD Can be set to OFF to use the non-multithreaded +# boost libraries. Defaults to ON. +# Boost_ADDITIONAL_VERSIONS A list of version numbers to use for searching +# the boost include directory. The default list +# of version numbers is: +# 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.0, 1.36.1 +# If you want to look for an older or newer +# version set this variable to a list of +# strings, where each string contains a number, i.e. +# SET(Boost_ADDITIONAL_VERSIONS "0.99.0" "1.35.0") +# Boost_MINIMUM_VERSION Can be used to require a specific minimum version of boost. +# Should be set as a plain string in the form "major.minor[.subminor]". +# If this variable is set and find_package is called with the REQUIRED +# option, FindBoost.cmake will fail if it doesn't find a suitable version. +# BOOST_ROOT Preferred installation prefix for searching for Boost, +# set this if the module has problems finding the proper Boost installation +# BOOST_INCLUDEDIR Set this to the include directory of Boost, if the +# 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 +# +# The last three variables are available also as environment variables +# +# +# 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 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 its 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 Only set on windows. Can be used with add_definitions +# to print diagnostic information about the automatic +# linking done on windows +# +# For each component you list the following variables are set. +# ATTENTION: The component names need to be in lower case, just as the boost +# library names however the cmake variables use upper case for the component +# part. So you'd get Boost_SERIALIZATION_FOUND for example. +# +# Boost_${COMPONENT}_FOUND True IF the Boost library "component" was found. +# Boost_${COMPONENT}_LIBRARY The absolute path of the Boost library "component". +# Boost_${COMPONENT}_LIBRARY_DEBUG The absolute path of the debug version of the +# Boost library "component". +# Boost_${COMPONENT}_LIBRARY_RELEASE The absolute path of the release version of the +# Boost library "component" +# +# Copyright (c) 2006-2008 Andreas Schneider +# Copyright (c) 2007 Wengo +# Copyright (c) 2007 Mike Jackson +# Copyright (c) 2008 Andreas Pakulat # -# TODO: +# Redistribution AND use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. # -# 1) Automatically find the Boost library files and eliminate the need -# to use Link Directories. + +# MESSAGE(STATUS "Finding Boost libraries.... ") + +OPTION(Boost_USE_MULTITHREADED "Use the multithreaded versions of the boost libraries" ON) + +SET( _boost_TEST_VERSIONS ${Boost_ADDITIONAL_VERSIONS} "1.36.1" "1.36.0" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0" "1.34" "1.33.1" "1.33.0" "1.33" ) + + +############################################ # +# 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 +######################################################################### + +MACRO (_Boost_ADJUST_LIB_VARS basename) + IF (Boost_INCLUDE_DIR ) + #MESSAGE(STATUS "Adjusting ${basename} ") + + IF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE) + # if the generator supports configuration types then set + # 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(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) + # 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(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) + SET(Boost_${basename}_LIBRARIES optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG}) + ENDIF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE) + + # 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 (Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG) -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. + # 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 (Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE) - # 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 (Boost_${basename}_LIBRARY) + SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY} CACHE FILEPATH "The Boost ${basename} library") + GET_FILENAME_COMPONENT(Boost_LIBRARY_DIRS "${Boost_${basename}_LIBRARY}" PATH) + SET(Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIRS} CACHE FILEPATH "Boost library directory") + SET(Boost_${basename}_FOUND ON CACHE INTERNAL "Was the boost boost ${basename} library found") + ENDIF (Boost_${basename}_LIBRARY) + + 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) + +#------------------------------------------------------------------------------- - # 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") -ENDIF(WIN32) +SET( _boost_IN_CACHE TRUE) +IF(Boost_INCLUDE_DIR) + 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) -SET(BOOST_INCLUDE_PATH_DESCRIPTION "directory containing the boost include files. E.g /usr/local/include/boost-1_33_1 or c:\\boost\\include\\boost-1_33_1") +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") +ELSE (_boost_IN_CACHE) + # Need to search for boost -SET(BOOST_DIR_MESSAGE "Set the Boost_INCLUDE_DIR cmake cache entry to the ${BOOST_INCLUDE_PATH_DESCRIPTION}") + 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. -SET(BOOST_DIR_SEARCH $ENV{BOOST_ROOT}) -IF(BOOST_DIR_SEARCH) - FILE(TO_CMAKE_PATH ${BOOST_DIR_SEARCH} BOOST_DIR_SEARCH) - SET(BOOST_DIR_SEARCH ${BOOST_DIR_SEARCH}/include) -ENDIF(BOOST_DIR_SEARCH) + # 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(WIN32) - SET(BOOST_DIR_SEARCH - ${BOOST_DIR_SEARCH} + # If you want to observe which libraries are being linked against then defining + # BOOST_LIB_DIAGNOSTIC will cause the auto-linking code to emit a #pragma message each time + # a library is selected for linking. + SET(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC" CACHE STRING "Boost diagnostic define") + ENDIF(WIN32) + + + SET(_boost_INCLUDE_SEARCH_DIRS C:/boost/include - D:/boost/include + "C:/Program Files/boost/boost_${Boost_MINIMUM_VERSION}" + # D: is very often the cdrom drive, IF you don't have a + # cdrom inserted it will popup a very annoying dialog + #D:/boost/include + /sw/local/include ) -ENDIF(WIN32) - -# Add in some path suffixes. These will have to be updated whenever a new Boost version comes out. -SET(SUFFIX_FOR_PATH - boost-1_34_1 - boost-1_34_0 - boost-1_34 - boost-1_33_1 - boost-1_33_0 - boost-1_33 -) -# -# Look for an installation. -# -FIND_PATH(Boost_INCLUDE_DIR NAMES boost/config.hpp PATH_SUFFIXES ${SUFFIX_FOR_PATH} PATHS + SET(_boost_LIBRARIES_SEARCH_DIRS + C:/boost/lib + "C:/Program Files/boost/boost_${Boost_MINIMUM_VERSION}/lib" + /sw/local/lib + ) - # Look in other places. - ${BOOST_DIR_SEARCH} + IF( NOT $ENV{BOOST_ROOT} STREQUAL "" ) + SET(_boost_INCLUDE_SEARCH_DIRS $ENV{BOOST_ROOT}/include ${_boost_INCLUDE_SEARCH_DIRS}) + SET(_boost_LIBRARIES_SEARCH_DIRS $ENV{BOOST_ROOT}/lib ${_boost_INCLUDE_SEARCH_DIRS}) + ENDIF( NOT $ENV{BOOST_ROOT} STREQUAL "" ) - # Help the user find it if we cannot. - DOC "The ${BOOST_INCLUDE_PATH_DESCRIPTION}" -) + IF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" ) + SET(_boost_INCLUDE_SEARCH_DIRS $ENV{BOOST_INCLUDEDIR} ${_boost_INCLUDE_SEARCH_DIRS}) + ENDIF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" ) -# Assume we didn't find it. -SET(Boost_FOUND 0) + IF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" ) + SET(_boost_LIBRARIES_SEARCH_DIRS $ENV{BOOST_LIBRARYDIR} ${_boost_INCLUDE_SEARCH_DIRS}) + ENDIF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" ) -# Now try to get the include and library path. -IF(Boost_INCLUDE_DIR) + IF( BOOST_ROOT ) + IF( WIN32 ) + SET(_boost_INCLUDE_SEARCH_DIRS ${BOOST_ROOT} ${_boost_INCLUDE_SEARCH_DIRS}) + ELSE( WIN32 ) + SET(_boost_INCLUDE_SEARCH_DIRS ${BOOST_ROOT}/include ${_boost_INCLUDE_SEARCH_DIRS}) + ENDIF( WIN32 ) + SET(_boost_LIBRARIES_SEARCH_DIRS ${BOOST_ROOT}/lib ${_boost_LIBRARIES_SEARCH_DIRS}) + ENDIF( BOOST_ROOT ) - # 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_LIBRARY_DIR ${Boost_INCLUDE_DIR}) - - IF("${Boost_LIBRARY_DIR}" MATCHES "boost-[0-9]+") - GET_FILENAME_COMPONENT(Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR} PATH) - ENDIF ("${Boost_LIBRARY_DIR}" MATCHES "boost-[0-9]+") - - IF("${Boost_LIBRARY_DIR}" MATCHES "/include$") - # Strip off the trailing "/include" in the path. - GET_FILENAME_COMPONENT(Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR} PATH) - ENDIF("${Boost_LIBRARY_DIR}" MATCHES "/include$") - - IF(EXISTS "${Boost_LIBRARY_DIR}/lib") - SET (Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR}/lib) - ELSE(EXISTS "${Boost_LIBRARY_DIR}/lib") - IF(EXISTS "${Boost_LIBRARY_DIR}/stage/lib") - SET(Boost_LIBRARY_DIR ${Boost_LIBRARY_DIR}/stage/lib) - ELSE(EXISTS "${Boost_LIBRARY_DIR}/stage/lib") - SET(Boost_LIBRARY_DIR "") - ENDIF(EXISTS "${Boost_LIBRARY_DIR}/stage/lib") - ENDIF(EXISTS "${Boost_LIBRARY_DIR}/lib") - - IF(EXISTS "${Boost_INCLUDE_DIR}") - SET(Boost_INCLUDE_DIRS ${Boost_INCLUDE_DIR}) - # We have found boost. It is possible that the user has not - # compiled any libraries so we set Boost_FOUND to be true here. - SET(Boost_FOUND 1) - ENDIF(EXISTS "${Boost_INCLUDE_DIR}") - - IF(Boost_LIBRARY_DIR AND EXISTS "${Boost_LIBRARY_DIR}") - SET(Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIR}) - ENDIF(Boost_LIBRARY_DIR AND EXISTS "${Boost_LIBRARY_DIR}") -ENDIF(Boost_INCLUDE_DIR) + IF( BOOST_INCLUDEDIR ) + SET(_boost_INCLUDE_SEARCH_DIRS ${BOOST_INCLUDEDIR} ${_boost_INCLUDE_SEARCH_DIRS}) + ENDIF( BOOST_INCLUDEDIR ) + + IF( BOOST_LIBRARYDIR ) + SET(_boost_LIBRARIES_SEARCH_DIRS ${BOOST_LIBRARYDIR} ${_boost_LIBRARIES_SEARCH_DIRS}) + ENDIF( BOOST_LIBRARYDIR ) + + IF( Boost_MINIMUM_VERSION ) + IF(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+\\.[0-9]") + STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" Boost_FIND_VERSION_MAJOR ${Boost_MINIMUM_VERSION}) + STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" Boost_FIND_VERSION_MINOR ${Boost_MINIMUM_VERSION}) + STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" Boost_FIND_VERSION_PATCH ${Boost_MINIMUM_VERSION}) + ELSEIF(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+") + STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1" Boost_FIND_VERSION_MAJOR ${Boost_MINIMUM_VERSION}) + STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\2" Boost_FIND_VERSION_MINOR ${Boost_MINIMUM_VERSION}) + SET(Boost_FIND_VERSION_PATCH 0) + ELSE(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+\\.[0-9]") + MESSAGE(FATAL_ERROR "Wrong format for Boost_MINIMUM_VERSION variable, the format needs to be major.minor[.subminor]") + ENDIF(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+\\.[0-9]") + + ENDIF( Boost_MINIMUM_VERSION ) + + + # Try first in our own include search paths (e.g. BOOST_ROOT) + FOREACH(_boost_VER ${_boost_TEST_VERSIONS}) + IF( NOT Boost_INCLUDE_DIR ) + + # Add in a path suffix, based on the required version, ideally we could + # read this from version.hpp, but for that to work we'd need to know the include + # dir already + SET(_boost_PATH_SUFFIX + boost-${_boost_VER} + ) -IF(NOT Boost_FOUND) - IF(NOT Boost_FIND_QUIETLY) - MESSAGE(STATUS "Boost was not found. ${BOOST_DIR_MESSAGE}") - ELSE(NOT Boost_FIND_QUIETLY) - IF(Boost_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Boost was not found. ${BOOST_DIR_MESSAGE}") - ENDIF(Boost_FIND_REQUIRED) - ENDIF(NOT Boost_FIND_QUIETLY) -ENDIF(NOT Boost_FOUND) + IF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") + STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX}) + ELSEIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+") + STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX}) + ENDIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") + + FIND_PATH(Boost_INCLUDE_DIR + NAMES boost/config.hpp + PATHS ${_boost_INCLUDE_SEARCH_DIRS} + PATH_SUFFIXES ${_boost_PATH_SUFFIX} + NO_DEFAULT_PATH + ) + + ENDIF( NOT Boost_INCLUDE_DIR ) + ENDFOREACH(_boost_VER) + + # If nothing is found search again using system default paths + FOREACH(_boost_VER ${_boost_TEST_VERSIONS}) + IF( NOT Boost_INCLUDE_DIR ) + + # Add in a path suffix, based on the required version, ideally we could + # read this from version.hpp, but for that to work we'd need to know the include + # dir already + SET(_boost_PATH_SUFFIX + boost-${_boost_VER} + ) + + IF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") + STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX}) + ELSEIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+") + STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX}) + ENDIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") + + FIND_PATH(Boost_INCLUDE_DIR + NAMES boost/config.hpp + PATH_SUFFIXES ${_boost_PATH_SUFFIX} + ) + + ENDIF(NOT Boost_INCLUDE_DIR) + ENDFOREACH(_boost_VER) + + IF(Boost_INCLUDE_DIR) + # Extract Boost_VERSION and Boost_LIB_VERSION from version.hpp + # Read the whole file: + # + SET(BOOST_VERSION 0) + SET(BOOST_LIB_VERSION "") + FILE(READ "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS) + + 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") + ENDIF(NOT "${Boost_VERSION}" STREQUAL "0") + ENDIF(Boost_INCLUDE_DIR) + + #Setting some more suffixes for the library + SET (Boost_LIB_PREFIX "") + IF ( WIN32 AND Boost_USE_STATIC_LIBS ) + SET (Boost_LIB_PREFIX "lib") + ENDIF ( WIN32 AND Boost_USE_STATIC_LIBS ) + SET (_boost_COMPILER "-gcc") + IF (MSVC71) + SET (_boost_COMPILER "-vc71") + ENDIF(MSVC71) + IF (MSVC80) + SET (_boost_COMPILER "-vc80") + ENDIF(MSVC80) + IF (MSVC90) + SET (_boost_COMPILER "-vc90") + ENDIF(MSVC90) + IF (MINGW) + EXEC_PROGRAM(${CMAKE_CXX_COMPILER} + ARGS --version + OUTPUT_VARIABLE _boost_COMPILER_VERSION + ) + STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.[0-9].*" "\\1\\2" + _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION}) + SET (_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}") + ENDIF(MINGW) + IF (CYGWIN) + SET (_boost_COMPILER "-gcc") + ENDIF (CYGWIN) + IF (UNIX) + IF (APPLE) + SET (_boost_COMPILER "") + ELSE (APPLE) + IF (NOT CMAKE_COMPILER_IS_GNUCC) + # This is for the intel compiler + SET (_boost_COMPILER "-il") + ELSE (NOT CMAKE_COMPILER_IS_GNUCC) + #find out the version of gcc being used. + EXEC_PROGRAM(${CMAKE_CXX_COMPILER} + ARGS --version + OUTPUT_VARIABLE _boost_COMPILER_VERSION + ) + STRING(REGEX MATCH "([0-9])\\.([0-9])\\.[0-9]" + _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION}) + STRING(REGEX REPLACE "([0-9])\\.([0-9])\\.[0-9]" "\\1\\2" + _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION}) + SET (_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}") + ENDIF (NOT CMAKE_COMPILER_IS_GNUCC) + ENDIF (APPLE) + ENDIF(UNIX) + + SET (_boost_MULTITHREADED "-mt") + + IF( NOT Boost_USE_MULTITHREADED ) + SET (_boost_MULTITHREADED "") + ENDIF( NOT Boost_USE_MULTITHREADED ) + + SET( _boost_STATIC_TAG "") + IF (WIN32) + IF(MSVC) + SET (_boost_ABI_TAG "g") + ENDIF(MSVC) + IF( Boost_USE_STATIC_LIBS ) + SET( _boost_STATIC_TAG "-s") + ENDIF( Boost_USE_STATIC_LIBS ) + ENDIF(WIN32) + SET (_boost_ABI_TAG "${_boost_ABI_TAG}d") + + # ------------------------------------------------------------------------ + # Begin finding boost libraries + # ------------------------------------------------------------------------ + 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") + # 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(WIN32) + SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) + ENDIF(WIN32) + ENDIF( Boost_USE_STATIC_LIBS ) + FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE + NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT} + PATHS ${_boost_LIBRARIES_SEARCH_DIRS} + NO_DEFAULT_PATH + ) + + IF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE} ) + FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE + NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT} + ) + ENDIF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE} ) + + FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG + NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG} + PATHS ${_boost_LIBRARIES_SEARCH_DIRS} + NO_DEFAULT_PATH + ) + + IF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG} ) + FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG + NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG} + ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG} + ) + ENDIF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG} ) + IF( Boost_USE_STATIC_LIBS ) + SET(CMAKE_FIND_LIBRARY_SUFFIXES ${_boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) + ENDIF( Boost_USE_STATIC_LIBS ) + + _Boost_ADJUST_LIB_VARS(${UPPERCOMPONENT}) + ENDFOREACH(COMPONENT) + # ------------------------------------------------------------------------ + # End finding boost libraries + # ------------------------------------------------------------------------ + + SET(Boost_INCLUDE_DIRS + ${Boost_INCLUDE_DIR} + ) + + # MESSAGE(STATUS "Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}") + # MESSAGE(STATUS "Boost_LIBRARIES: ${Boost_LIBRARIES}") + + SET(Boost_FOUND FALSE) + IF(Boost_INCLUDE_DIR) + SET( Boost_FOUND TRUE ) + IF( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" ) + SET( Boost_FOUND FALSE ) + ELSE( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" ) + IF( Boost_FIND_VERSION_MINOR AND Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" ) + SET( Boost_FOUND FALSE ) + ELSE( Boost_FIND_VERSION_MINOR AND Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" ) + IF( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" ) + SET( Boost_FOUND FALSE ) + ENDIF( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" ) + ENDIF( Boost_FIND_VERSION_MINOR AND Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" ) + ENDIF( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" ) + set(_boost_CHECKED_COMPONENT FALSE) + FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) + STRING(TOUPPER ${COMPONENT} COMPONENT) + set(_boost_CHECKED_COMPONENT TRUE) + IF(NOT Boost_${COMPONENT}_FOUND) + SET( Boost_FOUND FALSE) + ENDIF(NOT Boost_${COMPONENT}_FOUND) + ENDFOREACH(COMPONENT) + IF( NOT Boost_LIBRARY_DIRS AND NOT _boost_CHECKED_COMPONENT ) + # Compatibility Code for backwards compatibility with CMake 2.4 + + # Look for the boost library path. + # 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}") + MESSAGE(STATUS "Found the following Boost libraries:") + 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 (Boost_FOUND) + IF (Boost_FIND_REQUIRED) + MESSAGE(STATUS "Boost Version required: ${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.${Boost_FIND_VERSION_PATCH} Found: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}") + MESSAGE(FATAL_ERROR "Couldn't find the Boost libraries and/or include directory, or the version found is too old. Please install the Boost libraries AND development packages. You can set BOOST_ROOT, BOOST_INCLUDEDIR and BOOST_LIBRARYDIR to help find Boost.") + ENDIF(Boost_FIND_REQUIRED) + ENDIF(Boost_FOUND) + + # Under Windows, automatic linking is performed, so no need to specify the libraries. + IF (WIN32) + IF (NOT MINGW) + SET(Boost_LIBRARIES "") + ENDIF (NOT MINGW) + ENDIF(WIN32) + + # 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 + Boost_USE_MULTITHREADED + ) +ENDIF(_boost_IN_CACHE) -- cgit v1.2.1 From 26ecc84e22b0b5ee47221bea5d009af03c50cefc Mon Sep 17 00:00:00 2001 From: Helio Castro Date: Tue, 15 Jul 2008 21:19:57 +0000 Subject: - Logic fix for boost subminor test detection by Andreas Pakulat. It fixes Mandriva 1.35.0 boos detection svn path=/trunk/KDE/kdelibs/; revision=832964 --- modules/FindBoost.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'modules/FindBoost.cmake') diff --git a/modules/FindBoost.cmake b/modules/FindBoost.cmake index 01075ec7..7f3aff9e 100644 --- a/modules/FindBoost.cmake +++ b/modules/FindBoost.cmake @@ -482,10 +482,10 @@ ELSE (_boost_IN_CACHE) SET( Boost_FOUND TRUE ) IF( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" ) SET( Boost_FOUND FALSE ) - ELSE( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" ) + ELSEIF( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" ) IF( Boost_FIND_VERSION_MINOR AND Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" ) SET( Boost_FOUND FALSE ) - ELSE( Boost_FIND_VERSION_MINOR AND Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" ) + ELSEIF( Boost_FIND_VERSION_MINOR AND 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 ) ENDIF( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" ) -- cgit v1.2.1 From 0e9f2607bd3f11589b5fab95ba888f421c18dbb1 Mon Sep 17 00:00:00 2001 From: Andreas Pakulat Date: Thu, 11 Sep 2008 21:21:33 +0000 Subject: Also search for "1.36" svn path=/trunk/KDE/kdelibs/; revision=860070 --- modules/FindBoost.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'modules/FindBoost.cmake') diff --git a/modules/FindBoost.cmake b/modules/FindBoost.cmake index 7f3aff9e..171409c6 100644 --- a/modules/FindBoost.cmake +++ b/modules/FindBoost.cmake @@ -12,7 +12,7 @@ # 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.0, 1.36.1 +# 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 # # The components list needs to be the actual names of boost libraries, that is # the part of the actual library files that differ on different libraries. So @@ -93,7 +93,7 @@ OPTION(Boost_USE_MULTITHREADED "Use the multithreaded versions of the boost libraries" ON) -SET( _boost_TEST_VERSIONS ${Boost_ADDITIONAL_VERSIONS} "1.36.1" "1.36.0" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0" "1.34" "1.33.1" "1.33.0" "1.33" ) +SET( _boost_TEST_VERSIONS ${Boost_ADDITIONAL_VERSIONS} "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" ) ############################################ -- cgit v1.2.1 From 871ed131dbeec812da54b47c8f2da6b68d538db5 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Sun, 23 Nov 2008 14:25:02 +0000 Subject: boost 1.37 is out now svn path=/trunk/KDE/kdelibs/; revision=888030 --- modules/FindBoost.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'modules/FindBoost.cmake') diff --git a/modules/FindBoost.cmake b/modules/FindBoost.cmake index 171409c6..c378d821 100644 --- a/modules/FindBoost.cmake +++ b/modules/FindBoost.cmake @@ -93,7 +93,7 @@ OPTION(Boost_USE_MULTITHREADED "Use the multithreaded versions of the boost libraries" ON) -SET( _boost_TEST_VERSIONS ${Boost_ADDITIONAL_VERSIONS} "1.36.1" "1.36.0" "1.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 ${Boost_ADDITIONAL_VERSIONS} "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" ) ############################################ @@ -253,6 +253,7 @@ ELSE (_boost_IN_CACHE) IF(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+\\.[0-9]") STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" Boost_FIND_VERSION_MAJOR ${Boost_MINIMUM_VERSION}) STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" Boost_FIND_VERSION_MINOR ${Boost_MINIMUM_VERSION}) + message(STATUS "3") STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" Boost_FIND_VERSION_PATCH ${Boost_MINIMUM_VERSION}) ELSEIF(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+") STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1" Boost_FIND_VERSION_MAJOR ${Boost_MINIMUM_VERSION}) -- cgit v1.2.1 From 75908891c6843f01bcf544c3759e0cf7e4cd3bb3 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Sun, 23 Nov 2008 18:04:56 +0000 Subject: SVN_SILENT: remove debug output svn path=/trunk/KDE/kdelibs/; revision=888076 --- modules/FindBoost.cmake | 1 - 1 file changed, 1 deletion(-) (limited to 'modules/FindBoost.cmake') diff --git a/modules/FindBoost.cmake b/modules/FindBoost.cmake index c378d821..cf0333a0 100644 --- a/modules/FindBoost.cmake +++ b/modules/FindBoost.cmake @@ -253,7 +253,6 @@ ELSE (_boost_IN_CACHE) IF(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+\\.[0-9]") STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" Boost_FIND_VERSION_MAJOR ${Boost_MINIMUM_VERSION}) STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" Boost_FIND_VERSION_MINOR ${Boost_MINIMUM_VERSION}) - message(STATUS "3") STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" Boost_FIND_VERSION_PATCH ${Boost_MINIMUM_VERSION}) ELSEIF(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+") STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1" Boost_FIND_VERSION_MAJOR ${Boost_MINIMUM_VERSION}) -- cgit v1.2.1 From abaf53ba35773fb51af489096eefd07a1a5d232e Mon Sep 17 00:00:00 2001 From: Andreas Pakulat Date: Sun, 10 May 2009 20:26:00 +0000 Subject: Reduce this file to a minimal version, CMake 2.6.2 ships with a quite good and improved (compared to this version) FindBoost.cmake. For backward compatibility we're adding 1.37 to Boost_ADDITIONAL_VERSIONS, that should stay the only version in this file, so once we update our cmake requirement this file can go completely. CCMAIL:kde-buildsystem@kde.org svn path=/trunk/KDE/kdelibs/; revision=966265 --- modules/FindBoost.cmake | 582 +----------------------------------------------- 1 file changed, 12 insertions(+), 570 deletions(-) (limited to 'modules/FindBoost.cmake') diff --git a/modules/FindBoost.cmake b/modules/FindBoost.cmake index cf0333a0..c2dd58f0 100644 --- a/modules/FindBoost.cmake +++ b/modules/FindBoost.cmake @@ -1,575 +1,17 @@ # - Try to find Boost include dirs and libraries -# Usage of this module as follows: # -# SET(Boost_USE_STATIC_LIBS ON) -# SET(Boost_USE_MULTITHREAD OFF) -# FIND_PACKAGE( Boost COMPONENTS date_time filesystem iostreams ... ) -# -# 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 the libraries. Unfortunately boost puts the version number into the -# actual filename for the libraries, so this might 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 -# -# The components list needs to be the actual names of boost libraries, that is -# the part of the actual library files that differ on different libraries. So -# its "date_time" for "libboost_date_time...". Anything else will result in -# errors -# -# Variables used by this module, they can change the default behaviour and need to be set -# before calling find_package: -# Boost_USE_STATIC_LIBS Can be set to ON to force the use of static -# boost libraries. Defaults to OFF -# Boost_USE_MULTITHREAD Can be set to OFF to use the non-multithreaded -# boost libraries. Defaults to ON. -# Boost_ADDITIONAL_VERSIONS A list of version numbers to use for searching -# the boost include directory. The default list -# of version numbers is: -# 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.0, 1.36.1 -# If you want to look for an older or newer -# version set this variable to a list of -# strings, where each string contains a number, i.e. -# SET(Boost_ADDITIONAL_VERSIONS "0.99.0" "1.35.0") -# Boost_MINIMUM_VERSION Can be used to require a specific minimum version of boost. -# Should be set as a plain string in the form "major.minor[.subminor]". -# If this variable is set and find_package is called with the REQUIRED -# option, FindBoost.cmake will fail if it doesn't find a suitable version. -# BOOST_ROOT Preferred installation prefix for searching for Boost, -# set this if the module has problems finding the proper Boost installation -# BOOST_INCLUDEDIR Set this to the include directory of Boost, if the -# 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 -# -# The last three variables are available also as environment variables -# -# -# 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 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 its 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 Only set on windows. Can be used with add_definitions -# to print diagnostic information about the automatic -# linking done on windows -# -# For each component you list the following variables are set. -# ATTENTION: The component names need to be in lower case, just as the boost -# library names however the cmake variables use upper case for the component -# part. So you'd get Boost_SERIALIZATION_FOUND for example. -# -# Boost_${COMPONENT}_FOUND True IF the Boost library "component" was found. -# Boost_${COMPONENT}_LIBRARY The absolute path of the Boost library "component". -# Boost_${COMPONENT}_LIBRARY_DEBUG The absolute path of the debug version of the -# Boost library "component". -# Boost_${COMPONENT}_LIBRARY_RELEASE The absolute path of the release version of the -# Boost library "component" -# -# Copyright (c) 2006-2008 Andreas Schneider -# Copyright (c) 2007 Wengo -# Copyright (c) 2007 Mike Jackson -# Copyright (c) 2008 Andreas Pakulat -# -# Redistribution AND use is allowed according to the terms of the New -# BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. -# - -# MESSAGE(STATUS "Finding Boost libraries.... ") - -OPTION(Boost_USE_MULTITHREADED "Use the multithreaded versions of the boost libraries" ON) - -SET( _boost_TEST_VERSIONS ${Boost_ADDITIONAL_VERSIONS} "1.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" ) - - -############################################ -# -# 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 -######################################################################### - -MACRO (_Boost_ADJUST_LIB_VARS basename) - IF (Boost_INCLUDE_DIR ) - #MESSAGE(STATUS "Adjusting ${basename} ") - - IF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE) - # if the generator supports configuration types then set - # 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(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - # 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(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE) - SET(Boost_${basename}_LIBRARIES optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG}) - ENDIF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE) - - # 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 (Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG) - - # 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 (Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE) - - IF (Boost_${basename}_LIBRARY) - SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY} CACHE FILEPATH "The Boost ${basename} library") - GET_FILENAME_COMPONENT(Boost_LIBRARY_DIRS "${Boost_${basename}_LIBRARY}" PATH) - SET(Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIRS} CACHE FILEPATH "Boost library directory") - SET(Boost_${basename}_FOUND ON CACHE INTERNAL "Was the boost boost ${basename} library found") - ENDIF (Boost_${basename}_LIBRARY) - - 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) - -#------------------------------------------------------------------------------- - - -SET( _boost_IN_CACHE TRUE) -IF(Boost_INCLUDE_DIR) - 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") -ELSE (_boost_IN_CACHE) - # Need to search for boost - - IF(WIN32) - # In windows, automatic linking is performed, so you do not have to specify the libraries. - # If you are linking to a dynamic runtime, then you can choose to link to either a static or a - # dynamic Boost library, the default is to do a static link. You can alter this for a specific - # library "whatever" by defining BOOST_WHATEVER_DYN_LINK to force Boost library "whatever" to - # be linked dynamically. Alternatively you can force all Boost libraries to dynamic link by - # defining BOOST_ALL_DYN_LINK. - - # This feature can be disabled for Boost library "whatever" by defining BOOST_WHATEVER_NO_LIB, - # or for all of Boost by defining BOOST_ALL_NO_LIB. - - # If you want to observe which libraries are being linked against then defining - # BOOST_LIB_DIAGNOSTIC will cause the auto-linking code to emit a #pragma message each time - # a library is selected for linking. - SET(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC" CACHE STRING "Boost diagnostic define") - ENDIF(WIN32) - - - SET(_boost_INCLUDE_SEARCH_DIRS - C:/boost/include - "C:/Program Files/boost/boost_${Boost_MINIMUM_VERSION}" - # D: is very often the cdrom drive, IF you don't have a - # cdrom inserted it will popup a very annoying dialog - #D:/boost/include - /sw/local/include - ) - - SET(_boost_LIBRARIES_SEARCH_DIRS - C:/boost/lib - "C:/Program Files/boost/boost_${Boost_MINIMUM_VERSION}/lib" - /sw/local/lib - ) - - IF( NOT $ENV{BOOST_ROOT} STREQUAL "" ) - SET(_boost_INCLUDE_SEARCH_DIRS $ENV{BOOST_ROOT}/include ${_boost_INCLUDE_SEARCH_DIRS}) - SET(_boost_LIBRARIES_SEARCH_DIRS $ENV{BOOST_ROOT}/lib ${_boost_INCLUDE_SEARCH_DIRS}) - ENDIF( NOT $ENV{BOOST_ROOT} STREQUAL "" ) - - IF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" ) - SET(_boost_INCLUDE_SEARCH_DIRS $ENV{BOOST_INCLUDEDIR} ${_boost_INCLUDE_SEARCH_DIRS}) - ENDIF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" ) - - IF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" ) - SET(_boost_LIBRARIES_SEARCH_DIRS $ENV{BOOST_LIBRARYDIR} ${_boost_INCLUDE_SEARCH_DIRS}) - ENDIF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" ) - - IF( BOOST_ROOT ) - IF( WIN32 ) - SET(_boost_INCLUDE_SEARCH_DIRS ${BOOST_ROOT} ${_boost_INCLUDE_SEARCH_DIRS}) - ELSE( WIN32 ) - SET(_boost_INCLUDE_SEARCH_DIRS ${BOOST_ROOT}/include ${_boost_INCLUDE_SEARCH_DIRS}) - ENDIF( WIN32 ) - SET(_boost_LIBRARIES_SEARCH_DIRS ${BOOST_ROOT}/lib ${_boost_LIBRARIES_SEARCH_DIRS}) - ENDIF( BOOST_ROOT ) - - IF( BOOST_INCLUDEDIR ) - SET(_boost_INCLUDE_SEARCH_DIRS ${BOOST_INCLUDEDIR} ${_boost_INCLUDE_SEARCH_DIRS}) - ENDIF( BOOST_INCLUDEDIR ) - - IF( BOOST_LIBRARYDIR ) - SET(_boost_LIBRARIES_SEARCH_DIRS ${BOOST_LIBRARYDIR} ${_boost_LIBRARIES_SEARCH_DIRS}) - ENDIF( BOOST_LIBRARYDIR ) - - IF( Boost_MINIMUM_VERSION ) - IF(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+\\.[0-9]") - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" Boost_FIND_VERSION_MAJOR ${Boost_MINIMUM_VERSION}) - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" Boost_FIND_VERSION_MINOR ${Boost_MINIMUM_VERSION}) - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" Boost_FIND_VERSION_PATCH ${Boost_MINIMUM_VERSION}) - ELSEIF(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+") - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1" Boost_FIND_VERSION_MAJOR ${Boost_MINIMUM_VERSION}) - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\2" Boost_FIND_VERSION_MINOR ${Boost_MINIMUM_VERSION}) - SET(Boost_FIND_VERSION_PATCH 0) - ELSE(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+\\.[0-9]") - MESSAGE(FATAL_ERROR "Wrong format for Boost_MINIMUM_VERSION variable, the format needs to be major.minor[.subminor]") - ENDIF(Boost_MINIMUM_VERSION MATCHES "[0-9]+\\.[0-9]+\\.[0-9]") - - ENDIF( Boost_MINIMUM_VERSION ) - - - # Try first in our own include search paths (e.g. BOOST_ROOT) - FOREACH(_boost_VER ${_boost_TEST_VERSIONS}) - IF( NOT Boost_INCLUDE_DIR ) - - # Add in a path suffix, based on the required version, ideally we could - # read this from version.hpp, but for that to work we'd need to know the include - # dir already - SET(_boost_PATH_SUFFIX - boost-${_boost_VER} - ) - - IF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX}) - ELSEIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+") - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX}) - ENDIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") - - FIND_PATH(Boost_INCLUDE_DIR - NAMES boost/config.hpp - PATHS ${_boost_INCLUDE_SEARCH_DIRS} - PATH_SUFFIXES ${_boost_PATH_SUFFIX} - NO_DEFAULT_PATH - ) - - ENDIF( NOT Boost_INCLUDE_DIR ) - ENDFOREACH(_boost_VER) - - # If nothing is found search again using system default paths - FOREACH(_boost_VER ${_boost_TEST_VERSIONS}) - IF( NOT Boost_INCLUDE_DIR ) - - # Add in a path suffix, based on the required version, ideally we could - # read this from version.hpp, but for that to work we'd need to know the include - # dir already - SET(_boost_PATH_SUFFIX - boost-${_boost_VER} - ) - - IF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX}) - ELSEIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+") - STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2" _boost_PATH_SUFFIX ${_boost_PATH_SUFFIX}) - ENDIF(_boost_PATH_SUFFIX MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+") - - FIND_PATH(Boost_INCLUDE_DIR - NAMES boost/config.hpp - PATH_SUFFIXES ${_boost_PATH_SUFFIX} - ) - - ENDIF(NOT Boost_INCLUDE_DIR) - ENDFOREACH(_boost_VER) - - IF(Boost_INCLUDE_DIR) - # Extract Boost_VERSION and Boost_LIB_VERSION from version.hpp - # Read the whole file: - # - SET(BOOST_VERSION 0) - SET(BOOST_LIB_VERSION "") - FILE(READ "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS) - - 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") - ENDIF(NOT "${Boost_VERSION}" STREQUAL "0") - ENDIF(Boost_INCLUDE_DIR) - - #Setting some more suffixes for the library - SET (Boost_LIB_PREFIX "") - IF ( WIN32 AND Boost_USE_STATIC_LIBS ) - SET (Boost_LIB_PREFIX "lib") - ENDIF ( WIN32 AND Boost_USE_STATIC_LIBS ) - SET (_boost_COMPILER "-gcc") - IF (MSVC71) - SET (_boost_COMPILER "-vc71") - ENDIF(MSVC71) - IF (MSVC80) - SET (_boost_COMPILER "-vc80") - ENDIF(MSVC80) - IF (MSVC90) - SET (_boost_COMPILER "-vc90") - ENDIF(MSVC90) - IF (MINGW) - EXEC_PROGRAM(${CMAKE_CXX_COMPILER} - ARGS --version - OUTPUT_VARIABLE _boost_COMPILER_VERSION - ) - STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.[0-9].*" "\\1\\2" - _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION}) - SET (_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}") - ENDIF(MINGW) - IF (CYGWIN) - SET (_boost_COMPILER "-gcc") - ENDIF (CYGWIN) - IF (UNIX) - IF (APPLE) - SET (_boost_COMPILER "") - ELSE (APPLE) - IF (NOT CMAKE_COMPILER_IS_GNUCC) - # This is for the intel compiler - SET (_boost_COMPILER "-il") - ELSE (NOT CMAKE_COMPILER_IS_GNUCC) - #find out the version of gcc being used. - EXEC_PROGRAM(${CMAKE_CXX_COMPILER} - ARGS --version - OUTPUT_VARIABLE _boost_COMPILER_VERSION - ) - STRING(REGEX MATCH "([0-9])\\.([0-9])\\.[0-9]" - _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION}) - STRING(REGEX REPLACE "([0-9])\\.([0-9])\\.[0-9]" "\\1\\2" - _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION}) - SET (_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}") - ENDIF (NOT CMAKE_COMPILER_IS_GNUCC) - ENDIF (APPLE) - ENDIF(UNIX) - - SET (_boost_MULTITHREADED "-mt") - - IF( NOT Boost_USE_MULTITHREADED ) - SET (_boost_MULTITHREADED "") - ENDIF( NOT Boost_USE_MULTITHREADED ) - - SET( _boost_STATIC_TAG "") - IF (WIN32) - IF(MSVC) - SET (_boost_ABI_TAG "g") - ENDIF(MSVC) - IF( Boost_USE_STATIC_LIBS ) - SET( _boost_STATIC_TAG "-s") - ENDIF( Boost_USE_STATIC_LIBS ) - ENDIF(WIN32) - SET (_boost_ABI_TAG "${_boost_ABI_TAG}d") - - # ------------------------------------------------------------------------ - # Begin finding boost libraries - # ------------------------------------------------------------------------ - 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") - # 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(WIN32) - SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) - ENDIF(WIN32) - ENDIF( Boost_USE_STATIC_LIBS ) - FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE - NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT} - PATHS ${_boost_LIBRARIES_SEARCH_DIRS} - NO_DEFAULT_PATH - ) - - IF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE} ) - FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE - NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT} - ) - ENDIF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE} ) - - FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG - NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG} - PATHS ${_boost_LIBRARIES_SEARCH_DIRS} - NO_DEFAULT_PATH - ) - - IF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG} ) - FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG - NAMES ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG} - ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG} - ) - ENDIF( NOT ${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG} ) - IF( Boost_USE_STATIC_LIBS ) - SET(CMAKE_FIND_LIBRARY_SUFFIXES ${_boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) - ENDIF( Boost_USE_STATIC_LIBS ) - - _Boost_ADJUST_LIB_VARS(${UPPERCOMPONENT}) - ENDFOREACH(COMPONENT) - # ------------------------------------------------------------------------ - # End finding boost libraries - # ------------------------------------------------------------------------ - - SET(Boost_INCLUDE_DIRS - ${Boost_INCLUDE_DIR} - ) - - # MESSAGE(STATUS "Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}") - # MESSAGE(STATUS "Boost_LIBRARIES: ${Boost_LIBRARIES}") - - SET(Boost_FOUND FALSE) - IF(Boost_INCLUDE_DIR) - SET( Boost_FOUND TRUE ) - IF( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" ) - SET( Boost_FOUND FALSE ) - ELSEIF( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" ) - IF( Boost_FIND_VERSION_MINOR AND Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" ) - SET( Boost_FOUND FALSE ) - ELSEIF( Boost_FIND_VERSION_MINOR AND 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 ) - ENDIF( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" ) - ENDIF( Boost_FIND_VERSION_MINOR AND Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" ) - ENDIF( Boost_FIND_VERSION_MAJOR AND Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" ) - set(_boost_CHECKED_COMPONENT FALSE) - FOREACH(COMPONENT ${Boost_FIND_COMPONENTS}) - STRING(TOUPPER ${COMPONENT} COMPONENT) - set(_boost_CHECKED_COMPONENT TRUE) - IF(NOT Boost_${COMPONENT}_FOUND) - SET( Boost_FOUND FALSE) - ENDIF(NOT Boost_${COMPONENT}_FOUND) - ENDFOREACH(COMPONENT) - IF( NOT Boost_LIBRARY_DIRS AND NOT _boost_CHECKED_COMPONENT ) - # Compatibility Code for backwards compatibility with CMake 2.4 - - # Look for the boost library path. - # 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}") - MESSAGE(STATUS "Found the following Boost libraries:") - 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 (Boost_FOUND) - IF (Boost_FIND_REQUIRED) - MESSAGE(STATUS "Boost Version required: ${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.${Boost_FIND_VERSION_PATCH} Found: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}") - MESSAGE(FATAL_ERROR "Couldn't find the Boost libraries and/or include directory, or the version found is too old. Please install the Boost libraries AND development packages. You can set BOOST_ROOT, BOOST_INCLUDEDIR and BOOST_LIBRARYDIR to help find Boost.") - ENDIF(Boost_FIND_REQUIRED) - ENDIF(Boost_FOUND) +# Please see the Documentation for Boost in the CMake Manual for details +# This module only forwards to the one included in cmake for compatibility +# reasons. - # Under Windows, automatic linking is performed, so no need to specify the libraries. - IF (WIN32) - IF (NOT MINGW) - SET(Boost_LIBRARIES "") - ENDIF (NOT MINGW) - ENDIF(WIN32) +# This call is kept for compatibility of this module with CMake 2.6.2, which +# only knows about Boost < 1.37. +# Note: Do _not_ add new Boost versions here, we're trying to get rid +# of this module in kdelibs, but thats only possible if there's a CMake-included +# version that finds all modules that this file finds. +# Instead add a similar call with newer version numbers to the CMakeLists.txt +# in your project before calling find_package(Boost) +set( Boost_ADDITIONAL_VERSION ${Boost_ADDITIONAL_VERSIONS} "1.37") - # 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 - Boost_USE_MULTITHREADED - ) -ENDIF(_boost_IN_CACHE) +include(${CMAKE_ROOT}/Modules/FindBoost.cmake) -- cgit v1.2.1 From 2f16ffc3c01179c38cfd938cce7f0395bd3fce9e Mon Sep 17 00:00:00 2001 From: Andreas Pakulat Date: Mon, 11 May 2009 13:41:53 +0000 Subject: Fix typo preventing 1.37 to be found. Re-Add my copyright and a notice regarding license svn path=/trunk/KDE/kdelibs/; revision=966579 --- modules/FindBoost.cmake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'modules/FindBoost.cmake') diff --git a/modules/FindBoost.cmake b/modules/FindBoost.cmake index c2dd58f0..8534abd9 100644 --- a/modules/FindBoost.cmake +++ b/modules/FindBoost.cmake @@ -11,7 +11,15 @@ # version that finds all modules that this file finds. # Instead add a similar call with newer version numbers to the CMakeLists.txt # in your project before calling find_package(Boost) -set( Boost_ADDITIONAL_VERSION ${Boost_ADDITIONAL_VERSIONS} "1.37") +# +# Copyright (c) 2009 Andreas Pakulat +# +# Redistribution AND use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +set( Boost_ADDITIONAL_VERSIONS ${Boost_ADDITIONAL_VERSIONS} "1.37" ) include(${CMAKE_ROOT}/Modules/FindBoost.cmake) -- cgit v1.2.1