• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1name: msys2
2
3on:
4  push:
5    branches: [ main ]
6  pull_request:
7    branches: [ main ]
8
9permissions:
10  contents: read
11
12jobs:
13  msys2:
14    runs-on: windows-latest
15
16    strategy:
17      fail-fast: false
18      matrix:
19        include:
20          - MSYSTEM: MINGW32
21            MSYS2_ARCH: i686
22          - MSYSTEM: MINGW64
23            MSYS2_ARCH: x86_64
24    name: ${{ matrix.MSYSTEM }}
25
26    env:
27      # XXX: For some reason enabling jit debugging "fixes" random python crashes
28      # see https://github.com/msys2/MINGW-packages/issues/11864
29      MSYS: "winjitdebug"
30
31    defaults:
32      run:
33        shell: msys2 {0}
34    steps:
35    - name: Checkout
36      uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
37    - name: Setup MSYS2
38      uses: msys2/setup-msys2@cf96e00c0aab3788743aaf63b64146f0d383cee9 # v2
39      with:
40        msystem: ${{ matrix.MSYSTEM }}
41        update: true
42        install: >-
43          mingw-w64-${{ matrix.MSYS2_ARCH }}-cairo
44          mingw-w64-${{ matrix.MSYS2_ARCH }}-freetype
45          mingw-w64-${{ matrix.MSYS2_ARCH }}-gcc
46          mingw-w64-${{ matrix.MSYS2_ARCH }}-gcc-libs
47          mingw-w64-${{ matrix.MSYS2_ARCH }}-gettext
48          mingw-w64-${{ matrix.MSYS2_ARCH }}-glib2
49          mingw-w64-${{ matrix.MSYS2_ARCH }}-gobject-introspection
50          mingw-w64-${{ matrix.MSYS2_ARCH }}-graphite2
51          mingw-w64-${{ matrix.MSYS2_ARCH }}-icu
52          mingw-w64-${{ matrix.MSYS2_ARCH }}-meson
53          mingw-w64-${{ matrix.MSYS2_ARCH }}-ninja
54          mingw-w64-${{ matrix.MSYS2_ARCH }}-pkg-config
55          mingw-w64-${{ matrix.MSYS2_ARCH }}-python
56          mingw-w64-${{ matrix.MSYS2_ARCH }}-python-pip
57    - name: Remove installed HarfBuzz DLLs
58      run: |
59        rm -f -v /ming*/bin/libharfbuzz-*.dll
60    - name: Install Python Dependencies
61      run: |
62        pip3 install -r .ci/requirements-fonttools.txt --require-hashes
63    - name: Setup Meson
64      run: |
65        meson setup build \
66          --wrap-mode=nodownload \
67          --auto-features=enabled \
68          -Ddocs=disabled \
69          -Ddirectwrite=enabled \
70          -Dgdi=enabled \
71          -Dgraphite=enabled \
72          -Dchafa=disabled
73    - name: Build
74      run: meson compile -Cbuild
75    - name: Test
76      run: meson test --print-errorlogs --suite=harfbuzz -Cbuild
77    - name: Upload DLLs
78      if: always()
79      uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
80      with:
81        name: libharfbuzz-${{ matrix.MSYS2_ARCH }}
82        path: ./build/src/libharfbuzz-*.dll
83