name: macOS Build Tests

on:
  push:
    branches-ignore:
      - master
      - release
      - gha
      - Qt4
      - Qt4-dev
    tags-ignore: '*'
    paths-ignore: '/.github/workflows/release.yml'
  pull_request:

env:
  QT_VERSION: 6.5.3
  QT_PACKAGES: qtwebengine qtwebchannel qtpositioning qt5compat
  ACTIONS_ALLOW_UNSECURE_COMMANDS: true

# https://doc.qt.io/qt-6/macos.html
jobs:
  build:
    name: ${{ matrix.config.name }}
    runs-on: ${{ matrix.config.os }}
    #continue-on-error: true
    strategy:
      fail-fast: false
      matrix:
        config:
          - name:    Cmake
            os:      macos-15
            setup:   'cmake -DCMAKE_OSX_ARCHITECTURES="arm64" -DUSE_STATIC_CHMLIB=ON -DUSE_WEBENGINE=ON .'
            build:   'cmake --build . --config Release'
            install: 'sudo cmake --install . --config Release'
          - name:    Qmake
            os:      macos-15
            setup:   'qmake -r -early "QMAKE_DEFAULT_LIBDIRS=$(xcrun -show-sdk-path)/usr/lib" "QMAKE_APPLE_DEVICE_ARCHS=arm64" "USE_STATIC_CHMLIB=1" "USE_WEBENGINE=1" "LIBZIP_ROOT=/usr/local"'
            build:   'make'
            install: 'echo skip'

    steps:
    - name: checkout
      uses: actions/checkout@v4
      with:
        submodules: true

    - name: Install Qt
      uses: jurplel/install-qt-action@v4
      with:
        version:  ${{ env.QT_VERSION }}
        modules: ${{ env.QT_PACKAGES }}

    - name: Build & install libzip
      shell: bash
      run: |
        cd ../
        git clone https://github.com/nih-at/libzip.git
        cd libzip
        git checkout v1.11.4
        mkdir build
        cd build
        cmake -DCMAKE_OSX_ARCHITECTURES="arm64" ..
        cmake --build . --config Release
        sudo cmake --install . --config Release

    - name: Setup project
      run: ${{ matrix.config.setup }}

    - name: Build project
      run: ${{ matrix.config.build }}
      
    - name: Install project
      shell: bash
      run: ${{ matrix.config.install }}
