From 79ec2deb58aa810b9a2889216abbbe994a1a41a4 Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Thu, 16 May 2019 10:33:57 -0500 Subject: [PATCH] CMake: Add a safeguard that disables ADOL-C in case SEACASChaco is enabled --- cmake/configure/configure_adolc.cmake | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/cmake/configure/configure_adolc.cmake b/cmake/configure/configure_adolc.cmake index 0e37255b70..f33ad4b166 100644 --- a/cmake/configure/configure_adolc.cmake +++ b/cmake/configure/configure_adolc.cmake @@ -17,7 +17,7 @@ # Configuration for the ADOL-C library: # -SET(FEATURE_ADOLC_AFTER BOOST) +SET(FEATURE_ADOLC_AFTER BOOST TRILINOS) MACRO(FEATURE_ADOLC_FIND_EXTERNAL var) FIND_PACKAGE(ADOLC) @@ -47,6 +47,27 @@ MACRO(FEATURE_ADOLC_FIND_EXTERNAL var) SET(${var} FALSE) ENDIF() + # + # We have to avoid a symbol clash with Trilinos' SEACASChaco library + # (the libchaco.so shared object exports the global symbol 'divide' but + # so does adolc itself). + # + ITEM_MATCHES(_module_found SEACASChaco ${Trilinos_PACKAGE_LIST}) + IF(_module_found) + MESSAGE(STATUS + "Could not find a sufficient ADOL-C installation: " + "Possible symbol clash between the ADOL-C library and Trilinos' SEACASChaco detected" + ) + SET(ADOLC_ADDITIONAL_ERROR_STRING + ${ADOLC_ADDITIONAL_ERROR_STRING} + "Could not find a sufficient ADOL-C installation:\n" + "Possible symbol clash between the ADOL-C library and Trilinos' SEACASChaco detected." + "If you want to use ADOL-C, please configure deal.II to use a " + "Trilinos library with disabled SEACASChaco.\n\n" + ) + SET(${var} FALSE) + ENDIF() + # # Check whether we have a recent enough ADOL-C library that can return # values from constant objects. -- 2.39.5