Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- project(grpc-cmake-example)
- cmake_minimum_required(VERSION 3.2)
- set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
- add_compile_options(-std=c++11)
- # GRPC and Protocol Buffers libraries location
- list(APPEND CMAKE_PREFIX_PATH "/usr/local/include")
- # Cmake find modules
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
- find_package(Protobuf REQUIRED)
- find_package(GRPC REQUIRED)
- set(PROTOS
- ${CMAKE_CURRENT_SOURCE_DIR}/protos/photo_album.proto
- )
- set(PROTO_SRC_DIR ${CMAKE_CURRENT_BINARY_DIR}/proto-src)
- file(MAKE_DIRECTORY ${PROTO_SRC_DIR})
- include_directories(
- ${PROTO_SRC_DIR}
- ${CMAKE_CURRENT_BINARY_DIR}
- ${CMAKE_SOURCE_DIR}/src/models
- ${CMAKE_SOURCE_DIR}/src/server
- )
- protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_SRC_DIR} ${PROTOS})
- grpc_generate_cpp(GRPC_SRCS GRPC_HDRS ${PROTO_SRC_DIR} ${PROTOS})
- # Building server
- add_executable(server
- ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/src/server/server.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/src/server/server.h
- ${CMAKE_CURRENT_SOURCE_DIR}/src/models/models.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/src/models/models.h
- ${PROTO_SRCS}
- ${GRPC_SRCS}
- )
- target_link_libraries(server
- gRPC::grpc++_reflection
- protobuf::libprotobuf
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement