diff --git a/ci/cloudbuild/builds/clang-7.0.sh b/ci/cloudbuild/builds/clang-14.0.sh
similarity index 100%
rename from ci/cloudbuild/builds/clang-7.0.sh
rename to ci/cloudbuild/builds/clang-14.0.sh
diff --git a/ci/cloudbuild/dockerfiles/ubuntu-22.04-install.Dockerfile b/ci/cloudbuild/dockerfiles/ubuntu-22.04-install.Dockerfile
new file mode 100644
index 0000000000000..b4fe54f4bbd65
--- /dev/null
+++ b/ci/cloudbuild/dockerfiles/ubuntu-22.04-install.Dockerfile
@@ -0,0 +1,202 @@
+# Copyright 2021 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM ubuntu:22.04
+
+ENV DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && \
+ apt-get --no-install-recommends install -y \
+ automake \
+ build-essential \
+ clang \
+ cmake \
+ curl \
+ gawk \
+ git \
+ gcc \
+ g++ \
+ libcurl4-openssl-dev \
+ libssl-dev \
+ libtool \
+ lsb-release \
+ make \
+ ninja-build \
+ patch \
+ pkg-config \
+ python3 \
+ python3-dev \
+ python3-pip \
+ tar \
+ unzip \
+ zip \
+ wget \
+ zlib1g-dev \
+ apt-utils \
+ ca-certificates \
+ apt-transport-https
+
+# Install Python packages used in the integration tests.
+RUN update-alternatives --install /usr/bin/python python $(which python3) 10
+RUN pip3 install setuptools wheel
+# The Cloud Pub/Sub emulator needs Java :shrug:
+RUN apt update && apt install -y openjdk-11-jre
+
+# Install all the direct (and indirect) dependencies for google-cloud-cpp.
+# Use a different directory for each build, and remove the downloaded
+# files and any temporary artifacts after a successful build to keep the
+# image smaller (and with fewer layers)
+
+WORKDIR /var/tmp/build/abseil-cpp
+RUN curl -fsSL https://github.com/abseil/abseil-cpp/archive/20250814.1.tar.gz | \
+ tar -xzf - --strip-components=1 && \
+ cmake \
+ -DCMAKE_BUILD_TYPE="Release" \
+ -DCMAKE_CXX_STANDARD=17 \
+ -DABSL_BUILD_TESTING=OFF \
+ -DBUILD_SHARED_LIBS=yes \
+ -S . -B cmake-out -GNinja && \
+ cmake --build cmake-out --target install && \
+ ldconfig && \
+ cd /var/tmp && rm -fr build
+
+WORKDIR /var/tmp/build/googletest
+RUN curl -fsSL https://github.com/google/googletest/archive/v1.16.0.tar.gz | \
+ tar -xzf - --strip-components=1 && \
+ cmake \
+ -DCMAKE_BUILD_TYPE="Release" \
+ -DCMAKE_CXX_STANDARD=17 \
+ -DBUILD_SHARED_LIBS=yes \
+ -S . -B cmake-out -GNinja && \
+ cmake --build cmake-out --target install && \
+ ldconfig && \
+ cd /var/tmp && rm -fr build
+
+WORKDIR /var/tmp/build/benchmark
+RUN curl -fsSL https://github.com/google/benchmark/archive/v1.9.2.tar.gz | \
+ tar -xzf - --strip-components=1 && \
+ cmake \
+ -DCMAKE_BUILD_TYPE="Release" \
+ -DBUILD_SHARED_LIBS=yes \
+ -DBENCHMARK_ENABLE_TESTING=OFF \
+ -S . -B cmake-out -GNinja && \
+ cmake --build cmake-out --target install && \
+ ldconfig && \
+ cd /var/tmp && rm -fr build
+
+WORKDIR /var/tmp/build/nlohmann-json
+RUN curl -fsSL https://github.com/nlohmann/json/archive/v3.11.3.tar.gz | \
+ tar -xzf - --strip-components=1 && \
+ cmake \
+ -DCMAKE_BUILD_TYPE="Release" \
+ -DBUILD_SHARED_LIBS=yes \
+ -DBUILD_TESTING=OFF \
+ -DJSON_BuildTests=OFF \
+ -S . -B cmake-out -GNinja && \
+ cmake --build cmake-out --target install && \
+ ldconfig && \
+ cd /var/tmp && rm -fr build
+
+
+WORKDIR /var/tmp/build/protobuf
+RUN curl -fsSL https://github.com/protocolbuffers/protobuf/archive/v33.1.tar.gz | \
+ tar -xzf - --strip-components=1 && \
+ cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_CXX_STANDARD=17 \
+ -DBUILD_SHARED_LIBS=yes \
+ -Dprotobuf_BUILD_TESTS=OFF \
+ -Dprotobuf_ABSL_PROVIDER=package \
+ -S . -B cmake-out -GNinja && \
+ cmake --build cmake-out --target install && \
+ ldconfig && \
+ cd /var/tmp && rm -fr build
+
+WORKDIR /var/tmp/build/c-ares
+RUN curl -fsSL https://github.com/c-ares/c-ares/archive/refs/tags/cares-1_17_1.tar.gz | \
+ tar -xzf - --strip-components=1 && \
+ cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=yes \
+ -S . -B cmake-out -GNinja && \
+ cmake --build cmake-out --target install && \
+ ldconfig && \
+ cd /var/tmp && rm -fr build
+
+WORKDIR /var/tmp/build/re2
+RUN curl -fsSL https://github.com/google/re2/archive/2025-07-22.tar.gz | \
+ tar -xzf - --strip-components=1 && \
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=ON \
+ -DRE2_BUILD_TESTING=OFF \
+ -S . -B cmake-out -GNinja && \
+ cmake --build cmake-out --target install && \
+ ldconfig && \
+ cd /var/tmp && rm -fr build
+
+WORKDIR /var/tmp/build/
+RUN curl -fsSL https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.24.0.tar.gz | \
+ tar -xzf - --strip-components=1 && \
+ cmake \
+ -DCMAKE_CXX_STANDARD=17 \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
+ -DBUILD_SHARED_LIBS=ON \
+ -DWITH_EXAMPLES=OFF \
+ -DWITH_STL=CXX17 \
+ -DBUILD_TESTING=OFF \
+ -DOPENTELEMETRY_INSTALL=ON \
+ -DOPENTELEMETRY_ABI_VERSION_NO=2 \
+ -S . -B cmake-out -GNinja && \
+ cmake --build cmake-out --target install && \
+ ldconfig && cd /var/tmp && rm -fr build
+
+WORKDIR /var/tmp/build/grpc
+RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.76.0.tar.gz | \
+ tar -xzf - --strip-components=1 && \
+ cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_CXX_STANDARD=17 \
+ -DBUILD_SHARED_LIBS=ON \
+ -DgRPC_INSTALL=ON \
+ -DgRPC_BUILD_TESTS=OFF \
+ -DgRPC_ABSL_PROVIDER=package \
+ -DgRPC_CARES_PROVIDER=package \
+ -DgRPC_PROTOBUF_PROVIDER=package \
+ -DgRPC_RE2_PROVIDER=package \
+ -DgRPC_SSL_PROVIDER=package \
+ -DgRPC_ZLIB_PROVIDER=package \
+ -DgRPC_OPENTELEMETRY_PROVIDER=package \
+ -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=ON \
+ -S . -B cmake-out -GNinja && \
+ cmake --build cmake-out --target install && \
+ ldconfig && \
+ cd /var/tmp && rm -fr build
+
+# Install the Cloud SDK and some of the emulators. We use the emulators to run
+# integration tests for the client libraries.
+COPY . /var/tmp/ci
+WORKDIR /var/tmp/downloads
+RUN /var/tmp/ci/install-cloud-sdk.sh
+ENV CLOUD_SDK_LOCATION=/usr/local/google-cloud-sdk
+ENV PATH=${CLOUD_SDK_LOCATION}/bin:${PATH}
+
+WORKDIR /var/tmp/sccache
+RUN curl -fsSL https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-x86_64-unknown-linux-musl.tar.gz | \
+ tar -zxf - --strip-components=1 && \
+ mkdir -p /usr/local/bin && \
+ mv sccache /usr/local/bin/sccache && \
+ chmod +x /usr/local/bin/sccache
+
+# Update the ld.conf cache in case any libraries were installed in /usr/local/lib*
+RUN ldconfig /usr/local/lib*
diff --git a/ci/cloudbuild/dockerfiles/ubuntu-22.04.Dockerfile b/ci/cloudbuild/dockerfiles/ubuntu-22.04.Dockerfile
index a0a7abf0b63c0..226536688ab2a 100644
--- a/ci/cloudbuild/dockerfiles/ubuntu-22.04.Dockerfile
+++ b/ci/cloudbuild/dockerfiles/ubuntu-22.04.Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2021 Google LLC
+# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/ci/cloudbuild/dockerfiles/ubuntu-focal.Dockerfile b/ci/cloudbuild/dockerfiles/ubuntu-focal.Dockerfile
deleted file mode 100644
index 32026618237cd..0000000000000
--- a/ci/cloudbuild/dockerfiles/ubuntu-focal.Dockerfile
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FROM ubuntu:focal
-ARG NCPU=4
-ARG ARCH=amd64
-
-ENV DEBIAN_FRONTEND=noninteractive
-RUN apt-get update && \
- apt-get --no-install-recommends install -y \
- automake \
- build-essential \
- clang \
- clang-9 \
- cmake \
- ctags \
- curl \
- gawk \
- git \
- gcc \
- g++ \
- cmake \
- libcurl4-openssl-dev \
- libssl-dev \
- libtool \
- llvm-9 \
- lsb-release \
- make \
- ninja-build \
- patch \
- pkg-config \
- python3 \
- python3-dev \
- python3-pip \
- tar \
- unzip \
- zip \
- wget \
- zlib1g-dev \
- apt-utils \
- ca-certificates \
- apt-transport-https
-
-# Install Python packages used in the integration tests.
-RUN update-alternatives --install /usr/bin/python python $(which python3) 10
-RUN pip3 install setuptools wheel
-
-# The Cloud Pub/Sub emulator needs Java :shrug:
-RUN apt update && (apt install -y openjdk-11-jre || apt install -y openjdk-9-jre)
-
-# Install the Cloud SDK and some of the emulators. We use the emulators to run
-# integration tests for the client libraries.
-COPY . /var/tmp/ci
-WORKDIR /var/tmp/downloads
-RUN /var/tmp/ci/install-cloud-sdk.sh
-ENV CLOUD_SDK_LOCATION=/usr/local/google-cloud-sdk
-ENV PATH=${CLOUD_SDK_LOCATION}/bin:${PATH}
-
-RUN curl -o /usr/bin/bazelisk -sSL "https://github.com/bazelbuild/bazelisk/releases/download/v1.27.0/bazelisk-linux-${ARCH}" && \
- chmod +x /usr/bin/bazelisk && \
- ln -s /usr/bin/bazelisk /usr/bin/bazel
diff --git a/ci/cloudbuild/triggers/clang-7-0-ci.yaml b/ci/cloudbuild/triggers/clang-14-0-ci.yaml
similarity index 89%
rename from ci/cloudbuild/triggers/clang-7-0-ci.yaml
rename to ci/cloudbuild/triggers/clang-14-0-ci.yaml
index b828c24d2a77e..1d1d25f6b079c 100644
--- a/ci/cloudbuild/triggers/clang-7-0-ci.yaml
+++ b/ci/cloudbuild/triggers/clang-14-0-ci.yaml
@@ -19,10 +19,10 @@ github:
push:
branch: prepare-for-v3.0.0
includeBuildLogs: INCLUDE_BUILD_LOGS_WITH_STATUS
-name: prepare-for-v3-0-0-clang-7-0-ci
+name: prepare-for-v3-0-0-clang-14-0-ci
substitutions:
- _BUILD_NAME: clang-7.0
- _DISTRO: ubuntu-20.04-install
+ _BUILD_NAME: clang-14.0
+ _DISTRO: ubuntu-22.04-install
_TRIGGER_TYPE: ci
tags:
- ci
diff --git a/ci/cloudbuild/triggers/clang-7-0-pr.yaml b/ci/cloudbuild/triggers/clang-14-0-pr.yaml
similarity index 90%
rename from ci/cloudbuild/triggers/clang-7-0-pr.yaml
rename to ci/cloudbuild/triggers/clang-14-0-pr.yaml
index 244cff91b4fcd..6138a054b6cd8 100644
--- a/ci/cloudbuild/triggers/clang-7-0-pr.yaml
+++ b/ci/cloudbuild/triggers/clang-14-0-pr.yaml
@@ -20,10 +20,10 @@ github:
branch: prepare-for-v3.0.0
commentControl: COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY
includeBuildLogs: INCLUDE_BUILD_LOGS_WITH_STATUS
-name: prepare-for-v3-0-0-clang-7-0-pr
+name: prepare-for-v3-0-0-clang-14-0-pr
substitutions:
- _BUILD_NAME: clang-7.0
- _DISTRO: ubuntu-20.04-install
+ _BUILD_NAME: clang-14.0
+ _DISTRO: ubuntu-22.04-install
_TRIGGER_TYPE: pr
tags:
- pr
diff --git a/ci/cloudbuild/triggers/demo-ubuntu-focal-ci.yaml b/ci/cloudbuild/triggers/demo-ubuntu-focal-ci.yaml
deleted file mode 100644
index 995d197ea7b9a..0000000000000
--- a/ci/cloudbuild/triggers/demo-ubuntu-focal-ci.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-filename: ci/cloudbuild/cloudbuild.yaml
-github:
- name: google-cloud-cpp
- owner: googleapis
- push:
- branch: prepare-for-v3.0.0
-includeBuildLogs: INCLUDE_BUILD_LOGS_WITH_STATUS
-name: prepare-for-v3-0-0-demo-ubuntu-focal-ci
-substitutions:
- _BUILD_NAME: demo-install
- _DISTRO: demo-ubuntu-focal
- _TRIGGER_TYPE: ci
-tags:
-- ci
diff --git a/ci/cloudbuild/triggers/demo-ubuntu-focal-pr.yaml b/ci/cloudbuild/triggers/demo-ubuntu-focal-pr.yaml
deleted file mode 100644
index e63f7d7ed29ad..0000000000000
--- a/ci/cloudbuild/triggers/demo-ubuntu-focal-pr.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-filename: ci/cloudbuild/cloudbuild.yaml
-github:
- name: google-cloud-cpp
- owner: googleapis
- pullRequest:
- branch: prepare-for-v3.0.0
- commentControl: COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY
-includeBuildLogs: INCLUDE_BUILD_LOGS_WITH_STATUS
-name: prepare-for-v3-0-0-demo-ubuntu-focal-pr
-substitutions:
- _BUILD_NAME: demo-install
- _DISTRO: demo-ubuntu-focal
- _TRIGGER_TYPE: pr
-tags:
-- pr
diff --git a/ci/cloudbuild/triggers/quickstart-cmake-ci.yaml b/ci/cloudbuild/triggers/quickstart-cmake-ci.yaml
index dffe86ebb5886..4511be26aab4a 100644
--- a/ci/cloudbuild/triggers/quickstart-cmake-ci.yaml
+++ b/ci/cloudbuild/triggers/quickstart-cmake-ci.yaml
@@ -22,7 +22,7 @@ includeBuildLogs: INCLUDE_BUILD_LOGS_WITH_STATUS
name: prepare-for-v3-0-0-quickstart-cmake-ci
substitutions:
_BUILD_NAME: quickstart-cmake
- _DISTRO: ubuntu-focal
+ _DISTRO: ubuntu-22.04
_TRIGGER_TYPE: ci
tags:
- ci
diff --git a/ci/cloudbuild/triggers/quickstart-cmake-pr.yaml b/ci/cloudbuild/triggers/quickstart-cmake-pr.yaml
index 6284043f383b0..12ddfe0634431 100644
--- a/ci/cloudbuild/triggers/quickstart-cmake-pr.yaml
+++ b/ci/cloudbuild/triggers/quickstart-cmake-pr.yaml
@@ -23,7 +23,7 @@ includeBuildLogs: INCLUDE_BUILD_LOGS_WITH_STATUS
name: prepare-for-v3-0-0-quickstart-cmake-pr
substitutions:
_BUILD_NAME: quickstart-cmake
- _DISTRO: ubuntu-focal
+ _DISTRO: ubuntu-22.04
_TRIGGER_TYPE: pr
tags:
- pr
diff --git a/ci/generate-markdown/generate-packaging.sh b/ci/generate-markdown/generate-packaging.sh
index 634ab67318ae8..17a4ce101abd4 100755
--- a/ci/generate-markdown/generate-packaging.sh
+++ b/ci/generate-markdown/generate-packaging.sh
@@ -37,7 +37,6 @@ file="doc/packaging.md"
"demo-opensuse-leap.Dockerfile,openSUSE (Leap)"
"demo-ubuntu-24.04.Dockerfile,Ubuntu (24.04 LTS - Noble Numbat)"
"demo-ubuntu-jammy.Dockerfile,Ubuntu (22.04 LTS - Jammy Jellyfish)"
- "demo-ubuntu-focal.Dockerfile,Ubuntu (20.04 LTS - Focal Fossa)"
"demo-debian-bookworm.Dockerfile,Debian (12 - Bookworm)"
"demo-debian-bullseye.Dockerfile,Debian (11 - Bullseye)"
"demo-rockylinux-9.Dockerfile,Rocky Linux (9)"
diff --git a/doc/packaging.md b/doc/packaging.md
index 78d9a35c50c3b..3b11c5c6f4612 100644
--- a/doc/packaging.md
+++ b/doc/packaging.md
@@ -674,173 +674,6 @@ cmake --build cmake-out --target install
-
-Ubuntu (20.04 LTS - Focal Fossa)
-
-
-Install the minimal development tools, libcurl, OpenSSL and libc-ares:
-
-```bash
-export DEBIAN_FRONTEND=noninteractive
-sudo apt-get update && \
-sudo apt-get --no-install-recommends install -y apt-transport-https apt-utils \
- automake build-essential cmake ca-certificates curl git \
- gcc g++ libc-ares-dev libc-ares2 libcurl4-openssl-dev \
- libssl-dev m4 make pkg-config tar wget zlib1g-dev
-```
-
-#### Abseil
-
-```bash
-mkdir -p $HOME/Downloads/abseil-cpp && cd $HOME/Downloads/abseil-cpp
-curl -fsSL https://github.com/abseil/abseil-cpp/archive/20250814.1.tar.gz | \
- tar -xzf - --strip-components=1 && \
- cmake \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_CXX_STANDARD=17 \
- -DABSL_BUILD_TESTING=OFF \
- -DBUILD_SHARED_LIBS=yes \
- -S . -B cmake-out && \
- cmake --build cmake-out -- -j ${NCPU:-4} && \
-sudo cmake --build cmake-out --target install -- -j ${NCPU:-4} && \
-sudo ldconfig
-```
-
-#### Protobuf
-
-We need to install a version of Protobuf that is recent enough to support the
-Google Cloud Platform proto files:
-
-```bash
-mkdir -p $HOME/Downloads/protobuf && cd $HOME/Downloads/protobuf
-curl -fsSL https://github.com/protocolbuffers/protobuf/archive/v31.1.tar.gz | \
- tar -xzf - --strip-components=1 && \
- cmake \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_CXX_STANDARD=17 \
- -DBUILD_SHARED_LIBS=yes \
- -Dprotobuf_BUILD_TESTS=OFF \
- -Dprotobuf_ABSL_PROVIDER=package \
- -S . -B cmake-out && \
- cmake --build cmake-out -- -j ${NCPU:-4} && \
-sudo cmake --build cmake-out --target install -- -j ${NCPU:-4} && \
-sudo ldconfig
-```
-
-#### RE2
-
-The version of RE2 included with this distro hard-codes C++11 in its pkg-config
-file. You can skip this build and use the system's package if you are not
-planning to use pkg-config.
-
-```bash
-mkdir -p $HOME/Downloads/re2 && cd $HOME/Downloads/re2
-curl -fsSL https://github.com/google/re2/archive/2025-07-22.tar.gz | \
- tar -xzf - --strip-components=1 && \
- cmake -DCMAKE_BUILD_TYPE=Release \
- -DBUILD_SHARED_LIBS=ON \
- -DRE2_BUILD_TESTING=OFF \
- -S . -B cmake-out && \
- cmake --build cmake-out -- -j ${NCPU:-4} && \
-sudo cmake --build cmake-out --target install -- -j ${NCPU:-4} && \
-sudo ldconfig
-```
-
-#### gRPC
-
-We also need a version of gRPC that is recent enough to support the Google Cloud
-Platform proto files. We install it using:
-
-```bash
-mkdir -p $HOME/Downloads/grpc && cd $HOME/Downloads/grpc
-curl -fsSL https://github.com/grpc/grpc/archive/v1.74.1.tar.gz | \
- tar -xzf - --strip-components=1 && \
- cmake \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_CXX_STANDARD=17 \
- -DBUILD_SHARED_LIBS=yes \
- -DgRPC_INSTALL=ON \
- -DgRPC_BUILD_TESTS=OFF \
- -DgRPC_ABSL_PROVIDER=package \
- -DgRPC_CARES_PROVIDER=package \
- -DgRPC_PROTOBUF_PROVIDER=package \
- -DgRPC_RE2_PROVIDER=package \
- -DgRPC_SSL_PROVIDER=package \
- -DgRPC_ZLIB_PROVIDER=package \
- -S . -B cmake-out && \
- cmake --build cmake-out -- -j ${NCPU:-4} && \
-sudo cmake --build cmake-out --target install -- -j ${NCPU:-4} && \
-sudo ldconfig
-```
-
-#### nlohmann_json library
-
-The project depends on the nlohmann_json library. We use CMake to install it as
-this installs the necessary CMake configuration files. Note that this is a
-header-only library, and often installed manually. This leaves your environment
-without support for CMake pkg-config.
-
-```bash
-mkdir -p $HOME/Downloads/json && cd $HOME/Downloads/json
-curl -fsSL https://github.com/nlohmann/json/archive/v3.11.3.tar.gz | \
- tar -xzf - --strip-components=1 && \
- cmake \
- -DCMAKE_BUILD_TYPE=Release \
- -DBUILD_SHARED_LIBS=yes \
- -DBUILD_TESTING=OFF \
- -DJSON_BuildTests=OFF \
- -S . -B cmake-out && \
-sudo cmake --build cmake-out --target install -- -j ${NCPU:-4} && \
-sudo ldconfig
-```
-
-#### opentelemetry-cpp
-
-The project has an **optional** dependency on the OpenTelemetry library. We
-recommend installing this library because:
-
-- the dependency will become required in the google-cloud-cpp v3.x series.
-- it is needed to produce distributed traces of the library.
-
-```bash
-mkdir -p $HOME/Downloads/opentelemetry-cpp && cd $HOME/Downloads/opentelemetry-cpp
-curl -fsSL https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.24.0.tar.gz | \
- tar -xzf - --strip-components=1 && \
- cmake \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_CXX_STANDARD=17 \
- -DBUILD_SHARED_LIBS=yes \
- -DWITH_EXAMPLES=OFF \
- -DWITH_STL=CXX17 \
- -DBUILD_TESTING=OFF \
- -DOPENTELEMETRY_INSTALL=ON \
- -DOPENTELEMETRY_ABI_VERSION_NO=2 \
- -S . -B cmake-out && \
-sudo cmake --build cmake-out --target install -- -j ${NCPU:-4} && \
-sudo ldconfig
-```
-
-#### Compile and install the main project
-
-We can now compile and install `google-cloud-cpp`:
-
-```bash
-# Pick a location to install the artifacts, e.g., `/usr/local` or `/opt`
-PREFIX="${HOME}/google-cloud-cpp-installed"
-cmake -S . -B cmake-out \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_CXX_STANDARD=17 \
- -DCMAKE_INSTALL_PREFIX="${PREFIX}" \
- -DBUILD_TESTING=OFF \
- -DGOOGLE_CLOUD_CPP_WITH_MOCKS=OFF \
- -DGOOGLE_CLOUD_CPP_ENABLE_EXAMPLES=OFF \
- -DGOOGLE_CLOUD_CPP_ENABLE=__ga_libraries__,opentelemetry
-cmake --build cmake-out -- -j "$(nproc)"
-cmake --build cmake-out --target install
-```
-
-
-
Debian (12 - Bookworm)