MACRO(FEATURE_BOOST_CONFIGURE_COMMON)
- #
- # Boost version 1.62 - 1.63 checks for the availability of "emplace_hint"
- # incorrectly: It tests for the preprocessor define
- # BOOST_NO_CXX11_HDR_UNORDERED_MAP in .../boost/serialization/map.h
- # thinking that that this define is characteristic for the presence of
- # std::(multi)map::emplace_hint. This is generally correct, except for
- # GCC before 4.8, for which the preprocessor variable is defined, but the
- # function does not exist [1].
- #
- # Thus, simply define a BOOST_NO_CXX11_HDR_UNORDERED_MAP if the gcc
- # compiler version is less than 4.8.
- #
- # [1] https://svn.boost.org/trac/boost/ticket/12755
- #
- IF( CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND
- CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.8")
- LIST(APPEND BOOST_DEFINITIONS "BOOST_NO_CXX11_HDR_UNORDERED_MAP")
- LIST(APPEND BOOST_USER_DEFINITIONS "BOOST_NO_CXX11_HDR_UNORDERED_MAP")
- ENDIF()
-
# Some standard library implementations do not implement std::auto_ptr
# (anymore) which was deprecated for C++11 and removed in the C++17 standard.
# Older boost versions can't know about this but provide a possibility to
NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH NO_CMAKE_FIND_ROOT_PATH
)
- IF(EXISTS ${SACADO_CONFIG_H})
- #
- # Determine whether Trilinos was configured with C++11 support and
- # enabling C++11 in deal.II is mandatory.
- #
- FILE(STRINGS "${SACADO_CONFIG_H}" SACADO_CXX11_STRING
- REGEX "#define HAVE_SACADO_CXX11")
- ENDIF()
-
#
# GCC 6.3.0 has a bug that prevents the creation of complex
# numbers templated on Sacado::Rad::ADvar types: