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. # grpc version : v1.37.1
  3. set(grpc_build_dir "${LIB_BASE_DIR}/grpc-build")
  4. if(NOT EXISTS ${grpc_build_dir})
  5. # install grpc
  6. execute_process(COMMAND mkdir -p "${grpc_build_dir}")
  7. message(STATUS "${BoldGreen}Install grpc third party library${ColourReset}")
  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. -j6
  21. -fPIC
  22. -S ${LIB_BASE_DIR}/grpc-src
  23. -B ${grpc_build_dir}
  24. WORKING_DIRECTORY ${grpc_build_dir})
  25. execute_process(
  26. COMMAND make -j6
  27. WORKING_DIRECTORY ${grpc_build_dir})
  28. execute_process(
  29. COMMAND make install
  30. WORKING_DIRECTORY ${grpc_build_dir})
  31. execute_process(COMMAND cp -rf ${LIB_BASE_DIR}/grpc-src/third_party/abseil-cpp/absl ${grpc_build_dir}/include)
  32. execute_process(
  33. COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/patch/grpc ${LIB_BASE_DIR}/grpc-build
  34. WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  35. )
  36. message("${BoldGreen}GRPC Installed !${ColourReset}")
  37. endif()
  38. set(gRPC_DIR ${grpc_build_dir})
  39. find_package(Threads REQUIRED)
  40. find_package(protobuf REQUIRED)
  41. find_package(gRPC CONFIG REQUIRED)
  42. include_directories(${grpc_build_dir}/include)
  43. link_directories(${grpc_build_dir}/lib)
  44. # local proto file
  45. set(grpc_BINARY_DIR "${grpc_build_dir}/bin")
  46. message(${BoldGreen}
  47. protobuf_FOUND${protobuf_FOUND} \n
  48. ${CMAKE_PREFIX_PATH} \n
  49. proto_file: ${grpc_BINARY_DIR}/protoc \n
  50. grpc_cpp_plugin${grpc_BINARY_DIR}/grpc_cpp_plugin${ColourReset})
  51. list(APPEND third_party_libraries gRPC::grpc++ gRPC::grpc++_reflection protobuf)