From: Andres Noetzli Date: Fri, 23 Jul 2021 20:47:16 +0000 (-0700) Subject: Fix CoCoA build for newer compilers (#6919) X-Git-Tag: cvc5-1.0.0~1460 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=df4c8cbe704fce51623bc9540def9b8806af4fd9;p=cvc5.git Fix CoCoA build for newer compilers (#6919) Newer compilers, such as GCC 11, default to C++17. CoCoA does not compile with C++17 and its check for the C++ version used by the compiler does not take into account newer C++ versions. As a result, building CoCoA using `--auto-download` fails with GCC 11. This commit adds a patch that makes the test in CoCoA take into account compilers that default to C++17 or newer. --- diff --git a/cmake/FindCoCoA.cmake b/cmake/FindCoCoA.cmake index 1a4f82e9f..d84bf0f2c 100644 --- a/cmake/FindCoCoA.cmake +++ b/cmake/FindCoCoA.cmake @@ -56,6 +56,10 @@ if(NOT CoCoA_FOUND_SYSTEM) ${COMMON_EP_CONFIG} URL "http://cocoa.dima.unige.it/cocoalib/tgz/CoCoALib-${CoCoA_VERSION}.tgz" URL_HASH SHA1=873d0b60800cd3852939816ce0aa2e7f72dac4ce + # CoCoA requires C++14, but the check does not work with compilers that + # default to C++17 or newer. The patch fixes the check. + PATCH_COMMAND patch -p1 -d + -i ${CMAKE_CURRENT_LIST_DIR}/deps-utils/CoCoA-patch-0.99712.patch BUILD_IN_SOURCE YES CONFIGURE_COMMAND ./configure --prefix= BUILD_COMMAND ${make_cmd} library diff --git a/cmake/deps-utils/CoCoA-patch-0.99712.patch b/cmake/deps-utils/CoCoA-patch-0.99712.patch new file mode 100644 index 000000000..464d39f83 --- /dev/null +++ b/cmake/deps-utils/CoCoA-patch-0.99712.patch @@ -0,0 +1,13 @@ +diff --git a/configuration/cxx14.sh b/configuration/cxx14.sh +index cdbf338..0436983 100755 +--- a/configuration/cxx14.sh ++++ b/configuration/cxx14.sh +@@ -40,7 +40,7 @@ int main() + { + int ReturnCode = 0; // will mean c++14 compliant + std::cout << "C++ version: " << __cplusplus << std::endl; +-#if __cplusplus < 201400L ++#if __cplusplus < 201400L || __cplusplus >= 201703L + ReturnCode = 1; // NOT C++14 compilant + #endif + return ReturnCode;