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.

57 lines
2.1 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. option(REBUILD "whether to build with ONNX" ON)
  4. if(REBUILD)
  5. # install grpc
  6. execute_process(COMMAND mkdir -p ${grpc_build_dir})
  7. message(STATUS "${BoldGreen}Install grpc third party library")
  8. execute_process(
  9. COMMAND cmake
  10. -DgRPC_INSTALL=ON
  11. -DCMAKE_BUILD_TYPE=Release
  12. -DgRPC_PROTOBUF_PROVIDER=module
  13. -DgRPC_CARES_PROVIDER=module
  14. -DgRPC_ABSL_PROVIDER=module
  15. -DgRPC_RE2_PROVIDER=module
  16. -DgRPC_SSL_PROVIDER=module
  17. -DgRPC_ZLIB_PROVIDER=module
  18. -DgRPC_BUILD_TESTS=OFF
  19. -DCMAKE_INSTALL_PREFIX=${grpc_build_dir}
  20. -S ${LIB_BASE_DIR}/grpc-src
  21. -B ${grpc_build_dir} -fPIC -j6
  22. WORKING_DIRECTORY ${grpc_build_dir})
  23. execute_process(
  24. COMMAND cmake --build . -j4
  25. WORKING_DIRECTORY ${grpc_build_dir})
  26. execute_process(
  27. COMMAND cmake --install .
  28. WORKING_DIRECTORY ${grpc_build_dir})
  29. # execute_process(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(gRPC_ROOT ${grpc_build_dir})
  33. list(APPEND CMAKE_PREFIX_PATH ${gRPC_ROOT})
  34. find_package(Threads REQUIRED)
  35. find_package(protobuf REQUIRED)
  36. find_package(gRPC CONFIG REQUIRED)
  37. message(${BoldGreen}
  38. _IMPORT_PREFIX:${_IMPORT_PREFIX} \n
  39. gRPC_LIBRARIES:${gRPC_LIBRARIES}${ColourReset})
  40. include_directories(${grpc_build_dir}/include)
  41. link_directories(${grpc_build_dir}/lib)
  42. # local proto file
  43. set(PROTO_DIR "${CMAKE_CURRENT_SOURCE_DIR}/bin_grpc")
  44. set(grpc_BINARY_DIR "${grpc_build_dir}/bin")
  45. message(${BoldGreen}
  46. protobuf_FOUND${protobuf_FOUND} \n
  47. ${CMAKE_PREFIX_PATH} \n
  48. proto_file: ${protobuf_BINARY_DIR}/protoc \n
  49. grpc_cpp_plugin${grpc_BINARY_DIR}/grpc_cpp_plugin\n
  50. helloworld${PROTO_DIR}/helloworld.proto${ColourReset})
  51. list(APPEND third_party_libraries grpc++ grpc++_reflection protobuf)