From d65b09c56da93ef60be128ee7cb197f2a8c001af Mon Sep 17 00:00:00 2001 From: David Wells Date: Mon, 4 Sep 2017 17:00:58 -0400 Subject: [PATCH] Require boost 1.59 or newer. This enables us to use the relatively new boost::container::small_vector class. --- cmake/configure/configure_boost.cmake | 9 --------- cmake/modules/FindBOOST.cmake | 7 +++++-- doc/news/changes/incompatibilities/2017090DavidWells | 3 +++ doc/readme.html | 7 ++++--- 4 files changed, 12 insertions(+), 14 deletions(-) create mode 100644 doc/news/changes/incompatibilities/2017090DavidWells 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.

-- 2.39.5