1010 # Important to pin the clang version, cause we also use it for linting
1111 CLANG_VERSION : 17
1212 CLANG_TIDY_JOBS : 4
13- # Since we use rather new c++ features, we need a rather new version of MinGW
14- # LLVM MinGW seems to be the newest prebuilt binaries around
15- LLVM_MINGW_VERSION : llvm-mingw-20230919-msvcrt-ubuntu-20.04-x86_64
16- LLVM_MINGW_DOWNLOAD : https://github.com/mstorsjo/llvm-mingw/releases/download/20230919/llvm-mingw-20230919-msvcrt-ubuntu-20.04-x86_64.tar.xz
13+ # LLVM MinGW download
14+ LLVM_MINGW_VERSION : llvm-mingw-20231128-msvcrt-ubuntu-20.04-x86_64
15+ LLVM_MINGW_DOWNLOAD : https://github.com/mstorsjo/llvm-mingw/releases/download/20231128/llvm-mingw-20231128-msvcrt-ubuntu-20.04-x86_64.tar.xz
1716 # xwin settings
18- XWIN_VERSION : xwin-0.3.1 -x86_64-unknown-linux-musl
19- XWIN_DOWNLOAD : https://github.com/Jake-Shadle/xwin/releases/download/0.3.1 /xwin-0.3.1 -x86_64-unknown-linux-musl.tar.gz
17+ XWIN_VERSION : xwin-0.5.0 -x86_64-unknown-linux-musl
18+ XWIN_DOWNLOAD : https://github.com/Jake-Shadle/xwin/releases/download/0.5.0 /xwin-0.5.0 -x86_64-unknown-linux-musl.tar.gz
2019
2120jobs :
2221 cache-clang :
@@ -55,15 +54,15 @@ jobs:
5554
5655 steps :
5756 - name : Restore Clang Cache
58- if : contains (matrix.preset, 'clang')
57+ if : startswith (matrix.preset, 'clang')
5958 uses : actions/cache/restore@v3
6059 with :
6160 path : C:\Program Files\LLVM
6261 key : ${{ runner.os }}-clang-${{ env.CLANG_VERSION }}
6362 fail-on-cache-miss : true
6463
6564 - name : Add MSVC to PATH
66- if : contains (matrix.preset, 'msvc')
65+ if : startswith (matrix.preset, 'msvc')
6766 uses : TheMrMilchmann/setup-msvc-dev@v2
6867 with :
6968 arch : ${{ fromJSON('["x86", "x64"]')[contains(matrix.preset, 'x64')] }}
@@ -97,10 +96,12 @@ jobs:
9796 fail-fast : false
9897 matrix :
9998 preset : [
100- " mingw-x86-release" ,
101- " mingw-x64-release" ,
10299 " clang-cross-x86-release" ,
103100 " clang-cross-x64-release" ,
101+ " llvm-mingw-x86-release" ,
102+ " llvm-mingw-x64-release" ,
103+ " mingw-x86-release" ,
104+ " mingw-x64-release" ,
104105 ]
105106
106107 steps :
@@ -111,7 +112,7 @@ jobs:
111112 # Caching would also lose the +x - so we'd have to tar before caching/untar after, making it
112113 # even slower
113114 - name : Setup Clang
114- if : contains (matrix.preset, 'clang')
115+ if : startswith (matrix.preset, 'clang')
115116 run : |
116117 wget https://apt.llvm.org/llvm.sh
117118 chmod +x llvm.sh
@@ -133,13 +134,19 @@ jobs:
133134 /usr/bin/llvm-rc-${{ env.CLANG_VERSION }} \
134135 200
135136
136- - name : Setup MinGW
137- if : contains (matrix.preset, 'mingw')
137+ - name : Setup LLVM MinGW
138+ if : startswith (matrix.preset, 'llvm- mingw')
138139 run : |
139140 wget -nv ${{ env.LLVM_MINGW_DOWNLOAD }}
140141 tar -xf ${{ env.LLVM_MINGW_VERSION }}.tar.xz -C ~/
141142 echo $(readlink -f ~/${{ env.LLVM_MINGW_VERSION }}/bin) >> $GITHUB_PATH
142143
144+ - name : Set up MinGW
145+ if : startswith(matrix.preset, 'mingw')
146+ uses : egor-tensin/setup-mingw@v2
147+ with :
148+ platform : ${{ fromJSON('["x86", "x64"]')[contains(matrix.preset, 'x64')] }}
149+
143150 # xwin does take long enough that caching's worth it
144151 - name : Restore xwin cache
145152 if : contains(matrix.preset, 'cross')
@@ -223,6 +230,13 @@ jobs:
223230 working-directory : ${{ env.GITHUB_WORKSPACE }}
224231 run : cmake . --preset ${{ matrix.preset }} -DCMAKE_DISABLE_PRECOMPILE_HEADERS=On
225232
233+ - name : Remove `.modmap`s from compile commands
234+ run : |
235+ (Get-Content "out\build\${{ matrix.preset }}\compile_commands.json") `
236+ -replace "@CMakeFiles.+?\.modmap", "" `
237+ | Set-Content `
238+ -Path "out\build\${{ matrix.preset }}\compile_commands.json"
239+
226240 - name : Run clang-tidy
227241 working-directory : ${{ env.GITHUB_WORKSPACE }}
228242 run : |
0 commit comments