# This is a copy of ci-unix-static.yml for building shared libraries. It differs from ci-unix-static.yml as follows:
#
#   * Does not build rav1e, SVT-AV1 nor libgav1.

name: CI Unix Shared Local
on: [push, pull_request]

permissions:
  contents: read

# Cancel the workflow if a new one is triggered from the same PR, branch, or tag, except on main.
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
  build-shared-local:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macos-latest]
        libyuv: [OFF, LOCAL]
        include:
          - runs-on: ubuntu-latest
            compiler: gcc
            gcc: 14

    name: build-shared-local (${{ matrix.os }}, libyuv ${{ matrix.libyuv }})

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: ./.github/actions/setup-linux
        if: runner.os == 'Linux'
        with:
          codec-aom: "LOCAL"
          codec-dav1d: "LOCAL"
          gcc-version: ${{ matrix.gcc }}
          libxml2: "LOCAL"
          libyuv: ${{ matrix.libyuv }}
      - uses: ./.github/actions/setup-macos
        if: runner.os == 'macOS'
        with:
          codec-aom: "LOCAL"
          codec-dav1d: "LOCAL"

      - name: Prepare libavif (cmake)
        run: >
          cmake -G Ninja -S . -B build
          -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON
          -DAVIF_CODEC_AOM=LOCAL -DAVIF_CODEC_DAV1D=LOCAL
          -DAVIF_LIBSHARPYUV=LOCAL -DAVIF_LIBXML2=LOCAL
          -DAVIF_LIBYUV=${{ matrix.libyuv }}
          -DAVIF_BUILD_EXAMPLES=ON -DAVIF_BUILD_APPS=ON
          -DAVIF_BUILD_TESTS=ON -DAVIF_GTEST=LOCAL
          -DAVIF_ENABLE_EXPERIMENTAL_MINI=ON
          -DAVIF_ENABLE_EXPERIMENTAL_SAMPLE_TRANSFORM=ON
          -DAVIF_ENABLE_EXPERIMENTAL_EXTENDED_PIXI=ON
          -DAVIF_ENABLE_WERROR=ON
      - name: Build libavif
        run: cmake --build build --config Release --parallel 4
      - name: Run AVIF Tests
        working-directory: ./build
        run: ctest -j $(getconf _NPROCESSORS_ONLN) --output-on-failure
