This repository has been archived by the owner on Mar 3, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 36
/
CMakeLists.txt
103 lines (81 loc) · 2.71 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
cmake_minimum_required(VERSION 3.10)
project(bluzelle CXX)
include(cmake/swarm_version.cmake)
message("Build version ${PROJECT_VERSION}")
# Setup version header
configure_file(${PROJECT_SOURCE_DIR}/swarm_version.hpp.in ${CMAKE_BINARY_DIR}/swarm_version.hpp.tmp)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/swarm_version.hpp.tmp ${CMAKE_BINARY_DIR}/swarm_version.hpp)
execute_process(COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}/swarm_version.hpp.tmp)
include_directories(${CMAKE_BINARY_DIR})
# use ccache if available...
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
endif(CCACHE_FOUND)
# output dir
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/output)
# compiler options...
set(CMAKE_CXX_STANDARD 17)
add_compile_options("-fdiagnostics-color=auto")
if (APPLE)
add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)
endif(APPLE)
set(warnings "-Wno-deprecated-declarations -Wall -Wextra -Werror -Wpedantic")
if (APPLE)
set(warnings "${warnings} -Wno-extended-offsetof")
endif(APPLE)
set(CMAKE_CXX_FLAGS ${warnings})
set(CMAKE_C_FLAGS ${warnings})
# find packages
include(cmake/add_gmock_test.cmake)
include(FindProtobuf)
find_package(Protobuf REQUIRED)
include_directories(SYSTEM ${PROTOBUF_INCLUDE_DIR})
set(REQUIRED_BOOST "1.68.0")
set(Boost_USE_STATIC_LIBS on)
find_package(
Boost ${REQUIRED_BOOST}
REQUIRED COMPONENTS
log
program_options
system
thread
serialization
)
if(Boost_FOUND)
message(STATUS "Boost: ${Boost_INCLUDE_DIRS}")
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
endif()
find_package(CURL REQUIRED)
find_package(OpenSSL REQUIRED)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include(cmake/jsoncpp.cmake)
include(cmake/rocksdb.cmake)
include(cmake/googletest.cmake)
enable_testing()
# coverage?
if (ENABLE_GCOV)
if (NOT APPLE)
set(COVERAGE_COMPILER_FLAGS "-g -O0 --coverage -fprofile-arcs -ftest-coverage" CACHE INTERNAL "")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COVERAGE_COMPILER_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_COMPILER_FLAGS}")
message(STATUS "Appending code coverage compiler flags: ${COVERAGE_COMPILER_FLAGS}")
endif()
endif()
add_subdirectory(bootstrap)
add_subdirectory(crud)
add_subdirectory(ethereum)
add_subdirectory(http)
add_subdirectory(node)
add_subdirectory(options)
add_subdirectory(pkg)
add_subdirectory(proto)
add_subdirectory(raft)
add_subdirectory(status)
add_subdirectory(storage)
add_subdirectory(swarm)
add_subdirectory(utils)
add_subdirectory(audit)
add_subdirectory(pbft)
include(cmake/static_analysis.cmake)