mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #4767 from ethereum/cvc4Build
Add workarounds for building against CVC4 on ArchLinux.
This commit is contained in:
@@ -11,17 +11,11 @@ else()
|
||||
list(REMOVE_ITEM sources "${CMAKE_CURRENT_SOURCE_DIR}/formal/Z3Interface.cpp")
|
||||
endif()
|
||||
|
||||
find_package(GMP QUIET)
|
||||
find_package(CVC4 QUIET)
|
||||
if (${CVC4_FOUND})
|
||||
if (${GMP_FOUND})
|
||||
include_directories(${CVC4_INCLUDE_DIR})
|
||||
add_definitions(-DHAVE_CVC4)
|
||||
message("CVC4 SMT solver and GMP found. This enables optional SMT checking with CVC4.")
|
||||
else()
|
||||
message("CVC4 SMT solver found but its dependency GMP was NOT found. Optional SMT checking with CVC4 will not be available. Please install GMP if it is desired.")
|
||||
list(REMOVE_ITEM sources "${CMAKE_CURRENT_SOURCE_DIR}/formal/CVC4Interface.cpp")
|
||||
endif()
|
||||
include_directories(${CVC4_INCLUDE_DIR})
|
||||
add_definitions(-DHAVE_CVC4)
|
||||
message("CVC4 SMT solver found. This enables optional SMT checking with CVC4.")
|
||||
else()
|
||||
list(REMOVE_ITEM sources "${CMAKE_CURRENT_SOURCE_DIR}/formal/CVC4Interface.cpp")
|
||||
endif()
|
||||
@@ -38,7 +32,6 @@ if (${Z3_FOUND})
|
||||
target_link_libraries(solidity PUBLIC ${Z3_LIBRARY})
|
||||
endif()
|
||||
|
||||
if (${CVC4_FOUND} AND ${GMP_FOUND})
|
||||
target_link_libraries(solidity PUBLIC ${CVC4_LIBRARY})
|
||||
target_link_libraries(solidity PUBLIC ${GMP_LIBRARY})
|
||||
if (${CVC4_FOUND})
|
||||
target_link_libraries(solidity PUBLIC ${CVC4_LIBRARIES})
|
||||
endif()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user