Skip to content

Commit 90ebb59

Browse files
authored
Merge pull request bemanproject#76 from neatudarius/enable_more_compilers
Add more compiler support
2 parents 9847480 + df0b9d2 commit 90ebb59

File tree

3 files changed

+112
-4
lines changed

3 files changed

+112
-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: 102 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",
@@ -58,6 +72,13 @@
5872
"displayName": "Clang 17",
5973
"description": "Build with Clang 17 compilers",
6074
"toolchainFile": "${sourceDir}/etc/clang-17-toolchain.cmake"
75+
},
76+
{
77+
"name": "clang-16",
78+
"inherits": "common",
79+
"displayName": "Clang 16",
80+
"description": "Build with Clang 16 compilers",
81+
"toolchainFile": "${sourceDir}/etc/clang-16-toolchain.cmake"
6182
}
6283
],
6384
"buildPresets": [
@@ -81,6 +102,16 @@
81102
"inherits": "common",
82103
"configurePreset": "gcc-13"
83104
},
105+
{
106+
"name": "gcc-12",
107+
"inherits": "common",
108+
"configurePreset": "gcc-12"
109+
},
110+
{
111+
"name": "clang-20",
112+
"inherits": "common",
113+
"configurePreset": "clang-20"
114+
},
84115
{
85116
"name": "clang-19",
86117
"inherits": "common",
@@ -95,6 +126,11 @@
95126
"name": "clang-17",
96127
"inherits": "common",
97128
"configurePreset": "clang-17"
129+
},
130+
{
131+
"name": "clang-16",
132+
"inherits": "common",
133+
"configurePreset": "clang-16"
98134
}
99135
],
100136
"testPresets": [
@@ -125,6 +161,16 @@
125161
"inherits": "common",
126162
"configurePreset": "gcc-13"
127163
},
164+
{
165+
"name": "gcc-12",
166+
"inherits": "common",
167+
"configurePreset": "gcc-12"
168+
},
169+
{
170+
"name": "clang-20",
171+
"inherits": "common",
172+
"configurePreset": "clang-20"
173+
},
128174
{
129175
"name": "clang-19",
130176
"inherits": "common",
@@ -139,6 +185,11 @@
139185
"name": "clang-17",
140186
"inherits": "common",
141187
"configurePreset": "clang-17"
188+
},
189+
{
190+
"name": "clang-16",
191+
"inherits": "common",
192+
"configurePreset": "clang-16"
142193
}
143194
],
144195
"workflowPresets": [
@@ -193,6 +244,40 @@
193244
}
194245
]
195246
},
247+
{
248+
"name": "gcc-12",
249+
"steps": [
250+
{
251+
"type": "configure",
252+
"name": "gcc-12"
253+
},
254+
{
255+
"type": "build",
256+
"name": "gcc-12"
257+
},
258+
{
259+
"type": "test",
260+
"name": "gcc-12"
261+
}
262+
]
263+
},
264+
{
265+
"name": "clang-20",
266+
"steps": [
267+
{
268+
"type": "configure",
269+
"name": "clang-20"
270+
},
271+
{
272+
"type": "build",
273+
"name": "clang-20"
274+
},
275+
{
276+
"type": "test",
277+
"name": "clang-20"
278+
}
279+
]
280+
},
196281
{
197282
"name": "clang-19",
198283
"steps": [
@@ -243,6 +328,23 @@
243328
"name": "clang-17"
244329
}
245330
]
331+
},
332+
{
333+
"name": "clang-16",
334+
"steps": [
335+
{
336+
"type": "configure",
337+
"name": "clang-16"
338+
},
339+
{
340+
"type": "build",
341+
"name": "clang-16"
342+
},
343+
{
344+
"type": "test",
345+
"name": "clang-16"
346+
}
347+
]
246348
}
247349
]
248350
}

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)