Skip to content

Commit b0af8f2

Browse files
committed
Enable clang-20 support
1 parent 9847480 commit b0af8f2

File tree

3 files changed

+78
-4
lines changed

3 files changed

+78
-4
lines changed

.github/workflows/ci.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ jobs:
1313
fail-fast: false
1414
matrix:
1515
config:
16-
- {name: "Ubuntu Clang 17", os: ubuntu-24.04, toolchain: "clang-17", clang_version: 17, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
17-
- {name: "Ubuntu Clang 18", os: ubuntu-24.04, toolchain: "clang-18", clang_version: 18, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
16+
- {name: "Ubuntu Clang 20", os: ubuntu-24.04, toolchain: "clang-20", clang_version: 20, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
1817
# Note: clang-19 + Asan setup causes errors on some platforms. Temporary skip some checks via .asan_options.
1918
- {name: "Ubuntu Clang 19", os: ubuntu-24.04, toolchain: "clang-19", clang_version: 19, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" ", asan_options: "new_delete_type_mismatch=0"}
20-
- {name: "Ubuntu GCC 12", os: ubuntu-24.04, toolchain: "gcc-12", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
21-
- {name: "Ubuntu GCC 13", os: ubuntu-24.04, toolchain: "gcc-13", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
19+
- {name: "Ubuntu Clang 18", os: ubuntu-24.04, toolchain: "clang-18", clang_version: 18, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
20+
- {name: "Ubuntu Clang 17", os: ubuntu-24.04, toolchain: "clang-17", clang_version: 17, installed_clang_version: 17, cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
2221
- {name: "Ubuntu GCC 14", os: ubuntu-24.04, toolchain: "gcc-14", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
22+
- {name: "Ubuntu GCC 13", os: ubuntu-24.04, toolchain: "gcc-13", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
23+
- {name: "Ubuntu GCC 12", os: ubuntu-24.04, toolchain: "gcc-12", cmake_args: "-G \"Ninja Multi-Config\" -DCMAKE_CONFIGURATION_TYPES=\"RelWithDebInfo;Asan\" "}
2324
steps:
2425
- uses: actions/checkout@v3
2526
with:

CMakePresets.json

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,20 @@
3838
"description": "Build with GCC 13 compilers",
3939
"toolchainFile": "${sourceDir}/etc/gcc-13-toolchain.cmake"
4040
},
41+
{
42+
"name": "gcc-12",
43+
"inherits": "common",
44+
"displayName": "GCC 12",
45+
"description": "Build with GCC 12 compilers",
46+
"toolchainFile": "${sourceDir}/etc/gcc-12-toolchain.cmake"
47+
},
48+
{
49+
"name": "clang-20",
50+
"inherits": "common",
51+
"displayName": "Clang 20",
52+
"description": "Build with Clang 20 compilers",
53+
"toolchainFile": "${sourceDir}/etc/clang-20-toolchain.cmake"
54+
},
4155
{
4256
"name": "clang-19",
4357
"inherits": "common",
@@ -81,6 +95,16 @@
8195
"inherits": "common",
8296
"configurePreset": "gcc-13"
8397
},
98+
{
99+
"name": "gcc-12",
100+
"inherits": "common",
101+
"configurePreset": "gcc-12"
102+
},
103+
{
104+
"name": "clang-20",
105+
"inherits": "common",
106+
"configurePreset": "clang-20"
107+
},
84108
{
85109
"name": "clang-19",
86110
"inherits": "common",
@@ -125,6 +149,16 @@
125149
"inherits": "common",
126150
"configurePreset": "gcc-13"
127151
},
152+
{
153+
"name": "gcc-12",
154+
"inherits": "common",
155+
"configurePreset": "gcc-12"
156+
},
157+
{
158+
"name": "clang-20",
159+
"inherits": "common",
160+
"configurePreset": "clang-20"
161+
},
128162
{
129163
"name": "clang-19",
130164
"inherits": "common",
@@ -193,6 +227,40 @@
193227
}
194228
]
195229
},
230+
{
231+
"name": "gcc-12",
232+
"steps": [
233+
{
234+
"type": "configure",
235+
"name": "gcc-12"
236+
},
237+
{
238+
"type": "build",
239+
"name": "gcc-12"
240+
},
241+
{
242+
"type": "test",
243+
"name": "gcc-12"
244+
}
245+
]
246+
},
247+
{
248+
"name": "clang-20",
249+
"steps": [
250+
{
251+
"type": "configure",
252+
"name": "clang-20"
253+
},
254+
{
255+
"type": "build",
256+
"name": "clang-20"
257+
},
258+
{
259+
"type": "test",
260+
"name": "clang-20"
261+
}
262+
]
263+
},
196264
{
197265
"name": "clang-19",
198266
"steps": [

etc/clang-20-toolchain.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# cmake-format: off
2+
# etc/clang-20-toolchain.cmake -*-cmake-*-
3+
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4+
# cmake-format: on
5+
16
include_guard(GLOBAL)
27

38
set(CMAKE_C_COMPILER clang-20)

0 commit comments

Comments
 (0)