-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCMakeLists.txt
81 lines (60 loc) · 1.91 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
cmake_minimum_required(VERSION 2.8.12)
if(POLICY CMP0042)
cmake_policy(SET CMP0042 NEW)
endif()
if(POLICY CMP0022)
cmake_policy(SET CMP0022 NEW)
endif()
project (Saber C CXX)
set(SABER_VERSION_MAJOR 1)
set(SABER_VERSION_MINOR 0)
set(SABER_VERSION_PATCH 3)
set(SABER_VERSION_STRING ${SABER_VERSION_MAJOR}.${SABER_VERSION_MINOR}.${SABER_VERSION_PATCH})
function(exclude OUTPUT INPUT)
set(EXCLUDES ${ARGN})
foreach(EXCLUDE ${EXCLUDES})
list(REMOVE_ITEM INPUT "${EXCLUDE}")
endforeach()
set(${OUTPUT} ${INPUT} PARENT_SCOPE)
endfunction(exclude)
enable_testing()
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build : None Debug Release RelWithDebInfo MinSizeRel Coverage." FORCE)
endif()
if(NOT CMAKE_INSTALL_DIR)
set(CMAKE_INSTALL_DIR "/usr/local")
endif()
option(BUILD_TESTS "Build saber perftests and unittests." ON)
option(BUILD_SHARED_LIBS "Build saber shared libraries" ON)
option(BUILD_CLIENT_LIBS "Build saber client libraries" ON)
option(BUILD_SERVER_LIBS "Build saber server libraries" ON)
set(CXX_FLAGS
-g
-Wall
-Wextra
-Wconversion
-Wno-unused-parameter
-Woverloaded-virtual
-Wpointer-arith
-Wwrite-strings
-Wshadow
-Wno-sign-conversion
-std=c++14
)
string(REPLACE ";" " " CMAKE_CXX_FLAGS "${CXX_FLAGS}")
set(CMAKE_CXX_FLAGS_DEBUG "-O0")
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
set(LIBARARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
string(TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE)
message(STATUS "CXX_FLAGS = " ${CMAKE_CXX_FLAGS} " " ${CMAKE_CXX_FLAGS_${BUILD_TYPE}})
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
include_directories(${PROJECT_SOURCE_DIR} ${PROJECT_BINARY_DIR})
include(cmake/Dependencies.cmake)
include(cmake/Targets.cmake)
saber_set_saber_link()
saber_set_saber_client_link()
saber_set_saber_server_link()
add_subdirectory(saber)
if (BUILD_TESTS)
add_subdirectory(benchmarks)
endif()