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

# On how to build grpc, you may refer to https://github.com/grpc/grpc
set(grpc_build_dir "${LIB_BASE_DIR}/grpc-build")
if(NOT EXISTS ${grpc_build_dir})
# install grpc
execute_process(COMMAND mkdir -p "${grpc_build_dir}")
message(STATUS "${BoldGreen}Install grpc third party library${ColourReset}")
execute_process(
COMMAND cmake
-DgRPC_INSTALL=ON
-DCMAKE_BUILD_TYPE=Release
-DgRPC_PROTOBUF_PROVIDER=module
-DgRPC_CARES_PROVIDER=module
-DgRPC_ABSL_PROVIDER=module
-DgRPC_RE2_PROVIDER=module
-DgRPC_SSL_PROVIDER=module
-DgRPC_ZLIB_PROVIDER=module
-DgRPC_BUILD_TESTS=OFF
-DCMAKE_INSTALL_PREFIX=${grpc_build_dir}
-j6
-fPIC
-S ${LIB_BASE_DIR}/grpc-src
-B ${grpc_build_dir}
WORKING_DIRECTORY ${grpc_build_dir})
execute_process(
COMMAND cmake --build . -j4
WORKING_DIRECTORY ${grpc_build_dir})
execute_process(
COMMAND cmake --install .
WORKING_DIRECTORY ${grpc_build_dir})
execute_process(COMMAND cp -rf ${LIB_BASE_DIR}/grpc-src/third_party/abseil-cpp/absl ${grpc_build_dir}/include)
execute_process(
COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/patch/grpc ${LIB_BASE_DIR}/grpc-build
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
message("${BoldGreen}GRPC Installed !${ColourReset}")
endif()
set(gRPC_DIR ${grpc_build_dir})
find_package(Threads REQUIRED)
find_package(protobuf REQUIRED)
find_package(gRPC CONFIG REQUIRED)
include_directories(${grpc_build_dir}/include)
link_directories(${grpc_build_dir}/lib)
# local proto file
set(grpc_BINARY_DIR "${grpc_build_dir}/bin")
message(${BoldGreen}
protobuf_FOUND:${protobuf_FOUND} \n
${CMAKE_PREFIX_PATH} \n
proto_file: ${grpc_BINARY_DIR}/protoc \n
grpc_cpp_plugin:${grpc_BINARY_DIR}/grpc_cpp_plugin${ColourReset})
list(APPEND third_party_libraries gRPC::grpc++ gRPC::grpc++_reflection protobuf)