@@ -67,15 +67,20 @@ RUN curl -fsSL https://distfiles.ariadne.space/pkgconf/pkgconf-2.2.0.tar.gz | \
6767# set the search path.
6868ENV PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib64/pkgconfig
6969
70+ # In order to work around https://github.com/llvm/llvm-project/issues/102443 we set
71+ # these compiler env vars so that all our dependencies are built the same way.
72+ ENV CC="clang"
73+ ENV CXX="clang++"
74+ ENV CXXFLAGS="-fclang-abi-compat=17"
75+
7076# We disable the inline namespace because otherwise Abseil LTS updates break our
7177# `check-api` build.
7278WORKDIR /var/tmp/build
7379RUN curl -fsSL https://github.com/abseil/abseil-cpp/archive/20240722.0.tar.gz | \
7480 tar -xzf - --strip-components=1 && \
75- sed -i 's/^#define ABSL_OPTION_USE_\( .*\) 2/#define ABSL_OPTION_USE_\1 0/' "absl/base/options.h" && \
76- sed -i 's/^#define ABSL_OPTION_USE_INLINE_NAMESPACE 1$/#define ABSL_OPTION_USE_INLINE_NAMESPACE 0/' "absl/base/options.h" && \
7781 cmake \
7882 -DCMAKE_BUILD_TYPE="Release" \
83+ -DCMAKE_CXX_STANDARD=17 \
7984 -DABSL_BUILD_TESTING=OFF \
8085 -DBUILD_SHARED_LIBS=yes \
8186 -GNinja -S . -B cmake-out && \
@@ -129,10 +134,11 @@ RUN curl -fsSL https://github.com/nlohmann/json/archive/v3.11.3.tar.gz | \
129134 ldconfig && cd /var/tmp && rm -fr build
130135
131136WORKDIR /var/tmp/build/protobuf
132- RUN curl -fsSL https://github.com/protocolbuffers/protobuf/archive/v29.0 .tar.gz | \
137+ RUN curl -fsSL https://github.com/protocolbuffers/protobuf/archive/v29.3 .tar.gz | \
133138 tar -xzf - --strip-components=1 && \
134139 cmake \
135140 -DCMAKE_BUILD_TYPE=Release \
141+ -DCMAKE_CXX_STANDARD=17 \
136142 -DBUILD_SHARED_LIBS=yes \
137143 -Dprotobuf_BUILD_TESTS=OFF \
138144 -Dprotobuf_ABSL_PROVIDER=package \
@@ -144,7 +150,7 @@ WORKDIR /var/tmp/build/
144150RUN curl -fsSL https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.18.0.tar.gz | \
145151 tar -xzf - --strip-components=1 && \
146152 cmake \
147- -DCMAKE_CXX_STANDARD=14 \
153+ -DCMAKE_CXX_STANDARD=17 \
148154 -DCMAKE_BUILD_TYPE=Release \
149155 -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE \
150156 -DBUILD_SHARED_LIBS=ON \
@@ -159,10 +165,11 @@ RUN curl -fsSL https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.18
159165
160166WORKDIR /var/tmp/build/grpc
161167RUN dnf makecache && dnf install -y c-ares-devel re2-devel
162- RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.67 .0.tar.gz | \
168+ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.69 .0.tar.gz | \
163169 tar -xzf - --strip-components=1 && \
164170 cmake \
165171 -DCMAKE_BUILD_TYPE=Release \
172+ -DCMAKE_CXX_STANDARD=17 \
166173 -DBUILD_SHARED_LIBS=ON \
167174 -DgRPC_INSTALL=ON \
168175 -DgRPC_BUILD_TESTS=OFF \
@@ -184,10 +191,12 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.67.0.tar.gz | \
184191# files.
185192ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:${LD_LIBRARY_PATH}
186193WORKDIR /var/tmp/build/google-cloud-cpp
187- RUN curl -fsSL https://github.com/googleapis/google-cloud-cpp/archive/v2.31 .0.tar.gz | \
194+ RUN curl -fsSL https://github.com/googleapis/google-cloud-cpp/archive/v2.33 .0.tar.gz | \
188195 tar -xzf - --strip-components=1 && \
189196 cmake \
190197 -DCMAKE_BUILD_TYPE=Release \
198+ -DCMAKE_CXX_STANDARD=17 \
199+ -DGOOGLE_CLOUD_CPP_ENABLE_CLANG_ABI_COMPAT_17=ON \
191200 -DBUILD_SHARED_LIBS=yes \
192201 -DGOOGLE_CLOUD_CPP_ENABLE="bigquerycontrol,bigquery" \
193202 -GNinja -S . -B cmake-out && \
@@ -198,6 +207,7 @@ WORKDIR /var/tmp/build/arrow
198207RUN curl -fsSL https://github.com/apache/arrow/archive/apache-arrow-18.1.0.tar.gz | \
199208 tar -xzf - --strip-components=1 && \
200209 cmake \
210+ -DCMAKE_CXX_STANDARD=17 \
201211 -GNinja -S cpp -B cmake-out \
202212 --preset ninja-release-minimal \
203213 -DARROW_BUILD_STATIC=ON && \
0 commit comments