name: Mac OS build
on:
  push:
    branches:
      - '**'
  pull_request:
jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [macos-14, macos-15]
    steps:
    - uses: actions/checkout@v6
    - name: Setup
      env:
        HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
      run: |
        brew install automake autoconf libtool boost ccache
    - name: Cache
      uses: hendrikmuhs/ccache-action@v1.2
      with:
        key: macos-ci-build-${{ matrix.os }}-${{ github.ref }}
        restore-keys: |
          macos-ci-build-${{ matrix.os }}-${{ github.ref }}
          macos-ci-build-${{ matrix.os }}-refs/heads/master
          macos-ci-build-${{ matrix.os }}-
    - name: Compiler version
      run: |
        clang --version
    - name: Build
      run: |
        ./autogen.sh
        ./configure --disable-shared --with-boost-include=`brew --prefix`/include ${{ matrix.configureflags }} CC="ccache clang" CXX="ccache clang++" CXXFLAGS="-O2 -g0 -Wall -Werror ${{ matrix.cxxflags }}"
        make -j 3
    - name: Run tests
      run: |
        ./test-suite/quantlib-test-suite --log_level=message
    - name: Run examples
      run: |
        make -C Examples check-examples
