diff options
-rw-r--r-- | cmake/FindCVC4.cmake | 10 | ||||
-rw-r--r-- | libsolidity/CMakeLists.txt | 2 | ||||
-rw-r--r-- | libsolidity/formal/CVC4Interface.h | 11 |
3 files changed, 21 insertions, 2 deletions
diff --git a/cmake/FindCVC4.cmake b/cmake/FindCVC4.cmake index 90b7ebd5..900a123e 100644 --- a/cmake/FindCVC4.cmake +++ b/cmake/FindCVC4.cmake @@ -1,8 +1,16 @@ if (USE_CVC4) find_path(CVC4_INCLUDE_DIR cvc4/cvc4.h) - find_library(CVC4_LIBRARY NAMES cvc4 ) + find_library(CVC4_LIBRARY NAMES cvc4) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(CVC4 DEFAULT_MSG CVC4_LIBRARY CVC4_INCLUDE_DIR) + if(CVC4_FOUND) + find_library(CLN_LIBRARY NAMES cln) + if(CLN_LIBRARY) + set(CVC4_LIBRARIES ${CVC4_LIBRARY} ${CLN_LIBRARY}) + else() + set(CVC4_LIBRARIES ${CVC4_LIBRARY}) + endif() + endif() else() set(CVC4_FOUND FALSE) endif() diff --git a/libsolidity/CMakeLists.txt b/libsolidity/CMakeLists.txt index 49095fff..872504f3 100644 --- a/libsolidity/CMakeLists.txt +++ b/libsolidity/CMakeLists.txt @@ -39,6 +39,6 @@ if (${Z3_FOUND}) endif() if (${CVC4_FOUND} AND ${GMP_FOUND}) - target_link_libraries(solidity PUBLIC ${CVC4_LIBRARY}) + target_link_libraries(solidity PUBLIC ${CVC4_LIBRARIES}) target_link_libraries(solidity PUBLIC ${GMP_LIBRARY}) endif() diff --git a/libsolidity/formal/CVC4Interface.h b/libsolidity/formal/CVC4Interface.h index dcd87525..cd6d761d 100644 --- a/libsolidity/formal/CVC4Interface.h +++ b/libsolidity/formal/CVC4Interface.h @@ -21,8 +21,19 @@ #include <boost/noncopyable.hpp> +#if defined(__GLIBC__) +// The CVC4 headers includes the deprecated system headers <ext/hash_map> +// and <ext/hash_set>. These headers cause a warning that will break the +// build, unless _GLIBCXX_PERMIT_BACKWARD_HASH is set. +#define _GLIBCXX_PERMIT_BACKWARD_HASH +#endif + #include <cvc4/cvc4.h> +#if defined(__GLIBC__) +#undef _GLIBCXX_PERMIT_BACKWARD_HASH +#endif + namespace dev { namespace solidity |