-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
67 lines (54 loc) · 2.34 KB
/
CMakeLists.txt
File metadata and controls
67 lines (54 loc) · 2.34 KB
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
# Init the project
cmake_minimum_required(VERSION 3.7)
project(OperationalResearchApi)
add_compile_options(-std=c++11)
# Add GRPC and Protocol Buffers libraries location
list(APPEND CMAKE_PREFIX_PATH "/usr/local/include/grpc" "/usr/local/include/protobuf")
# Cmake find modules
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
find_package(Protobuf REQUIRED)
find_package(GRPC REQUIRED)
find_package(libmongocxx REQUIRED)
find_package(libbsoncxx REQUIRED)
include_directories(${LIBMONGOCXX_INCLUDE_DIR})
include_directories(${LIBBSONCXX_INCLUDE_DIR})
include_directories("/usr/local/include/mongocxx/v_noabi")
include_directories("/usr/local/include/bsoncxx/v_noabi")
include_directories("/usr/local/include/libmongoc-1.0")
include_directories("/usr/local/include/libbson-1.0")
include_directories("/usr/local/include/grpc")
include_directories("/usr/local/lib")
# Add the destination of the protobuf generated files
set(PROTO_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/protoClassServer)
file(MAKE_DIRECTORY ${PROTO_SRC_DIR})
include_directories(${PROTO_SRC_DIR})
# Add protobuf files
set(PROTO_FILE_HCFI ${CMAKE_CURRENT_SOURCE_DIR}/protos/hcfi.proto)
set(PROTO_FILE_TABOU ${CMAKE_CURRENT_SOURCE_DIR}/protos/tabousearch.proto)
set(PROTO_FILE_HELLO ${CMAKE_CURRENT_SOURCE_DIR}/protos/messages.proto)
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_SRC_DIR} ${PROTO_FILE_HCFI} ${PROTO_FILE_HELLO} ${PROTO_FILE_TABOU})
grpc_generate_cpp(GRPC_SRCS GRPC_HDRS ${PROTO_SRC_DIR} ${PROTO_FILE_HCFI} ${PROTO_FILE_HELLO} ${PROTO_FILE_TABOU})
# Add libs & helpers
file(GLOB LIBS_H_SRC libs/*.h)
file(GLOB LIBS_CPP_SRC libs/*.cpp)
# Add grpcCallData
file(GLOB GRPC_CALL_DATA_H grpcCallData/*/*.h)
file(GLOB GRPC_CALL_DATA_CPP grpcCallData/*/*.cpp)
# Building server_async
add_executable(server
${CMAKE_CURRENT_SOURCE_DIR}/server.cpp
${PROTO_SRCS}
${GRPC_SRCS}
${LIBS_H_SRC}
${LIBS_CPP_SRC}
${CMAKE_CURRENT_SOURCE_DIR}/grpcCallData/CallData.h
${CMAKE_CURRENT_SOURCE_DIR}/grpcCallData/CallData.cpp
${GRPC_CALL_DATA_H}
${GRPC_CALL_DATA_CPP})
target_link_libraries(server
gRPC::grpc++_reflection
protobuf::libprotobuf
)
target_link_libraries(server ${LIBMONGOCXX_LIBRARIES})
target_link_libraries(server ${LIBBSONCXX_LIBRARIES})
link_libraries(OperationalResearchApi ${LIBBSONCXX_LIBRARIES})