diff --git a/CMakeLists.txt b/CMakeLists.txt index 73321e0ff..05e51bfde 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,58 @@ else () message(FATAL_ERROR "Your C++ compiler does not support C++11.") endif () +# Override the cryptopp search until we can get the qmake stuff sorted. +set(CRYPTOPP_INCLUDE_DIR "../cryptopp562" CACHE FILEPATH "" FORCE) +set(CRYPTOPP_LIBRARIES "../cryptopp562" CACHE FILEPATH "" FORCE) + +# Look for availabe Crypto++ version and if it is >= 5.6.2 +if(CRYPTOPP_INCLUDE_DIR AND CRYPTOPP_LIBRARIES) + set(CRYPTOPP_FOUND TRUE) + message(STATUS "Found Crypto++: ${CRYPTOPP_INCLUDE_DIR}, ${CRYPTOPP_LIBRARIES}") +else() + find_path(CRYPTOPP_INCLUDE_DIR cryptlib.h + /usr/include/crypto++ + /usr/include/cryptopp + /usr/local/include/crypto++ + /usr/local/include/cryptopp + /opt/local/include/crypto++ + /opt/local/include/cryptopp + ) + find_library(CRYPTOPP_LIBRARIES NAMES cryptopp + PATHS + /usr/lib + /usr/local/lib + /opt/local/lib + ) + if(CRYPTOPP_INCLUDE_DIR AND CRYPTOPP_LIBRARIES) + set(CRYPTOPP_FOUND TRUE) + message(STATUS "Found Crypto++: ${CRYPTOPP_INCLUDE_DIR}, ${CRYPTOPP_LIBRARIES}") + set(_CRYPTOPP_VERSION_HEADER ${CRYPTOPP_INCLUDE_DIR}/config.h) + if(EXISTS ${_CRYPTOPP_VERSION_HEADER}) + file(STRINGS ${_CRYPTOPP_VERSION_HEADER} _CRYPTOPP_VERSION REGEX "^#define CRYPTOPP_VERSION[ \t]+[0-9]+$") + string(REGEX REPLACE "^#define CRYPTOPP_VERSION[ \t]+([0-9]+)" "\\1" _CRYPTOPP_VERSION ${_CRYPTOPP_VERSION}) + if(${_CRYPTOPP_VERSION} LESS 562) + message(STATUS "Crypto++ version found is smaller than 5.6.2. We use ../cryptopp562") + set(CRYPTOPP_INCLUDE_DIR "../cryptopp562" CACHE FILEPATH "" FORCE) + set(CRYPTOPP_LIBRARIES "../cryptopp562" CACHE FILEPATH "" FORCE) + else() + message(STATUS "Crypto++ found and version greater or equal to 5.6.2") + endif() + endif() + else() + set(CRYPTOPP_FOUND TRUE) # Ugly + message(STATUS "Crypto++ not found. We use ../cryptopp562") + set(CRYPTOPP_INCLUDE_DIR "../cryptopp562" CACHE FILEPATH "" FORCE) + set(CRYPTOPP_LIBRARIES "../cryptopp562" CACHE FILEPATH "" FORCE) + endif() + mark_as_advanced(CRYPTOPP_INCLUDE_DIR CRYPTOPP_LIBRARIES) +endif() + +if(CRYPTOPP_FOUND) + include_directories(${CRYPTOPP_INCLUDE_DIR}) + link_directories(${CRYPTOPP_LIBRARIES}) +endif() + add_subdirectory(libethereum) add_subdirectory(test) add_subdirectory(eth) diff --git a/alephzero/alephzero.pro b/alephzero/alephzero.pro index c6e8d583b..62e4f844e 100644 --- a/alephzero/alephzero.pro +++ b/alephzero/alephzero.pro @@ -13,9 +13,10 @@ TEMPLATE = app CONFIG(debug, debug|release): DEFINES += ETH_DEBUG QMAKE_CXXFLAGS += -std=c++11 + QMAKE_LIBDIR += ../../cpp-ethereum-build/libethereum ../../secp256k1 ../../cryptopp562 -LIBS += -Wl,-rpath,../../cpp-ethereum-build/libethereum -Wl,-rpath,../../secp256k1 -Wl,-rpath,../../cryptopp562 -lethereum -lminiupnpc -lsecp256k1 -lleveldb -lcryptopp -lgmp -lboost_filesystem -lboost_system -INCLUDEPATH = ../../secp256k1/include ../../cryptopp562 ../../cpp-ethereum +LIBS += -Wl,-rpath,../../cpp-ethereum-build/libethereum -Wl,-rpath,../../secp256k1 -Wl,-rpath,../../cryptopp562 -lethereum -lcryptopp -lminiupnpc -lsecp256k1 -lleveldb -lgmp -lboost_filesystem -lboost_system +INCLUDEPATH = ../../secp256k1/include ../../cpp-ethereum SOURCES += main.cpp \ MainWin.cpp diff --git a/eth/CMakeLists.txt b/eth/CMakeLists.txt index 0e7cef06e..b8a7abbde 100644 --- a/eth/CMakeLists.txt +++ b/eth/CMakeLists.txt @@ -5,9 +5,6 @@ aux_source_directory(. SRC_LIST) include_directories(../../secp256k1/include) link_directories(../../secp256k1) -include_directories(../../cryptopp562) -link_directories(../../cryptopp562) - include_directories(../libethereum) link_directories(../libethereum) diff --git a/libethereum/CMakeLists.txt b/libethereum/CMakeLists.txt index cd79edd66..c83ae1e10 100644 --- a/libethereum/CMakeLists.txt +++ b/libethereum/CMakeLists.txt @@ -3,9 +3,6 @@ cmake_policy(SET CMP0015 NEW) include_directories(../../secp256k1/include) link_directories(../../secp256k1) -include_directories(../../cryptopp562) -link_directories(../../cryptopp562) - aux_source_directory(. SRC_LIST) add_library(ethereum ${SRC_LIST}) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 0923fbbee..cb5e19967 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -5,9 +5,6 @@ aux_source_directory(. SRC_LIST) include_directories(../../secp256k1/include) link_directories(../../secp256k1) -include_directories(../../cryptopp562) -link_directories(../../cryptopp562) - include_directories(../libethereum) link_directories(../libethereum)