mingw-builds-binaries Documentation

MinGW-W64 compiler binaries

5,341 stars Unknown 1 file ยท ~1,092 tokens
RAW Doc

File: README.md

MinGW-W64-binaries

MinGW-W64 compiler binaries

MinGW-W64 online installer (VirusTotal), (sources).

The online installer provides GUI for selection parameters of build you need and archive extraction into selected dir.
It also creates a shortcut in start menu that runs terminal with added PATH to the compiler dir.


File: .github/workflows/build.yml

name: x86_64 and i686 release builds

on:
push:
tags:
- "-rt_-rev*"

jobs:
split-tag:
runs-on: ubuntu-latest
outputs:
gcc-version: ${{ steps.get-gcc-version.outputs.version }}
rt-version: ${{ steps.get-rt-version.outputs.version }}
mingw-rev: ${{ steps.get-mingw-revision.outputs.rev }}
steps:
- id: get-gcc-version
run: echo "version=$(echo ${{ github.ref_name }} | cut -d- -f1)" >> $GITHUB_OUTPUT
- id: get-rt-version
run: echo "version=$(echo ${{ github.ref_name }} | cut -d- -f2 | cut -c4-)" >> $GITHUB_OUTPUT
- id: get-mingw-revision
run: echo "rev=$(echo ${{ github.ref_name }} | cut -d- -f3 | cut -c4-)" >> $GITHUB_OUTPUT

download:
needs: split-tag
runs-on: windows-2022

text
steps:
- uses: actions/checkout@v6
  with:
    ref: 'develop'

- uses: msys2/setup-msys2@v2
  with:
    update: true

- name: Download sources
  shell: msys2 {0}
  run: >-
    ./build
    --mode=gcc-${{ needs.split-tag.outputs.gcc-version }}
    --buildroot=/c/buildroot
    --jobs=4
    --rev=${{ needs.split-tag.outputs.mingw-rev }}
    --with-default-msvcrt=ucrt
    --rt-version=${{ needs.split-tag.outputs.rt-version }}
    --threads=mcf
    --exceptions=seh
    --arch=x86_64
    --bin-compress
    --enable-languages=c,c++,fortran
    --logviewer-command=cat
    --fetch-only

- name: Compress sources
  run: 7z a src.7z src "-xr!.git"
  working-directory: c:/buildroot

- name: Upload sources
  uses: actions/upload-artifact@v7
  with:
    path: c:/buildroot/src.7z
    compression-level: 0
    archive: false

build:
needs: [split-tag, download]
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
arch: [x86_64, i686]
threads: [posix, win32, mcf]
exceptions: [seh, dwarf]
msvcrt: [msvcrt, ucrt]
exclude:
- arch: x86_64
exceptions: dwarf
- arch: i686
exceptions: seh
- threads: mcf
msvcrt: msvcrt

text
steps:
- uses: actions/checkout@v6
  with:
    ref: 'develop'

- uses: msys2/setup-msys2@v2
  with:
    update: true

- name: Download sources
  uses: actions/download-artifact@v8
  with:
    name: src.7z
    path: c:/buildroot

- name: Extract sources
  run: 7z x src.7z
  working-directory: c:/buildroot

- name: Build
  shell: msys2 {0}
  run: >-
    ./build
    --mode=gcc-${{ needs.split-tag.outputs.gcc-version }}
    --buildroot=/c/buildroot
    --jobs=4
    --rev=${{ needs.split-tag.outputs.mingw-rev }}
    --with-default-msvcrt=${{ matrix.msvcrt }}
    --rt-version=${{ needs.split-tag.outputs.rt-version }}
    --threads=${{ matrix.threads }}
    --exceptions=${{ matrix.exceptions }}
    --arch=${{ matrix.arch }}
    --bin-compress
    --enable-languages=c,c++,fortran
    --logviewer-command=cat

- name: Upload
  uses: actions/upload-artifact@v7
  with:
    name: bin-${{ matrix.arch }}-${{ matrix.threads }}-${{ matrix.exceptions }}-${{ matrix.msvcrt }}
    path: c:/buildroot/archives/

release:
runs-on: ubuntu-latest
needs: build

text
steps:
- name: Download artifact
  uses: actions/download-artifact@v8
  with:
    pattern: "bin-*"
    path: ./
    merge-multiple: true

- name: Upload to Release
  id: upload_to_release
  uses: softprops/action-gh-release@v1
  with:
    files: "*.7z"