You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
3.4 KiB
80 lines
3.4 KiB
project(ethereum)
|
|
cmake_minimum_required(VERSION 2.8)
|
|
|
|
cmake_policy(SET CMP0015 NEW)
|
|
|
|
# Initialize CXXFLAGS.
|
|
set(CMAKE_CXX_FLAGS "-Wall -std=c++11")
|
|
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
|
|
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG")
|
|
set(CMAKE_CXX_FLAGS_RELEASE "-O4 -DNDEBUG")
|
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
|
|
|
|
# Compiler-specific C++11 activation.
|
|
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
|
execute_process(
|
|
COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
|
if (NOT (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7))
|
|
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 4.7 or greater.")
|
|
endif ()
|
|
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
|
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/cryptopp
|
|
/usr/include/crypto++
|
|
/usr/local/include/cryptopp
|
|
/usr/local/include/crypto++
|
|
/opt/local/include/cryptopp
|
|
/opt/local/include/crypto++
|
|
)
|
|
find_library(CRYPTOPP_LIBRARIES NAMES cryptoppeth 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)
|
|
|