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.

49 lines
1.8 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. # GRPC and Protocol Buffers libraries location
  10. set(GRPC_ROOT ${LIB_BASE_DIR}/grpc-build)
  11. # 运行参数
  12. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -pthread -fPIC")
  13. list(APPEND CMAKE_PREFIX_PATH "${GRPC_ROOT}")
  14. find_package(Threads REQUIRED)
  15. message("${BoldGreen} ${CMAKE_PREFIX_PATH} ${ColourReset}")
  16. find_package(gRPC CONFIG REQUIRED)
  17. message(${BoldGreen}
  18. GRPC_LIBRARY_DIR:${GRPC_LIBRARY_DIR} \n
  19. grpc_cpp_plugin${grpc_BINARY_DIR}/grpc_cpp_plugin${ColourReset})
  20. set(PROTO_DIR ${CMAKE_CURRENT_SOURCE_DIR})
  21. add_custom_command(
  22. OUTPUT ${PROTO_DIR}/helloworld.pb.cc
  23. ${PROTO_DIR}/helloworld.pb.h
  24. ${PROTO_DIR}/helloworld.grpc.pb.cc
  25. ${PROTO_DIR}/helloworld.grpc.pb.h
  26. COMMAND ${GRPC_ROOT}/bin/protoc
  27. ARGS --grpc_out "${PROTO_DIR}"
  28. --cpp_out "${PROTO_DIR}"
  29. -I "${PROTO_DIR}"
  30. --plugin=protoc-gen-grpc=${GRPC_ROOT}/bin/grpc_cpp_plugin
  31. helloworld.proto)
  32. add_library(hello_proto STATIC
  33. ${PROTO_DIR}/helloworld.pb.cc
  34. ${PROTO_DIR}/helloworld.pb.h
  35. ${PROTO_DIR}/helloworld.grpc.pb.cc
  36. ${PROTO_DIR}/helloworld.grpc.pb.h)
  37. target_include_directories(hello_proto PUBLIC ${GRPC_INCLUDE_DIR} ${PROTOBUF_INCLUDE_DIR})
  38. target_link_libraries(hello_proto ${GRPC_CLIENT_LIBS})
  39. foreach(_target
  40. greeter_client greeter_server
  41. greeter_async_client greeter_async_client2 greeter_async_server)
  42. add_executable(${_target} "${_target}.cc")
  43. target_link_libraries(${_target} hello_proto ${GRPC_CLIENT_LIBS})
  44. endforeach()