From: maier Date: Thu, 20 Sep 2012 20:34:22 +0000 (+0000) Subject: Add a workaround for this C++ issue and trilinos. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5dbff626706910690da5c377a68df0b871f95fc0;p=dealii-svn.git Add a workaround for this C++ issue and trilinos. git-svn-id: https://svn.dealii.org/branches/branch_cmake@26576 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/contrib/cmake/configure/configure_trilinos.cmake b/deal.II/contrib/cmake/configure/configure_trilinos.cmake index 962de51f01..ea8d0239bd 100644 --- a/deal.II/contrib/cmake/configure/configure_trilinos.cmake +++ b/deal.II/contrib/cmake/configure/configure_trilinos.cmake @@ -110,16 +110,32 @@ MACRO(FEATURE_TRILINOS_FIND_EXTERNAL var) int main(){ return 0; } " TRILINOS_SUPPORTS_CPP11) - STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-std=c++0x") - LIST(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES ${TRILINOS_INCLUDE_DIR}) IF(DEAL_II_CAN_USE_CXX11 AND NOT TRILINOS_SUPPORTS_CPP11) - MESSAGE(WARNING "\n" - "Your Trilinos installation is not compatible with the C++ standard selected for\n" - "this compiler. See the deal.II FAQ page for a solution.\n\n" - ) - SET(${var} FALSE) + # + # Try whether exporting HAS_C99_TR1_CMATH helps: + # + ADD_FLAGS(CMAKE_REQUIRED_FLAGS "-DHAS_C99_TR1_CMATH") + CHECK_CXX_SOURCE_COMPILES( + " + #include + int main(){ return 0; } + " + TRILINOS_HAS_C99_TR1_WORKAROUND) + STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-DHAS_C99_TR1_CMATH") + + IF(TRILINOS_HAS_C99_TR1_WORKAROUND) + ADD_DEFINITIONS("-DHAS_C99_TR1_CMATH") + ELSE() + MESSAGE(WARNING "\n" + "Your Trilinos installation is not compatible with the C++ standard selected for\n" + "this compiler. See the deal.II FAQ page for a solution.\n\n" + ) + SET(${var} FALSE) + ENDIF() ENDIF() + STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-std=c++0x") + LIST(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES ${TRILINOS_INCLUDE_DIR}) ENDIF(TRILINOS_FOUND) ENDMACRO()