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.

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