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.

59 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. 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${ColourReset}")
  7. execute_process(
  8. COMMAND cmake
  9. -DgRPC_INSTALL=ON
  10. -DCMAKE_BUILD_TYPE=Release
  11. -DgRPC_PROTOBUF_PROVIDER=module
  12. -DgRPC_CARES_PROVIDER=module
  13. -DgRPC_ABSL_PROVIDER=module
  14. -DgRPC_RE2_PROVIDER=module
  15. -DgRPC_SSL_PROVIDER=module
  16. -DgRPC_ZLIB_PROVIDER=module
  17. -DgRPC_BUILD_TESTS=OFF
  18. -DCMAKE_INSTALL_PREFIX=${grpc_build_dir}
  19. -j6
  20. -fPIC
  21. -S ${LIB_BASE_DIR}/grpc-src
  22. -B ${grpc_build_dir}
  23. WORKING_DIRECTORY ${grpc_build_dir})
  24. execute_process(
  25. COMMAND cmake --build . -j4
  26. WORKING_DIRECTORY ${grpc_build_dir})
  27. execute_process(
  28. COMMAND cmake --install .
  29. WORKING_DIRECTORY ${grpc_build_dir})
  30. execute_process(COMMAND cp -rf ${LIB_BASE_DIR}/grpc-src/third_party/abseil-cpp/absl ${grpc_build_dir}/include)
  31. execute_process(
  32. COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/patch/grpc ${LIB_BASE_DIR}/grpc-build
  33. WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  34. )
  35. message("${BoldGreen}GRPC Installed !${ColourReset}")
  36. endif()
  37. set(gRPC_DIR ${grpc_build_dir})
  38. find_package(Threads REQUIRED)
  39. find_package(protobuf REQUIRED)
  40. find_package(gRPC CONFIG REQUIRED)
  41. include_directories(${grpc_build_dir}/include)
  42. link_directories(${grpc_build_dir}/lib)
  43. # local proto file
  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: ${grpc_BINARY_DIR}/protoc \n
  49. grpc_cpp_plugin${grpc_BINARY_DIR}/grpc_cpp_plugin${ColourReset})
  50. list(APPEND third_party_libraries gRPC::grpc++ gRPC::grpc++_reflection protobuf)