option (ENABLE_GRPC "Use gRPC" ${ENABLE_LIBRARIES}) if (NOT ENABLE_GRPC) if (USE_INTERNAL_GRPC_LIBRARY) message (${RECONFIGURE_MESSAGE_LEVEL} "Cannot use internal gRPC library with ENABLE_GRPC=OFF") endif() return() endif() option (USE_INTERNAL_GRPC_LIBRARY "Set to FALSE to use system gRPC library instead of bundled. (Experimental. Set to OFF on your own risk)" ${NOT_UNBUNDLED}) if (NOT USE_INTERNAL_GRPC_LIBRARY) find_package(grpc) if (NOT GRPC_FOUND) find_path(GRPC_INCLUDE_DIR grpcpp/grpcpp.h) find_library(GRPC_LIBRARY grpc++) endif () if (GRPC_INCLUDE_DIR AND GRPC_LIBRARY) set (USE_GRPC ON) else() message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find system gRPC") endif() endif() if (NOT USE_GRPC) if (NOT EXISTS "${ClickHouse_SOURCE_DIR}/contrib/grpc/include/grpc++/grpc++.h") message (WARNING "submodule contrib/grpc is missing. To fix try run: \n git submodule update --init --recursive") message (${RECONFIGURE_MESSAGE_LEVEL} "Can't find internal gRPC") set (USE_INTERNAL_GRPC_LIBRARY OFF) elseif (NOT USE_PROTOBUF) message (WARNING "gRPC requires protobuf which is disabled") message (${RECONFIGURE_MESSAGE_LEVEL} "Will not use internal gRPC without protobuf") set (USE_INTERNAL_GRPC_LIBRARY OFF) else() set (GRPC_INCLUDE_DIR "${ClickHouse_SOURCE_DIR}/contrib/grpc/include") set (GRPC_LIBRARY "libgrpc++") set (USE_GRPC ON) set (USE_INTERNAL_GRPC_LIBRARY ON) endif() endif() message (STATUS "Using gRPC=${USE_GRPC}: ${GRPC_INCLUDE_DIR} : ${GRPC_LIBRARY}")