summaryrefslogtreecommitdiffstats
path: root/Modules/FindBoost.cmake
diff options
context:
space:
mode:
authorPhilip Lowman <philip@yhbt.com>2009-01-19 07:27:32 (GMT)
committerPhilip Lowman <philip@yhbt.com>2009-01-19 07:27:32 (GMT)
commitab36f5a11ea3dee338c7c8e7000fef2184a2eb38 (patch)
tree79282220a0e36d0f5567ee81dbf1fbc15c82e55b /Modules/FindBoost.cmake
parent6d37f93a3837194fffef212d62a84c99ebb7d0c1 (diff)
downloadCMake-ab36f5a11ea3dee338c7c8e7000fef2184a2eb38.zip
CMake-ab36f5a11ea3dee338c7c8e7000fef2184a2eb38.tar.gz
CMake-ab36f5a11ea3dee338c7c8e7000fef2184a2eb38.tar.bz2
ENH: Added 1.38 since it'll be out soon. More documentation and clarified examples, addressed autolinking issue on MSVC
Diffstat (limited to 'Modules/FindBoost.cmake')
-rw-r--r--Modules/FindBoost.cmake57
1 files changed, 37 insertions, 20 deletions
diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake
index 28a6f81..04adf96 100644
--- a/Modules/FindBoost.cmake
+++ b/Modules/FindBoost.cmake
@@ -1,13 +1,21 @@
# - Try to find Boost include dirs and libraries
# Usage of this module as follows:
#
-# SET(Boost_USE_STATIC_LIBS ON)
-# SET(Boost_USE_MULTITHREADED ON)
-# FIND_PACKAGE( Boost 1.34.1 COMPONENTS date_time filesystem iostreams ... )
+# == Using Header-Only libraries from within Boost: ==
#
-# INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
-# ADD_EXECUTABLE(foo foo.cc)
-# TARGET_LINK_LIBRARIES(foo ${Boost_LIBRARIES})
+# FIND_PACKAGE( Boost 1.36.0 )
+# INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
+# ADD_EXECUTABLE(foo foo.cc)
+#
+# == Using actual libraries from within Boost: ==
+#
+# SET(Boost_USE_STATIC_LIBS ON)
+# SET(Boost_USE_MULTITHREADED ON)
+# FIND_PACKAGE( Boost 1.36.0 COMPONENTS date_time filesystem system ... )
+# INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
+#
+# ADD_EXECUTABLE(foo foo.cc)
+# TARGET_LINK_LIBRARIES(foo ${Boost_LIBRARIES})
#
# 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
@@ -15,11 +23,22 @@
# errors. If you're using parts of Boost that contains header files only (e.g.
# foreach) you do not need to specify COMPONENTS.
#
-# You can provide a minimum version number that should be used. If you provide this
+# 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
+# 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,
+# autolinking typically uses static libraries by default.
+#
+# 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.
#
# =========== The mess that is Boost_ADDITIONAL_VERSIONS (sorry?) ============
#
@@ -27,22 +46,19 @@
# 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. CMake will one day have glob
-# or regex support for FIND_LIBRARY() after which this variable will
-# likely be ignored.
+# 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.36, 1.36.0, 1.36.1, 1.37, 1.37.0, 1.38, 1.38.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.
+# 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 "0.99" "0.99.0" "1.78" "1.78.0")
#
-# One day in the near future this will no longer be necessary and which
-# version gets selected will depend completely on how you call FIND_PACKAGE().
-#
# ============================================================================
#
# Variables used by this module, they can change the default behaviour and need to be set
@@ -60,11 +76,12 @@
# Boost_ADDITIONAL_VERSIONS A list of version numbers to use for searching
# the boost include directory. Please see
# the documentation above regarding this
-# annoying variable :(
+# 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 and include the output in any bug reports.
+# Please enable this before filing any bug
+# reports.
#
# Boost_COMPILER Set this to the compiler suffix used by boost (e.g. -gcc43) if the
# module has problems finding the proper Boost installation
@@ -109,7 +126,7 @@
# to have diagnostic information about
# Boost's automatic linking outputted
# during compilation time.
-
+#
# 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
@@ -146,7 +163,7 @@ 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.37.0" "1.37"
+ "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)