# This is a copy of ci-unix-static.yml for building shared libraries. It differs from ci-unix-static.yml as follows:
#
#   * The os matrix consists of ubuntu-24.04 only.
#   * 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-24.04, macos-13]
        libyuv: [OFF, LOCAL]
        include:
          - runs-on: ubuntu-24.04
            compiler: gcc
            gcc: 14

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

    steps:
      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
      - 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_ENABLE_GTEST=ON -DAVIF_GTEST=LOCAL
          -DAVIF_ENABLE_EXPERIMENTAL_YCGCO_R=ON
          -DAVIF_ENABLE_EXPERIMENTAL_GAIN_MAP=ON
          -DAVIF_ENABLE_EXPERIMENTAL_MINI=ON
          -DAVIF_ENABLE_EXPERIMENTAL_SAMPLE_TRANSFORM=ON
          -DAVIF_ENABLE_WERROR=ON
      - name: Build libavif (ninja)
        working-directory: ./build
        run: ninja
      - name: Run AVIF Tests
        working-directory: ./build
        run: ctest -j $(getconf _NPROCESSORS_ONLN) --output-on-failure
