on:
  push:
    branches:
    - main
    tags:
    - '!*'
  pull_request:
    branches:
    - main

name: main
jobs:
  build_linux:
    name: Build Linux
    container:
      image: ubuntu:bionic
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        compiler: [ gcc, clang ]

    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 1

    - name: Install dependencies
      run: |
        set -e
        apt-get update -y
        apt-get install -y autoconf pkg-config ${{matrix.compiler}}

    - name: Configure ImageMagick
      run: |
        export CC=${{matrix.compiler}}
        export CFLAGS="-Wno-deprecated-declarations"
        ./configure --with-quantum-depth=16 --enable-hdri=no --without-perl --prefix=/usr

    - name: Build ImageMagick
      run: |
        set -e
        make
        make install

  build_macos:
    name: Build MacOS
    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 1

    - name: Install dependencies
      run: |
        set -e
        export HOMEBREW_NO_AUTO_UPDATE=1
        brew install autoconf libtool pkg-config libxml2

    - name: Configure ImageMagick
      run: |
        export CFLAGS="-Wno-deprecated-declarations"
        export PKG_CONFIG_PATH="/usr/local/opt/libxml2/lib/pkgconfig"
        ./configure --with-quantum-depth=16 --enable-hdri=no --without-perl

    - name: Build ImageMagick
      run: |
        set -e
        make install

  build_windows:
    name: Build Windows ${{matrix.platform}}
    runs-on: windows-2022

    strategy:
      fail-fast: false
      matrix:
        platform: [ x86, x64 ]

    steps:
    - uses: actions/checkout@v2
      with:
        path: ImageMagick
        fetch-depth: 1

    - uses: actions/checkout@v2
      with:
        repository: ImageMagick/ImageMagick-Windows
        path: ImageMagick-Windows
        ref: refs/heads/main
        fetch-depth: 1

    - name: Clone repositories
      shell: cmd
      run: |
        cd %GITHUB_WORKSPACE%\ImageMagick-Windows
        CloneRepositories.cmd https://github.com/ImageMagick shallow

    - name: Build configure
      shell: cmd
      run: |
        call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
        cd %GITHUB_WORKSPACE%\ImageMagick-Windows\VisualMagick\configure
        msbuild configure.2022.sln /m /t:Rebuild /p:Configuration=Release,Platform=x64

    - name: Configure ImageMagick
      shell: cmd
      run: |
        cd %GITHUB_WORKSPACE%\ImageMagick-Windows\VisualMagick\configure
        configure.exe /noWizard /VS2022 /${{matrix.platform}} /smtd

    - name: Build ImageMagick
      shell: cmd
      run: |
        call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
        cd %GITHUB_WORKSPACE%\ImageMagick-Windows\VisualMagick
        msbuild VisualStaticMTD.sln /m /t:Rebuild /p:Configuration=Release,Platform=${{matrix.platform}}

  build_msys2:
    name: Build MSYS2
    runs-on: windows-latest

    steps:
    - name: Prepare git
      run: git config --global core.autocrlf false

    - uses: actions/checkout@v2

    - uses: actions/checkout@v2
      with:
        repository: ImageMagick/ImageMagick-Windows
        path: ImageMagick-Windows
        ref: refs/heads/main
        fetch-depth: 1

    - uses: msys2/setup-msys2@v2
      with:
        install: mingw-w64-x86_64-toolchain base-devel binutils
        update: true

    - name: Building ImageMagick
      run: cd ImageMagick-Windows && makepkg-mingw --noconfirm --syncdeps
      env:
        MINGW_ARCH: mingw64
        PKGEXT: ".pkg.tar.xz"
      shell: msys2 {0}
