2222 strategy :
2323 fail-fast : true
2424 matrix :
25- os : [ubuntu-latest, windows-2022]
26- python_version : ["3.9", "3.10", "3.11", "3.12"]
25+ os :
26+ - ubuntu-latest # x64
27+ - ubuntu-24.04-arm # ARM
28+ - macos-15-intel # x64
29+ - macos-latest # ARM
30+ - windows-latest # x64
31+ python_version : ["3.10", "3.11", "3.12", "3.13", "3.14"]
32+ cc : [''] # default: gcc on Linux; clang on Mac/Windows
33+ include :
34+ # Note: default compiler for Linux is gcc. cibuildwheel uses gcc.
35+ # FIXME: clang crashes on ARM Linux
36+ - os : ubuntu-latest
37+ python_version : " 3.10"
38+ cc : clang
39+ - os : ubuntu-latest
40+ python_version : " 3.14"
41+ cc : clang
42+
2743 runs-on : ${{ matrix.os }}
2844
2945 steps :
3450 uses : actions/setup-python@v6
3551 with :
3652 python-version : ${{ matrix.python_version }}
37- architecture : x64
3853
3954 # Install LLVM 18 on Windows
4055 - name : Install LLVM 18 on Windows
5267 run : |
5368 dir "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build" /b
5469
55- set "PATH=C:\\Program Files\\LLVM\\bin;%PATH%"
56- set "AR=llvm-ar"
57- set "AS=llvm-as"
58- set "CC=clang"
59- set "RANLIB=echo"
60- call "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64
61- clang --version
62- python -m build --wheel
63- shell : cmd
64- - name : Build wheel (Windows)
65- if : startsWith(matrix.os, 'windows')
66- run : |
6770 set "PATH=C:\Program Files\LLVM\bin;%PATH%"
6871 set "AR=llvm-ar"
6972 set "AS=llvm-as"
@@ -76,42 +79,22 @@ jobs:
7679
7780 - name : Build wheel (Mac)
7881 if : startsWith(matrix.os, 'macos')
79- run : |
80- python -m build --wheel
81-
82- - name : Build wheel (Linux / clang)
83- if : startsWith(matrix.os, 'ubuntu') && matrix.python_version == '3.6'
8482 run : |
8583 clang --version
86- CC=clang python -m build --wheel
84+ python -m build --wheel
8785
88- - name : Build wheel (Linux / gcc-9 )
89- if : startsWith(matrix.os, 'ubuntu') && ( matrix.python_version == '3.7' || matrix.python_version == '3.8')
86+ - name : Build wheel (Linux / gcc)
87+ if : startsWith(matrix.os, 'ubuntu') && matrix.cc == ''
9088 run : |
91- sudo apt update
92- sudo apt install gcc-9
93- gcc-9 --version
94- CC=gcc-9 python -m build --wheel
89+ gcc --version
90+ python -m build --wheel
9591
96- - name : Build wheel (Linux / gcc-10)
97- if : startsWith(matrix.os, 'ubuntu') && matrix.python_version == '3.9'
98- run : |
99- sudo apt update
100- sudo apt install gcc-10
101- gcc-10 --version
102- CC=gcc-10 python -m build --wheel
103- - name : Build wheel (Linux / clang-13)
104- if : startsWith(matrix.os, 'ubuntu') && matrix.python_version == '3.10'
92+ - name : Build wheel (Linux / clang)
93+ if : startsWith(matrix.os, 'ubuntu') && matrix.cc == 'clang'
10594 run : |
10695 clang --version
10796 CC=clang python -m build --wheel
10897
109- - name : Build wheel (Linux / gcc)
110- if : startsWith(matrix.os, 'ubuntu') && (matrix.python_version == '3.11' || matrix.python_version == '3.12')
111- run : |
112- gcc --version
113- CC=gcc python -m build --wheel
114-
11598 # TODO: install mypy from requirements if reenabled
11699 - name : Run mypy
117100 shell : bash
0 commit comments