3535
3636jobs :
3737 build :
38- name : ${{ matrix.type }}-build
38+ name : ${{ matrix.arch }}-${{ matrix. type }}-build
3939 runs-on : ubuntu-latest
4040 strategy :
4141 matrix :
42+ arch : [x86_64, aarch64]
4243 type : [libs-mingw, apps-mingw-vcpkg, libs-mingw-cmake]
44+ exclude :
45+ - arch : aarch64
46+ type : apps-mingw-vcpkg
47+ - arch : aarch64
48+ type : libs-mingw-cmake
4349 fail-fast : false
4450 steps :
4551 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
@@ -57,12 +63,30 @@ jobs:
5763 - name : Install dependencies
5864 run : |
5965 sudo apt-get update
60- sudo apt-get install -y mingw-w64 mingw-w64-tools mingw-w64-x86-64-dev mingw-w64-i686-dev tar curl zip unzip p7zip-full
66+ sudo apt-get install -y tar curl zip unzip p7zip-full
6167
62- - name : Make libs with mingw
63- if : success() && matrix.type == 'libs-mingw'
68+ - name : Install x86_64 mingw toolchain
69+ if : success() && matrix.arch == 'x86_64'
70+ run : |
71+ sudo apt-get install -y mingw-w64 mingw-w64-tools mingw-w64-x86-64-dev mingw-w64-i686-dev
72+
73+ - name : Install aarch64 llvm-mingw toolchain
74+ if : success() && matrix.arch == 'aarch64'
75+ run : |
76+ sudo apt-get install -y wget apt-transport-https software-properties-common doxygen
77+ wget -q https://github.com/mstorsjo/llvm-mingw/releases/download/20260407/llvm-mingw-20260407-msvcrt-ubuntu-22.04-x86_64.tar.xz
78+ tar -Jxf llvm-mingw-20260407-msvcrt-ubuntu-22.04-x86_64.tar.xz
79+ echo "$GITHUB_WORKSPACE/llvm-mingw-20260407-msvcrt-ubuntu-22.04-x86_64/bin" >> $GITHUB_PATH
80+
81+ - name : Build libs (x86_64)
82+ if : matrix.type == 'libs-mingw' && matrix.arch == 'x86_64'
6483 run : cd lib && MINGW=x86_64-w64-mingw32 make -f Makefile.mingw
65- - name : Install Powershell for vcpkg
84+
85+ - name : Build libs (aarch64)
86+ if : success() && matrix.type == 'libs-mingw' && matrix.arch == 'aarch64'
87+ run : cd lib && MINGW=aarch64-w64-mingw32 make -f Makefile.mingw
88+
89+ - name : Install Powershell (vcpkg)
6690 if : success() && matrix.type == 'apps-mingw-vcpkg'
6791 run : |
6892 sudo apt install -y wget apt-transport-https software-properties-common doxygen
@@ -101,7 +125,7 @@ jobs:
101125 if : ${{ failure() }}
102126 uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
103127 with :
104- name : mingw_logs_${{ matrix.type }}_${{ github.event.pull_request.head.sha }}
128+ name : mingw_logs_${{ matrix.arch }}_${{ matrix. type }}_${{ github.event.pull_request.head.sha }}
105129 path : deploy/logs.7z
106130
107131 - name : Prepare artifacts for deploy
@@ -112,5 +136,5 @@ jobs:
112136 uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
113137 if : ${{! contains(matrix.type, 'libs')}}
114138 with :
115- name : win_${{ matrix.type }}_${{ github.event.pull_request.head.sha }}
139+ name : win_${{ matrix.arch }}_${{ matrix. type }}_${{ github.event.pull_request.head.sha }}
116140 path : deploy/win_${{ matrix.type }}.7z
0 commit comments