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.

55 lines
2.0 KiB

  1. # On how to build grpc, you may refer to https://github.com/grpc/grpc
  2. set(grpc_build_dir "${LIB_BASE_DIR}/grpc-build")
  3. if(NOT EXISTS ${grpc_build_dir})
  4. # install grpc
  5. execute_process(COMMAND mkdir -p ${grpc_build_dir})
  6. message(STATUS "${BoldGreen}Install grpc third party library")
  7. execute_process(
  8. COMMAND cmake
  9. -DgRPC_INSTALL=ON
  10. -DCMAKE_BUILD_TYPE=Release
  11. -DgRPC_PROTOBUF_PROVIDER=package
  12. -DgRPC_CARES_PROVIDER=package
  13. -DgRPC_ABSL_PROVIDER=package
  14. -DgRPC_RE2_PROVIDER=package
  15. -DgRPC_SSL_PROVIDER=package
  16. -DgRPC_ZLIB_PROVIDER=package
  17. -DgRPC_BUILD_TESTS=OFF
  18. -DCMAKE_INSTALL_PREFIX=${grpc_build_dir}
  19. -S ${LIB_BASE_DIR}/grpc-src
  20. -B ${grpc_build_dir}
  21. WORKING_DIRECTORY ${grpc_build_dir})
  22. execute_process(
  23. COMMAND cmake --build . -j4
  24. WORKING_DIRECTORY ${grpc_build_dir})
  25. execute_process(
  26. COMMAND cmake --install . -j6
  27. WORKING_DIRECTORY ${grpc_build_dir})
  28. execute_process(
  29. COMMAND cp -rf ${LIB_BASE_DIR}/grpc-src/third_party/abseil-cpp/absl ${grpc_build_dir}/include)
  30. message("${BoldGreen}GRPC Installed !${ColourReset}")
  31. endif()
  32. set(CMAKE_PREFIX_PATH ${grpc_build_dir}
  33. ${grpc_build_dir}/lib/cmake/protobuf
  34. ${grpc_build_dir}/lib/cmake/grpc
  35. ${CMAKE_PREFIX_PATH})
  36. find_package(Threads REQUIRED)
  37. find_package(protobuf CONFIG REQUIRED)
  38. find_package(gRPC CONFIG REQUIRED)
  39. include_directories(${grpc_build_dir}/include)
  40. link_directories(${grpc_build_dir}/lib)
  41. # local proto file
  42. set(PROTO_DIR "${CMAKE_CURRENT_SOURCE_DIR}/bin_grpc")
  43. set(grpc_BINARY_DIR "${grpc_build_dir}/bin")
  44. message(${BoldGreen}
  45. protoc${protobuf_BINARY_DIR}/protoc \n
  46. grpc_cpp_plugin${grpc_BINARY_DIR}/grpc_cpp_plugin\n
  47. helloworld${PROTO_DIR}/helloworld.proto${ColourReset})
  48. list(APPEND third_party_libraries grpc++ grpc++_reflection libprotobuf)