[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27
kbobyrev abandoned this revision. kbobyrev added a comment. There are more revisions that are buggy, can't test them all :( Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D84232/new/ https://reviews.llvm.org/D84232 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27
kbobyrev planned changes to this revision. kbobyrev added a comment. Need to exclude everything between 1.26.0 and 1.27.0, not set this as the minimum (Ubuntu packages are outdated). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D84232/new/ https://reviews.llvm.org/D84232 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27
kbobyrev added a comment. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=965217 is not going anywhere, I think we should just add this check and not check for the correct patch on Debian (and macOS is different anyway). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D84232/new/ https://reviews.llvm.org/D84232 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27
kbobyrev updated this revision to Diff 299623. kbobyrev added a comment. Add macOS version check. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D84232/new/ https://reviews.llvm.org/D84232 Files: clang-tools-extra/clangd/index/remote/README.md llvm/cmake/modules/FindGRPC.cmake Index: llvm/cmake/modules/FindGRPC.cmake === --- llvm/cmake/modules/FindGRPC.cmake +++ llvm/cmake/modules/FindGRPC.cmake @@ -11,7 +11,7 @@ set(protobuf_MODULE_COMPATIBLE TRUE) find_package(Protobuf CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using protobuf ${protobuf_VERSION}") - find_package(gRPC CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) + find_package(gRPC 1.27 CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using gRPC ${gRPC_VERSION}") include_directories(${Protobuf_INCLUDE_DIRS}) @@ -41,6 +41,7 @@ # On macOS the libraries are typically installed via Homebrew and are not on # the system path. if (${APPLE}) +# FIXME(kirillbobyrev): Check gRPC version for macOS, too. find_program(HOMEBREW brew) # If Homebrew is not found, the user might have installed libraries # manually. Fall back to the system path. @@ -56,6 +57,18 @@ # If either library is not installed via Homebrew, fall back to the # system path. if (GRPC_HOMEBREW_RETURN_CODE EQUAL "0") +execute_process(COMMAND ${HOMEBREW} list --versions grpc + OUTPUT_VARIABLE HOMEBREW_GRPC_VERSION + RESULT_VARIABLE HOMEBREW_GRPC_VERSION_RETURN_CODE) +if (HOMEBREW_GRPC_VERSION_RETURN_CODE EQUAL "0") + # Parse MAJOR.MINOR gRPC version. + string(REGEX MATCH "grpc ([0-9]+\\.[0-9]+)" +gRPC_VERSION ${HOMEBREW_GRPC_VERSION}) + if (CMAKE_MATCH_1 VERSION_LESS "1.27") +message(FATAL_ERROR "gRPC version rerquied: >=1.27, found: ${CMAKE_MATCH_1}") + endif() + message(STATUS "Using gRPC ${CMAKE_MATCH_1}") +endif() include_directories(${GRPC_HOMEBREW_PATH}/include) find_library(GRPC_LIBRARY grpc++ @@ -78,6 +91,24 @@ IMPORTED_LOCATION ${PROTOBUF_LIBRARY}) endif() endif() + elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") +# Try to figure out gRPC version using APT for Debian-like Linux +# distributions. +find_program(APT apt) +if (NOT APT-NOTFOUND) + execute_process(COMMAND ${APT} policy libgrpc++-dev +OUTPUT_VARIABLE APT_GRPC_POLICY +RESULT_VARIABLE APT_GRPC_POLICY_RETURN_CODE) + if (APT_GRPC_POLICY_RETURN_CODE EQUAL "0") +# Parse MAJOR.MINOR gRPC version. +string(REGEX MATCH "Installed: ([0-9]+\\.[0-9]+)" + gRPC_VERSION ${APT_GRPC_POLICY}) +if (CMAKE_MATCH_1 VERSION_LESS "1.27") + message(FATAL_ERROR "gRPC version rerquied: >=1.27, found: ${CMAKE_MATCH_1}") +endif() +message(STATUS "Using gRPC ${CMAKE_MATCH_1}") + endif() +endif() endif() endif() Index: clang-tools-extra/clangd/index/remote/README.md === --- clang-tools-extra/clangd/index/remote/README.md +++ clang-tools-extra/clangd/index/remote/README.md @@ -11,8 +11,9 @@ ## Building -This feature uses gRPC and Protobuf libraries, so you will need to install them. -There are two ways of doing that. +This feature uses gRPC (known to work with versions starting from 1.27.0) and +Protobuf libraries, so you will need to install them. There are two ways of +doing that. However you install dependencies, to enable this feature and build remote index tools you will need to set this CMake flag — `-DCLANGD_ENABLE_REMOTE=On`. Index: llvm/cmake/modules/FindGRPC.cmake === --- llvm/cmake/modules/FindGRPC.cmake +++ llvm/cmake/modules/FindGRPC.cmake @@ -11,7 +11,7 @@ set(protobuf_MODULE_COMPATIBLE TRUE) find_package(Protobuf CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using protobuf ${protobuf_VERSION}") - find_package(gRPC CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) + find_package(gRPC 1.27 CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using gRPC ${gRPC_VERSION}") include_directories(${Protobuf_INCLUDE_DIRS}) @@ -41,6 +41,7 @@ # On macOS the libraries are typically installed via Homebrew and are not on # the system path. if (${APPLE}) +# FIXME(kirillbobyrev): Check gRPC version for macOS, too. find_program(HOMEBREW brew) # If Homebrew is not found, the user might have installed libraries # manually. Fall back to the system path. @@ -56,6 +57,18 @@ # If either library is not installed via Homebrew, fall back to the # system path. if (GRPC_HOMEBREW_RETURN_CODE EQUAL "0") +execute_process(COMMAND ${HOMEBREW} l
[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27
kbobyrev updated this revision to Diff 299618. kbobyrev added a comment. Rebase on top of master. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D84232/new/ https://reviews.llvm.org/D84232 Files: clang-tools-extra/clangd/index/remote/README.md llvm/cmake/modules/FindGRPC.cmake Index: llvm/cmake/modules/FindGRPC.cmake === --- llvm/cmake/modules/FindGRPC.cmake +++ llvm/cmake/modules/FindGRPC.cmake @@ -11,7 +11,7 @@ set(protobuf_MODULE_COMPATIBLE TRUE) find_package(Protobuf CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using protobuf ${protobuf_VERSION}") - find_package(gRPC CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) + find_package(gRPC 1.27 CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using gRPC ${gRPC_VERSION}") include_directories(${Protobuf_INCLUDE_DIRS}) @@ -41,6 +41,7 @@ # On macOS the libraries are typically installed via Homebrew and are not on # the system path. if (${APPLE}) +# FIXME(kirillbobyrev): Check gRPC version for macOS, too. find_program(HOMEBREW brew) # If Homebrew is not found, the user might have installed libraries # manually. Fall back to the system path. @@ -78,6 +79,24 @@ IMPORTED_LOCATION ${PROTOBUF_LIBRARY}) endif() endif() + elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") +# Try to figure out gRPC version using APT for Debian-like Linux +# distributions. +find_program(APT apt) +if (NOT APT-NOTFOUND) + execute_process(COMMAND ${APT} policy libgrpc++-dev +OUTPUT_VARIABLE APT_GRPC_POLICY +RESULT_VARIABLE APT_GRPC_POLICY_RETURN_CODE) + if (APT_GRPC_POLICY_RETURN_CODE EQUAL "0") +# Parse MAJOR.MINOR gRPC version. +string(REGEX MATCH "Installed: ([0-9]+\\.[0-9]+)" + gRPC_VERSION ${APT_GRPC_POLICY}) +if (CMAKE_MATCH_1 VERSION_LESS "1.27") + message(FATAL_ERROR "gRPC version rerquied: >=1.27, found: ${CMAKE_MATCH_1}") +endif() +message(STATUS "Using gRPC ${gRPC_VERSION}") + endif() +endif() endif() endif() Index: clang-tools-extra/clangd/index/remote/README.md === --- clang-tools-extra/clangd/index/remote/README.md +++ clang-tools-extra/clangd/index/remote/README.md @@ -11,8 +11,9 @@ ## Building -This feature uses gRPC and Protobuf libraries, so you will need to install them. -There are two ways of doing that. +This feature uses gRPC (known to work with versions starting from 1.27.0) and +Protobuf libraries, so you will need to install them. There are two ways of +doing that. However you install dependencies, to enable this feature and build remote index tools you will need to set this CMake flag — `-DCLANGD_ENABLE_REMOTE=On`. Index: llvm/cmake/modules/FindGRPC.cmake === --- llvm/cmake/modules/FindGRPC.cmake +++ llvm/cmake/modules/FindGRPC.cmake @@ -11,7 +11,7 @@ set(protobuf_MODULE_COMPATIBLE TRUE) find_package(Protobuf CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using protobuf ${protobuf_VERSION}") - find_package(gRPC CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) + find_package(gRPC 1.27 CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using gRPC ${gRPC_VERSION}") include_directories(${Protobuf_INCLUDE_DIRS}) @@ -41,6 +41,7 @@ # On macOS the libraries are typically installed via Homebrew and are not on # the system path. if (${APPLE}) +# FIXME(kirillbobyrev): Check gRPC version for macOS, too. find_program(HOMEBREW brew) # If Homebrew is not found, the user might have installed libraries # manually. Fall back to the system path. @@ -78,6 +79,24 @@ IMPORTED_LOCATION ${PROTOBUF_LIBRARY}) endif() endif() + elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") +# Try to figure out gRPC version using APT for Debian-like Linux +# distributions. +find_program(APT apt) +if (NOT APT-NOTFOUND) + execute_process(COMMAND ${APT} policy libgrpc++-dev +OUTPUT_VARIABLE APT_GRPC_POLICY +RESULT_VARIABLE APT_GRPC_POLICY_RETURN_CODE) + if (APT_GRPC_POLICY_RETURN_CODE EQUAL "0") +# Parse MAJOR.MINOR gRPC version. +string(REGEX MATCH "Installed: ([0-9]+\\.[0-9]+)" + gRPC_VERSION ${APT_GRPC_POLICY}) +if (CMAKE_MATCH_1 VERSION_LESS "1.27") + message(FATAL_ERROR "gRPC version rerquied: >=1.27, found: ${CMAKE_MATCH_1}") +endif() +message(STATUS "Using gRPC ${gRPC_VERSION}") + endif() +endif() endif() endif() Index: clang-tools-extra/clangd/index/remote/README.md === --- clang-tools-extra/clangd/index/remote/README.md +++ clang-tools-extra/cl
[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27
kbobyrev added a comment. This patch is not ready for review yet; planned changes: check if the version is between 1.25.0 and 1.26.0-4 and bail out in such cases. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D84232/new/ https://reviews.llvm.org/D84232 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27
kbobyrev planned changes to this revision. kbobyrev added a comment. Maybe wait for Debian packages to get updated and then whitelist 1.26.0-4 but fail with anything lower than that. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D84232/new/ https://reviews.llvm.org/D84232 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27
kbobyrev added a comment. Aww, this might be problematic. Ubuntu has quite old gRPC versions (which are OK though). The newest is 1.26.0 and it's on Groovy (20.10, unreleased yet). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D84232/new/ https://reviews.llvm.org/D84232 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27
kbobyrev updated this revision to Diff 279497. kbobyrev added a comment. Herald added a project: clang. Herald added a subscriber: cfe-commits. Check gRPC version for system-installed APT package on Debian-like Linux distros. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D84232/new/ https://reviews.llvm.org/D84232 Files: clang-tools-extra/clangd/index/remote/README.md llvm/cmake/modules/FindGRPC.cmake Index: llvm/cmake/modules/FindGRPC.cmake === --- llvm/cmake/modules/FindGRPC.cmake +++ llvm/cmake/modules/FindGRPC.cmake @@ -6,7 +6,7 @@ set(protobuf_MODULE_COMPATIBLE TRUE) find_package(Protobuf CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using protobuf ${protobuf_VERSION}") - find_package(gRPC CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) + find_package(gRPC 1.27 CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using gRPC ${gRPC_VERSION}") include_directories(${Protobuf_INCLUDE_DIRS}) @@ -29,6 +29,7 @@ # On macOS the libraries are typically installed via Homebrew and are not on # the system path. if (${APPLE}) +# FIXME(kirillbobyrev): Check gRPC version for macOS, too. find_program(HOMEBREW brew) # If Homebrew is not found, the user might have installed libraries # manually. Fall back to the system path. @@ -52,6 +53,24 @@ link_directories(${PROTOBUF_HOMEBREW_PATH}/lib) endif() endif() + elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") +# Try to figure out gRPC version using APT for Debian-like Linux +# distributions. +find_program(APT apt) +if (NOT APT-NOTFOUND) + execute_process(COMMAND ${APT} policy libgrpc++-dev +OUTPUT_VARIABLE APT_GRPC_POLICY +RESULT_VARIABLE APT_GRPC_POLICY_RETURN_CODE) + if (APT_GRPC_POLICY_RETURN_CODE EQUAL "0") +# Parse MAJOR.MINOR gRPC version. +string(REGEX MATCH "Installed: ([0-9]+\\.[0-9]+)" + gRPC_VERSION ${APT_GRPC_POLICY}) +if (CMAKE_MATCH_1 VERSION_LESS "1.27") + message(FATAL_ERROR "gRPC version rerquied: >=1.27, found: ${CMAKE_MATCH_1}") +endif() +message(STATUS "Using gRPC ${gRPC_VERSION}") + endif() +endif() endif() endif() Index: clang-tools-extra/clangd/index/remote/README.md === --- clang-tools-extra/clangd/index/remote/README.md +++ clang-tools-extra/clangd/index/remote/README.md @@ -11,8 +11,9 @@ ## Building -This feature uses gRPC and Protobuf libraries, so you will need to install them. -There are two ways of doing that. +This feature uses gRPC (known to work with versions starting from 1.27.0) and +Protobuf libraries, so you will need to install them. There are two ways of +doing that. However you install dependencies, to enable this feature and build remote index tools you will need to set this CMake flag — `-DCLANGD_ENABLE_REMOTE=On`. Index: llvm/cmake/modules/FindGRPC.cmake === --- llvm/cmake/modules/FindGRPC.cmake +++ llvm/cmake/modules/FindGRPC.cmake @@ -6,7 +6,7 @@ set(protobuf_MODULE_COMPATIBLE TRUE) find_package(Protobuf CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using protobuf ${protobuf_VERSION}") - find_package(gRPC CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) + find_package(gRPC 1.27 CONFIG REQUIRED HINTS ${GRPC_INSTALL_PATH}) message(STATUS "Using gRPC ${gRPC_VERSION}") include_directories(${Protobuf_INCLUDE_DIRS}) @@ -29,6 +29,7 @@ # On macOS the libraries are typically installed via Homebrew and are not on # the system path. if (${APPLE}) +# FIXME(kirillbobyrev): Check gRPC version for macOS, too. find_program(HOMEBREW brew) # If Homebrew is not found, the user might have installed libraries # manually. Fall back to the system path. @@ -52,6 +53,24 @@ link_directories(${PROTOBUF_HOMEBREW_PATH}/lib) endif() endif() + elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") +# Try to figure out gRPC version using APT for Debian-like Linux +# distributions. +find_program(APT apt) +if (NOT APT-NOTFOUND) + execute_process(COMMAND ${APT} policy libgrpc++-dev +OUTPUT_VARIABLE APT_GRPC_POLICY +RESULT_VARIABLE APT_GRPC_POLICY_RETURN_CODE) + if (APT_GRPC_POLICY_RETURN_CODE EQUAL "0") +# Parse MAJOR.MINOR gRPC version. +string(REGEX MATCH "Installed: ([0-9]+\\.[0-9]+)" + gRPC_VERSION ${APT_GRPC_POLICY}) +if (CMAKE_MATCH_1 VERSION_LESS "1.27") + message(FATAL_ERROR "gRPC version rerquied: >=1.27, found: ${CMAKE_MATCH_1}") +endif() +message(STATUS "Using gRPC ${gRPC_VERSION}") + endif() +endif() endif() endif() Index: clang-tools-extra/clangd/index/remote/README.md ==