From fac7b5348bfdd3a5632b224d2889e1068d7cbb61 Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Thu, 21 May 2020 23:39:05 -0500 Subject: [PATCH] CMake: help some old compilers with C++14 support --- cmake/checks/check_01_cxx_features.cmake | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cmake/checks/check_01_cxx_features.cmake b/cmake/checks/check_01_cxx_features.cmake index c5828aea42..e41f309925 100644 --- a/cmake/checks/check_01_cxx_features.cmake +++ b/cmake/checks/check_01_cxx_features.cmake @@ -33,6 +33,20 @@ # # ######################################################################## +# +# Some old compiler versions default to C++98/03 rather than C++14. Inject +# -std=c++14 into the compiler flags in this case. +# +IF((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" + AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.1") + OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" + AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.0") + OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" + AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10.0")) + MESSAGE(STATUS "Old compiler detected, setting -std=c++14") + ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS "-std=c++14") +ENDIF() + # # Use compile flags specified in ${DEAL_II_CXX_FLAGS} for the following # tests: -- 2.39.5