summaryrefslogtreecommitdiff
path: root/.github/actions/setup-msys2/action.yml
blob: 2bbfca3beee1c38c251f99219fa21430e26a8f52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
name: 'Setup msys2'
description: 'Install an MSYS2 toolchain targeting the given architecture.'
inputs:
  arch:
    description: 'Target architecture: x86, AMD64 or ARM64.'
    required: true
  toolchains:
    description: 'Lookup table mapping the target architecture to an MSYS2 environment and pacboy compiler packages.'
    required: false
    # gcc-compat provides the gcc/g++ aliases that setuptools' mingw32 compiler expects.
    default: >-
      {
        "x86":   {"msystem": "mingw32",    "packages": ["gcc:p"]},
        "AMD64": {"msystem": "ucrt64",     "packages": ["gcc:p"]},
        "ARM64": {"msystem": "clangarm64", "packages": ["gcc-compat:p"]}
      }
runs:
  using: "composite"
  steps:
  - name: Set up MSYS2
    id: set-up-msys2
    uses: msys2/setup-msys2@v2
    with:
      msystem: ${{ fromJSON(inputs.toolchains)[inputs.arch].msystem }}
      install: make patch
      pacboy: ${{ join(fromJSON(inputs.toolchains)[inputs.arch].packages, ' ') }}

  - name: Add MSYS2 toolchain to PATH
    shell: msys2 {0}
    run: echo "${{ steps.set-up-msys2.outputs.msys2-location }}/${MSYSTEM,,}/bin" >> "$GITHUB_PATH"