CMakeLists.txt 1.0 KB

12345678910111213141516171819202122232425
  1. file(GLOB PROTO_FILES ABSOLUTE ${CMAKE_CURRENT_SOURCE_DIR}/../proto/*.proto)
  2. add_custom_target(echoserver_src_generation)
  3. add_custom_command(
  4. TARGET echoserver_src_generation
  5. COMMAND ${Protobuf_PROTOC_EXECUTABLE}
  6. ARGS --grpc_out "${CMAKE_CURRENT_BINARY_DIR}"
  7. --cpp_out "${CMAKE_CURRENT_BINARY_DIR}"
  8. -I="${CMAKE_CURRENT_SOURCE_DIR}/../proto/"
  9. --plugin=protoc-gen-grpc="${gRPC_CPP_PLUGIN_EXECUTABLE}"
  10. ${PROTO_FILES}
  11. DEPENDS ${PROTO_FILES})
  12. set(GENERATED_SOURCES
  13. "${CMAKE_CURRENT_BINARY_DIR}/simpletest.grpc.pb.cc"
  14. "${CMAKE_CURRENT_BINARY_DIR}/simpletest.pb.cc"
  15. "${CMAKE_CURRENT_BINARY_DIR}/testservice.grpc.pb.cc"
  16. "${CMAKE_CURRENT_BINARY_DIR}/testservice.pb.cc")
  17. set_source_files_properties(${GENERATED_SOURCES} PROPERTIES GENERATED TRUE)
  18. add_executable(echoserver main.cpp ${GENERATED_SOURCES})
  19. target_link_libraries(echoserver grpc++ ${Protobuf_LIBRARIES})
  20. target_include_directories(echoserver PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
  21. add_dependencies(echoserver echoserver_src_generation)