You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.7 KiB

  1. cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
  2. project(helloworld_grpc)
  3. # set color
  4. string(ASCII 27 Esc)
  5. set(ColourReset "${Esc}[m")
  6. set(BoldGreen "${Esc}[1;32m")
  7. set(BoldRed "${Esc}[31m")
  8. set(LIB_BASE_DIR /root/CXX_ENVS/wenet_runtime)
  9. # 运行参数
  10. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -pthread -fPIC")
  11. include(../cmake-linux/grpc.cmake)
  12. message(${BoldGreen}
  13. GRPC_LIBRARY_DIR:${GRPC_LIBRARY_DIR} \n
  14. GRPC_INCLUDE_DIR:${GRPC_INCLUDE_DIR} \n
  15. GRPC_BINARY_DIR:${GRPC_BINARY_DIR} \n
  16. grpc_cpp_plugin${GRPC_BINARY_DIR}/grpc_cpp_plugin${ColourReset})
  17. set(PROTO_DIR ${CMAKE_CURRENT_SOURCE_DIR})
  18. add_custom_command(
  19. OUTPUT ${PROTO_DIR}/helloworld.pb.cc
  20. ${PROTO_DIR}/helloworld.pb.h
  21. ${PROTO_DIR}/helloworld.grpc.pb.cc
  22. ${PROTO_DIR}/helloworld.grpc.pb.h
  23. COMMAND ${PROTOBUF_PROTOC}
  24. ARGS --grpc_out "${PROTO_DIR}"
  25. --cpp_out "${PROTO_DIR}"
  26. -I "${PROTO_DIR}"
  27. --plugin=protoc-gen-grpc=${GRPC_BINARY_DIR}/grpc_cpp_plugin
  28. helloworld.proto)
  29. add_library(hello_proto SHARED
  30. ${PROTO_DIR}/helloworld.pb.cc
  31. ${PROTO_DIR}/helloworld.pb.h
  32. ${PROTO_DIR}/helloworld.grpc.pb.cc
  33. ${PROTO_DIR}/helloworld.grpc.pb.h)
  34. target_link_libraries(hello_proto
  35. ${REFLECTION}
  36. ${GRPC_GRPCPP}
  37. ${PROTOBUF_LIBPROTOBUF})
  38. foreach(_target
  39. greeter_client greeter_server
  40. greeter_async_client greeter_async_client2 greeter_async_server)
  41. add_executable(${_target} "${_target}.cc")
  42. target_link_libraries(${_target} hello_proto
  43. ${REFLECTION}
  44. ${GRPC_GRPCPP}
  45. ${PROTOBUF_LIBPROTOBUF})
  46. endforeach()