Skip to content

Commit 69cfc74

Browse files
committed
GH-45885: [C++] Require C++20
1 parent 2a3c5db commit 69cfc74

File tree

50 files changed

+262
-139
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+262
-139
lines changed

.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ FEDORA=42
5757
UBUNTU=22.04
5858

5959
# Default versions for various dependencies
60-
CLANG_TOOLS=14
60+
CLANG_TOOLS=18
6161
CMAKE=3.26.0
6262
CUDA=11.7.1
6363
DASK=latest

.github/workflows/cpp.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,24 +81,24 @@ jobs:
8181
matrix:
8282
include:
8383
- arch: amd64
84-
clang-tools: 14
84+
clang-tools: 18
8585
image: conda-cpp
86-
llvm: 14
86+
llvm: 18
8787
runs-on: ubuntu-latest
8888
simd-level: AVX2
8989
title: AMD64 Conda C++ AVX2
9090
ubuntu: 22.04
9191
- arch: amd64
92-
clang-tools: 14
92+
clang-tools: 18
9393
image: ubuntu-cpp-sanitizer
94-
llvm: 14
94+
llvm: 18
9595
runs-on: ubuntu-latest
9696
title: AMD64 Ubuntu 24.04 C++ ASAN UBSAN
9797
ubuntu: 24.04
9898
- arch: arm64v8
99-
clang-tools: 14
99+
clang-tools: 18
100100
image: ubuntu-cpp
101-
llvm: 14
101+
llvm: 18
102102
runs-on: ubuntu-24.04-arm
103103
title: ARM64 Ubuntu 22.04 C++
104104
ubuntu: 22.04

.github/workflows/cpp_windows.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
ARROW_WITH_ZLIB: ON
6464
ARROW_WITH_ZSTD: ON
6565
BOOST_SOURCE: BUNDLED
66-
CMAKE_CXX_STANDARD: "17"
66+
CMAKE_CXX_STANDARD: "20"
6767
CMAKE_GENERATOR: Ninja
6868
CMAKE_INSTALL_PREFIX: /usr
6969
CMAKE_UNITY_BUILD: ON

.github/workflows/r.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,12 +229,13 @@ jobs:
229229
# static library. The R is not used here but R 4.1 was the last R to use
230230
# Rtools40.
231231
r-version: "4.1"
232-
rtools-version: 40
232+
rtools-version: ${{ matrix.config.rtools }}
233233
Ncpus: 2
234234
- name: Build Arrow C++
235235
shell: bash
236236
env:
237237
MINGW_ARCH: ${{ matrix.config.arch }}
238+
RTOOLS_VERSION: ${{ matrix.config.rtools }}
238239
run: ci/scripts/r_windows_build.sh
239240
- name: Rename libarrow.zip
240241
# So that they're unique when multiple are downloaded in the next step

.github/workflows/ruby.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ jobs:
349349
ARROW_WITH_SNAPPY: ON
350350
ARROW_WITH_ZLIB: ON
351351
ARROW_WITH_ZSTD: ON
352-
CMAKE_CXX_STANDARD: "17"
352+
CMAKE_CXX_STANDARD: "20"
353353
CMAKE_GENERATOR: Ninja
354354
CMAKE_INSTALL_PREFIX: "${{ github.workspace }}/dist"
355355
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'

c_glib/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ project(
2121
'arrow-glib',
2222
'c',
2323
'cpp',
24-
default_options: ['c_std=c99', 'cpp_std=c++17'],
24+
default_options: ['c_std=c99', 'cpp_std=c++20'],
2525
license: 'Apache-2.0',
2626
# Debian:
2727
# https://packages.debian.org/search?keywords=meson

ci/docker/centos-7-cpp.dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ RUN sed -i \
2525
-e 's/mirror\.centos\.org/vault.centos.org/' \
2626
/etc/yum.repos.d/*.repo
2727

28-
# devtoolset is required for C++17
28+
# devtoolset is required for C++20
2929
RUN \
3030
yum install -y \
3131
centos-release-scl \
@@ -38,7 +38,8 @@ RUN \
3838
/etc/yum.repos.d/CentOS-SCLo-scl*.repo && \
3939
yum install -y \
4040
curl \
41-
devtoolset-8 \
41+
devtoolset-11-gcc-c++ \
42+
devtoolset-11-make \
4243
diffutils \
4344
gcc-c++ \
4445
libcurl-devel \

ci/scripts/cpp_build.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ elif [ "${ARROW_EMSCRIPTEN:-OFF}" = "ON" ]; then
168168
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE:-OFF} \
169169
-DCMAKE_C_FLAGS="${CFLAGS:-}" \
170170
-DCMAKE_CXX_FLAGS="${CXXFLAGS:-}" \
171-
-DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-17}" \
171+
-DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-20}" \
172172
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \
173173
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \
174174
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \
@@ -260,7 +260,7 @@ else
260260
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE:-OFF} \
261261
-DCMAKE_C_FLAGS="${CFLAGS:-}" \
262262
-DCMAKE_CXX_FLAGS="${CXXFLAGS:-}" \
263-
-DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-17}" \
263+
-DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-20}" \
264264
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \
265265
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \
266266
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \

ci/scripts/install_sccache.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,17 @@
1919

2020
set -e
2121

22+
DEFAULT_VERSION=0.12.0
23+
2224
if [ "$#" -lt 2 ] || [ "$#" -gt 3 ]; then
2325
echo "Usage: $0 <build> <prefix> <version>"
24-
echo "Will default to version=0.3.0 "
26+
echo "Will default to version=${DEFAULT_VERSION}"
2527
exit 1
2628
fi
2729

2830
BUILD=$1
2931
PREFIX=$2
30-
VERSION=${3:-0.3.0}
32+
VERSION=${3:-${DEFAULT_VERSION}}
3133
ARCH=$(uname -m)
3234

3335
if [ "${ARCH}" != x86_64 ] && [ "${ARCH}" != aarch64 ]; then

ci/scripts/r_windows_build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ mv mingw* build
4444
cd build
4545

4646
# This may vary by system/CI provider
47-
MSYS_LIB_DIR="/c/rtools40"
47+
MSYS_LIB_DIR="/c/rtools${RTOOLS_VERSION}"
4848

4949
# Untar the builds we made
5050
ls *.xz | xargs -n 1 tar -xJf

0 commit comments

Comments
 (0)