# On how to build grpc, you may refer to https://github.com/grpc/grpc set(grpc_build_dir "${LIB_BASE_DIR}/grpc-build") if(REBUILD) # install grpc execute_process(COMMAND rm -rf ${grpc_build_dir} && 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)