# Set necessary compile and link flags # C++11 check and 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 () # Initialize CXXFLAGS set(CMAKE_CXX_FLAGS "-std=c++11 -Wall -Wno-unknown-pragmas -Wextra -DSHAREDLIB") set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DETH_DEBUG") set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG -DETH_RELEASE") set(CMAKE_CXX_FLAGS_RELEASE "-O4 -DNDEBUG -DETH_RELEASE") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DETH_DEBUG") # Windows if ("${TARGET_PLATFORM}" STREQUAL "w64") set(CMAKE_SYSTEM_NAME Windows) set(CMAKE_CXX_LIBRARY_ARCHITECTURE x86_64-w64-mingw32) set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) set(CMAKE_AR x86_64-w64-mingw32-ar) set(CMAKE_RANLIB x86_64-w64-mingw32-ranlib) set(CMAKE_EXECUTABLE_SUFFIX .exe) set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32 ) include_directories(/usr/x86_64-w64-mingw32/include/cryptopp) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_INSTALL_PREFIX /usr/x86_64-w64-mingw32) set(ETH_BUILD_PLATFORM "windows") set(ETH_STATIC 1) else () set(ETH_BUILD_PLATFORM ${CMAKE_SYSTEM_NAME}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") set(ETH_SHARED 1) endif()