From 2fb42804a16d8ab7667f30757c9459e9cface8a2 Mon Sep 17 00:00:00 2001 From: Daniel Arndt Date: Sun, 10 Feb 2019 00:53:53 +0100 Subject: [PATCH] Check if Tpetra is usable --- cmake/configure/configure_2_trilinos.cmake | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/cmake/configure/configure_2_trilinos.cmake b/cmake/configure/configure_2_trilinos.cmake index eca8862a0a..9b3c861395 100644 --- a/cmake/configure/configure_2_trilinos.cmake +++ b/cmake/configure/configure_2_trilinos.cmake @@ -158,6 +158,41 @@ MACRO(FEATURE_TRILINOS_FIND_EXTERNAL var) ENDFOREACH() ENDIF() + IF(${DEAL_II_TRILINOS_WITH_TPETRA}) + # + # Check if Tpetra is usable in fact. + # + LIST(APPEND CMAKE_REQUIRED_INCLUDES ${Trilinos_INCLUDE_DIRS}) + ADD_FLAGS(CMAKE_REQUIRED_FLAGS "${DEAL_II_CXX_VERSION_FLAG}") + LIST(APPEND CMAKE_REQUIRED_LIBRARIES "${Trilinos_LIBRARIES}") + CHECK_CXX_SOURCE_COMPILES( + " + #include + int + main() + { + using LO = int; + using GO = unsigned int; + using Node = Kokkos::Compat::KokkosDeviceWrapperNode; + using map_type = Tpetra::Map; + Teuchos::RCP dummy_map = Teuchos::rcp(new map_type()); + Tpetra::Vector dummy_vector(dummy_map); + (void)dummy_vector; + return 0; + } + " + TRILINOS_TPETRA_IS_FUNCTIONAL + ) + RESET_CMAKE_REQUIRED() + IF(NOT TRILINOS_TPETRA_IS_FUNCTIONAL) + MESSAGE( + STATUS + "Tpetra was found but is not usable! Disabling Tpetra support." + ) + SET(DEAL_II_TRILINOS_WITH_TPETRA OFF) + ENDIF() + ENDIF() + IF(${DEAL_II_TRILINOS_WITH_SACADO}) # # Look for Sacado_config.h - we'll query it to determine C++11 support: -- 2.39.5