[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27

2020-11-11 Thread Kirill Bobyrev via Phabricator via cfe-commits
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

2020-11-10 Thread Kirill Bobyrev via Phabricator via cfe-commits
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

2020-10-21 Thread Kirill Bobyrev via Phabricator via cfe-commits
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

2020-10-21 Thread Kirill Bobyrev via Phabricator via cfe-commits
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} 

[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27

2020-10-21 Thread Kirill Bobyrev via Phabricator via cfe-commits
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
+++ 

[PATCH] D84232: [clangd] Set minimum gRPC version to 1.27

2020-07-30 Thread Kirill Bobyrev via Phabricator via cfe-commits
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

2020-07-24 Thread Kirill Bobyrev via Phabricator via cfe-commits
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

2020-07-22 Thread Kirill Bobyrev via Phabricator via cfe-commits
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

2020-07-21 Thread Kirill Bobyrev via Phabricator via cfe-commits
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