aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/FindCVC4.cmake10
-rw-r--r--libsolidity/CMakeLists.txt2
-rw-r--r--libsolidity/formal/CVC4Interface.h11
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