From 09885e6f39515e7bf67295e6ab955d5dcdcbcb55 Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Sun, 6 May 2018 12:23:50 -0500 Subject: [PATCH] CMake: Unset cached results for C++11/14/17 detection if necessary --- cmake/checks/check_01_cxx_features.cmake | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/cmake/checks/check_01_cxx_features.cmake b/cmake/checks/check_01_cxx_features.cmake index a8e85760ce..b066660f6c 100644 --- a/cmake/checks/check_01_cxx_features.cmake +++ b/cmake/checks/check_01_cxx_features.cmake @@ -126,6 +126,11 @@ IF(NOT DEFINED DEAL_II_WITH_CXX17 OR DEAL_II_WITH_CXX17) PUSH_CMAKE_REQUIRED("${DEAL_II_CXX_VERSION_FLAG}") PUSH_CMAKE_REQUIRED("-Werror") + UNSET_IF_CHANGED(CHECK_CXX_FEATURES_FLAGS_CXX17_SAVED + "${CMAKE_REQUIRED_FLAGS}${DEAL_II_CXX_VERSION_FLAG}" + DEAL_II_HAVE_CXX17_ATTRIBUTES + ) + # # Test that the c++17 attributes are supported. # @@ -176,6 +181,14 @@ IF(NOT DEFINED DEAL_II_WITH_CXX14 OR DEAL_II_WITH_CXX14) _check_version("14" "1y") IF(NOT "${DEAL_II_CXX_VERSION_FLAG}" STREQUAL "") + + UNSET_IF_CHANGED(CHECK_CXX_FEATURES_FLAGS_CXX14_SAVED + "${CMAKE_REQUIRED_FLAGS}${DEAL_II_CXX_VERSION_FLAG}" + DEAL_II_HAVE_CXX14_CLANGAUTODEBUG_BUG_OK + DEAL_II_HAVE_CXX14_CONSTEXPR_STDMAXMIN + DEAL_II_HAVE_CXX14_MAKE_UNIQUE + ) + # Set CMAKE_REQUIRED_FLAGS for the unit tests PUSH_CMAKE_REQUIRED("${DEAL_II_CXX_VERSION_FLAG}") @@ -255,6 +268,15 @@ IF("${DEAL_II_CXX_VERSION_FLAG}" STREQUAL "") _check_version("11" "0x") ENDIF() +UNSET_IF_CHANGED(CHECK_CXX_FEATURES_FLAGS_CXX11_SAVED + "${CMAKE_REQUIRED_FLAGS}${DEAL_II_CXX_VERSION_FLAG}" + DEAL_II_HAVE_CXX11_FEATURES + DEAL_II_HAVE_CXX11_FUNCTIONAL_LLVMBUG20084_OK + DEAL_II_HAVE_CXX11_ICCLIBSTDCPP47CXX11BUG_OK + DEAL_II_HAVE_CXX11_ICCNUMERICLIMITSBUG_OK + DEAL_II_HAVE_CXX11_MACOSXC99BUG_OK + ) + PUSH_CMAKE_REQUIRED("${DEAL_II_CXX_VERSION_FLAG}") CHECK_CXX_SOURCE_COMPILES( " -- 2.39.5