kbobyrev updated this revision to Diff 330592. kbobyrev added a comment. Include Features.inc in Server.cpp.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D98404/new/ https://reviews.llvm.org/D98404 Files: clang-tools-extra/clangd/CMakeLists.txt clang-tools-extra/clangd/Features.inc.in clang-tools-extra/clangd/index/remote/server/CMakeLists.txt clang-tools-extra/clangd/index/remote/server/Server.cpp llvm/cmake/modules/FindGRPC.cmake
Index: llvm/cmake/modules/FindGRPC.cmake =================================================================== --- llvm/cmake/modules/FindGRPC.cmake +++ llvm/cmake/modules/FindGRPC.cmake @@ -22,6 +22,10 @@ add_library(protobuf ALIAS protobuf::libprotobuf) set_target_properties(gRPC::grpc++ PROPERTIES IMPORTED_GLOBAL TRUE) add_library(grpc++ ALIAS gRPC::grpc++) + if (ENABLE_GRPC_REFLECTION) + set_target_properties(gRPC::grpc++_reflection PROPERTIES IMPORTED_GLOBAL TRUE) + add_library(grpc++_reflection ALIAS gRPC::grpc++_reflection) + endif() set(GRPC_CPP_PLUGIN $<TARGET_FILE:gRPC::grpc_cpp_plugin>) set(PROTOC ${Protobuf_PROTOC_EXECUTABLE}) @@ -71,12 +75,21 @@ add_library(grpc++ UNKNOWN IMPORTED GLOBAL) message(STATUS "Using grpc++: " ${GRPC_LIBRARY}) set_target_properties(grpc++ PROPERTIES IMPORTED_LOCATION ${GRPC_LIBRARY}) + if (ENABLE_GRPC_REFLECTION) + find_library(GRPC_REFLECTION_LIBRARY grpc++_reflection $GRPC_OPTS REQUIRED) + add_library(grpc++_reflection UNKNOWN IMPORTED GLOBAL) + set_target_properties(grpc++_reflection PROPERTIES IMPORTED_LOCATION ${GRPC_REFLECTION_LIBRARY}) + endif() find_library(PROTOBUF_LIBRARY protobuf $PROTOBUF_OPTS REQUIRED) message(STATUS "Using protobuf: " ${PROTOBUF_LIBRARY}) add_library(protobuf UNKNOWN IMPORTED GLOBAL) set_target_properties(protobuf PROPERTIES IMPORTED_LOCATION ${PROTOBUF_LIBRARY}) endif() +if (ENABLE_GRPC_REFLECTION) + set(REFLECTION_LIBRARY grpc++_reflection) +endif() + # Proto headers are generated in ${CMAKE_CURRENT_BINARY_DIR}. # Libraries that use these headers should adjust the include path. # If the "GRPC" argument is given, services are also generated. Index: clang-tools-extra/clangd/index/remote/server/Server.cpp =================================================================== --- clang-tools-extra/clangd/index/remote/server/Server.cpp +++ clang-tools-extra/clangd/index/remote/server/Server.cpp @@ -6,6 +6,7 @@ // //===----------------------------------------------------------------------===// +#include "Features.inc" #include "Index.pb.h" #include "Service.grpc.pb.h" #include "index/Index.h" @@ -35,6 +36,10 @@ #include <memory> #include <thread> +#if ENABLE_GRPC_REFLECTION +#include <grpc++/ext/proto_server_reflection_plugin.h> +#endif + namespace clang { namespace clangd { namespace remote { @@ -313,6 +318,9 @@ RemoteIndexServer Service(Index, IndexRoot); grpc::EnableDefaultHealthCheckService(true); +#if ENABLE_GRPC_REFLECTION + grpc::reflection::InitProtoReflectionServerBuilderPlugin(); +#endif grpc::ServerBuilder Builder; Builder.AddListeningPort(ServerAddress.str(), grpc::InsecureServerCredentials()); Index: clang-tools-extra/clangd/index/remote/server/CMakeLists.txt =================================================================== --- clang-tools-extra/clangd/index/remote/server/CMakeLists.txt +++ clang-tools-extra/clangd/index/remote/server/CMakeLists.txt @@ -17,4 +17,6 @@ RemoteIndexProto RemoteIndexServiceProto clangdRemoteMarshalling + + ${REFLECTION_LIBRARY} ) Index: clang-tools-extra/clangd/Features.inc.in =================================================================== --- clang-tools-extra/clangd/Features.inc.in +++ clang-tools-extra/clangd/Features.inc.in @@ -1,3 +1,4 @@ #define CLANGD_BUILD_XPC @CLANGD_BUILD_XPC@ #define CLANGD_ENABLE_REMOTE @CLANGD_ENABLE_REMOTE@ +#define ENABLE_GRPC_REFLECTION @ENABLE_GRPC_REFLECTION@ #define CLANGD_MALLOC_TRIM @CLANGD_MALLOC_TRIM@ Index: clang-tools-extra/clangd/CMakeLists.txt =================================================================== --- clang-tools-extra/clangd/CMakeLists.txt +++ clang-tools-extra/clangd/CMakeLists.txt @@ -19,6 +19,7 @@ llvm_canonicalize_cmake_booleans( CLANGD_BUILD_XPC CLANGD_ENABLE_REMOTE + ENABLE_GRPC_REFLECTION CLANGD_MALLOC_TRIM LLVM_ENABLE_ZLIB )
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits