Files
TheRock/compiler/amd-llvm/clang-tools-extra/clangd/index/remote/README.md
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

61 lines
2.2 KiB
Markdown

# Clangd remote index
Clangd uses a global index for project-wide code completion, navigation and
other features. For large projects, building this can take many hours and
keeping it loaded uses a lot of memory.
To relieve that burden, we're building remote index — a global index
served on a different machine and shared between developers. This directory
contains code that is used as Proof of Concept for the upcoming remote index
feature.
## Building
This feature uses gRPC 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`.
### System-installed libraries
On Debian-like systems gRPC and Protobuf can be installed from apt:
```bash
apt install libgrpc++-dev libprotobuf-dev protobuf-compiler-grpc
```
### Building from sources
Another way of installing gRPC and Protobuf is building from sources using
CMake (we need CMake config files to find necessary libraries in LLVM). The
easiest way of doing that would be to choose a directory where you want to
install so that the installation files are not copied to system root and you
can easily uninstall gRPC or use different versions.
```bash
# Get source code.
$ git clone -b v1.36.3 https://github.com/grpc/grpc
$ cd grpc
$ git submodule update --init
# Choose directory where you want gRPC installation to live.
$ export GRPC_INSTALL_PATH=/where/you/want/grpc/to/be/installed
# Build and install gRPC to ${GRPC_INSTALL_PATH}
$ mkdir build; cd build
$ cmake -DgRPC_INSTALL=ON -DCMAKE_INSTALL_PREFIX=${GRPC_INSTALL_PATH} -DCMAKE_BUILD_TYPE=Release ..
$ make install
```
This [guide](https://github.com/grpc/grpc/blob/master/BUILDING.md) goes into
more detail on how to build gRPC from sources.
By default, CMake will look for system-installed libraries when building remote
index tools so you will have to adjust LLVM's CMake invocation. The following
flag will inform build system that you chose this option —
`-DGRPC_INSTALL_PATH=${GRPC_INSTALL_PATH}`.
## Running
You can run `clangd-index-server` and connect `clangd` instance to it using
`--remote-index-address` and `--project-root` flags.