From 9f3081dc6fe8447e85741865846840bc491866e5 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 5 Jan 2023 15:16:10 +0100 Subject: [PATCH] build: with -DCLANGD_ENABLE_REMOTE=ON, search for grpc++ dependencies too Fixes: https://github.com/llvm/llvm-project/issues/59844 Differential Revision: https://reviews.llvm.org/D141047 --- clang/cmake/modules/AddGRPC.cmake | 7 ++++++- cmake/Modules/FindGRPC.cmake | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/clang/cmake/modules/AddGRPC.cmake b/clang/cmake/modules/AddGRPC.cmake index 8989bd7..b2f4041 100644 --- a/clang/cmake/modules/AddGRPC.cmake +++ b/clang/cmake/modules/AddGRPC.cmake @@ -4,8 +4,13 @@ function(generate_clang_protos_library LibraryName ProtoFile) # Take the first two args and forward the remaining to generate_proto_sources. cmake_parse_arguments(PARSE_ARGV 2 PROTO "" "" "") generate_proto_sources(ProtoSource ${ProtoFile} ${PROTO_UNPARSED_ARGUMENTS}) + set(LINKED_GRPC_LIBRARIES protobuf gpr grpc grpc++) + if (ABSL_SYNCHRONIZATION_LIBRARY) + list(APPEND LINKED_GRPC_LIBRARIES absl_synchronization) + endif() add_clang_library(${LibraryName} ${ProtoSource} PARTIAL_SOURCES_INTENDED - LINK_LIBS PUBLIC grpc++ protobuf) + LINK_LIBS PUBLIC ${LINKED_GRPC_LIBRARIES}) + endfunction() diff --git a/cmake/Modules/FindGRPC.cmake b/cmake/Modules/FindGRPC.cmake index a559da4..a6dec2a 100644 --- a/cmake/Modules/FindGRPC.cmake +++ b/cmake/Modules/FindGRPC.cmake @@ -82,11 +82,28 @@ else() endif() endif() if(NOT TARGET grpc++) + find_library(GPR_LIBRARY gpr ${GRPC_OPTS} REQUIRED) + add_library(gpr UNKNOWN IMPORTED GLOBAL) + message(STATUS "Using gpr: " ${GPR_LIBRARY}) + set_target_properties(gpr PROPERTIES IMPORTED_LOCATION ${GPR_LIBRARY}) + find_library(GRPC_LIBRARY grpc++ ${GRPC_OPTS} REQUIRED) add_library(grpc++ UNKNOWN IMPORTED GLOBAL) message(STATUS "Using grpc++: " ${GRPC_LIBRARY}) set_target_properties(grpc++ PROPERTIES IMPORTED_LOCATION ${GRPC_LIBRARY}) target_include_directories(grpc++ INTERFACE ${GRPC_INCLUDE_PATHS}) + find_library(GRPC2_LIBRARY grpc ${GRPC_OPTS} REQUIRED) + add_library(grpc UNKNOWN IMPORTED GLOBAL) + message(STATUS "Using grpc: " ${GRPC2_LIBRARY}) + set_target_properties(grpc PROPERTIES IMPORTED_LOCATION ${GRPC2_LIBRARY}) + + find_library(ABSL_SYNCHRONIZATION_LIBRARY absl_synchronization ${GRPC_OPTS} QUIET) + if (ABSL_SYNCHRONIZATION_LIBRARY) + add_library(absl_synchronization UNKNOWN IMPORTED GLOBAL) + message(STATUS "Using absl_synchronization: " ${ABSL_SYNCHRONIZATION_LIBRARY}) + set_target_properties(absl_synchronization PROPERTIES IMPORTED_LOCATION ${ABSL_SYNCHRONIZATION_LIBRARY}) + endif() + if (ENABLE_GRPC_REFLECTION) find_library(GRPC_REFLECTION_LIBRARY grpc++_reflection ${GRPC_OPTS} REQUIRED) add_library(grpc++_reflection UNKNOWN IMPORTED GLOBAL) -- 2.7.4