From: David Wells
Date: Mon, 4 Sep 2017 21:00:58 +0000 (-0400)
Subject: Require boost 1.59 or newer.
X-Git-Tag: v9.0.0-rc1~1122^2~1
X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d65b09c56da93ef60be128ee7cb197f2a8c001af;p=dealii.git
Require boost 1.59 or newer.
This enables us to use the relatively new boost::container::small_vector
class.
---
diff --git a/cmake/configure/configure_boost.cmake b/cmake/configure/configure_boost.cmake
index 1430f92f30..29ab0c1e5b 100644
--- a/cmake/configure/configure_boost.cmake
+++ b/cmake/configure/configure_boost.cmake
@@ -79,15 +79,6 @@ MACRO(FEATURE_BOOST_FIND_EXTERNAL var)
IF(BOOST_FOUND)
SET(${var} TRUE)
-
- #
- # Blacklist version 1.58 because we get serialization errors with it. At
- # least version 1.56 and 1.59 are known to work.
- #
- IF("${BOOST_VERSION_MAJOR}" STREQUAL "1" AND "${BOOST_VERSION_MINOR}" STREQUAL "58")
- MESSAGE(STATUS "Boost version 1.58 is not compatible with deal.II!")
- SET(${var} FALSE)
- ENDIF()
ENDIF()
ENDMACRO()
diff --git a/cmake/modules/FindBOOST.cmake b/cmake/modules/FindBOOST.cmake
index 10a5925792..26e9a80c0a 100644
--- a/cmake/modules/FindBOOST.cmake
+++ b/cmake/modules/FindBOOST.cmake
@@ -26,6 +26,9 @@
# BOOST_VERSION_MINOR
# BOOST_VERSION_SUBMINOR
#
+# We require at least boost 1.59 since boost::container::small_vector was
+# introduced in 1.58 and some serialization bugs in 1.58 were not fixed until
+# 1.59.
SET(BOOST_DIR "" CACHE PATH "An optional hint to a BOOST installation")
SET_IF_EMPTY(BOOST_DIR "$ENV{BOOST_DIR}")
@@ -43,7 +46,7 @@ ENDIF()
# temporarily disable ${CMAKE_SOURCE_DIR}/cmake/modules for module lookup
LIST(REMOVE_ITEM CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules/)
-FIND_PACKAGE(Boost 1.56 COMPONENTS
+FIND_PACKAGE(Boost 1.59 COMPONENTS
iostreams serialization system thread
)
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules/)
@@ -56,7 +59,7 @@ IF(NOT Boost_FOUND AND Boost_USE_STATIC_LIBS)
# temporarily disable ${CMAKE_SOURCE_DIR}/cmake/modules for module lookup
LIST(REMOVE_ITEM CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules/)
- FIND_PACKAGE(Boost 1.56 COMPONENTS iostreams serialization system thread)
+ FIND_PACKAGE(Boost 1.59 COMPONENTS iostreams serialization system thread)
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules/)
ENDIF()
diff --git a/doc/news/changes/incompatibilities/2017090DavidWells b/doc/news/changes/incompatibilities/2017090DavidWells
new file mode 100644
index 0000000000..928478ed3f
--- /dev/null
+++ b/doc/news/changes/incompatibilities/2017090DavidWells
@@ -0,0 +1,3 @@
+Changed: deal.II now requires BOOST version 1.59 or newer.
+
+(David Wells, 2017/09/04)
diff --git a/doc/readme.html b/doc/readme.html
index f85a0197fe..412f3a83f2 100644
--- a/doc/readme.html
+++ b/doc/readme.html
@@ -470,9 +470,10 @@
found and deal.II will be built without support
for them.
However, there is one interface that we need to have: BOOST. If it is not
- found externally cmake
will resort to the bundled boost
- version that is part of the deal.II tar file.
+ href="http://www.boost.org/" target="_top">BOOST 1.59 or newer.
+ If it is not found externally cmake
will resort to the
+ bundled boost version that is part of the deal.II
+ tar file.