# This workflow generates artifacts such as avifenc.exe and avifdec.exe for convenience.

name: CI Windows Artifacts
on:
  release:
    types: [created]

permissions:
  contents: write

jobs:
  build-static:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [windows-latest]

    steps:
    - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
    - name: Setup Visual Studio shell
      if: runner.os == 'Windows'
      uses: egor-tensin/vs-shell@9a932a62d05192eae18ca370155cf877eecc2202 # v2.1
    - name: Cache external dependencies
      id: cache-ext
      uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
      with:
        path: ext
        key: ${{ runner.os }}-${{ hashFiles('ext/*.cmd') }}-releasedeps
    - name: Print cmake version
      run: cmake --version
    - uses: ilammy/setup-nasm@13cbeb366c45c4379d3478cdcbadd8295feb5028 # v1.5.1
    - uses: seanmiddleditch/gha-setup-ninja@8b297075da4cd2a5f1fd21fe011b499edf06e9d2 # v4
    - run: pip install meson
    - name: Build aom
      if: steps.cache-ext.outputs.cache-hit != 'true'
      working-directory: ./ext
      run: ./aom.cmd
      # Visual Studio 2022 has an issue starting at 17.8.0 which might cause
      # AVX-512 instructions to be emitted in non-AVX-512 code. See
      # https://github.com/AOMediaCodec/libavif/issues/2033#issuecomment-1960062751.
      env:
        CC: clang-cl
        CXX: clang-cl
    - name: Build dav1d
      if: steps.cache-ext.outputs.cache-hit != 'true'
      working-directory: ./ext
      run: ./dav1d.cmd
    - name: Build libyuv
      if: steps.cache-ext.outputs.cache-hit != 'true'
      working-directory: ./ext
      run: ./libyuv.cmd
      # Use clang-cl to build libyuv. The assembly code in libyuv is written in the
      # GCC inline assembly format. Visual C++ doesn't support GCC inline assembly.
      env:
        CC: clang-cl
        CXX: clang-cl
    - name: Build libsharpyuv
      if: steps.cache-ext.outputs.cache-hit != 'true'
      working-directory: ./ext
      run: ./libsharpyuv.cmd
    - name: Build libjpeg
      if: steps.cache-ext.outputs.cache-hit != 'true'
      working-directory: ./ext
      run: ./libjpeg.cmd
    - name: Build zlib and libpng
      if: steps.cache-ext.outputs.cache-hit != 'true'
      working-directory: ./ext
      run: ./zlibpng.cmd

    - name: Prepare libavif (cmake)
      run: >
        mkdir build && cd build

        cmake .. -G Ninja
        -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF
        -DAVIF_CODEC_AOM=LOCAL -DAVIF_CODEC_AOM_ENCODE=ON
        -DAVIF_CODEC_AOM_DECODE=OFF -DAVIF_CODEC_DAV1D=LOCAL
        -DAVIF_LIBYUV=LOCAL -DAVIF_LIBSHARPYUV=LOCAL
        -DAVIF_JPEG=LOCAL -DAVIF_ZLIBPNG=LOCAL
        -DAVIF_BUILD_EXAMPLES=OFF -DAVIF_BUILD_APPS=ON
        -DAVIF_BUILD_TESTS=OFF -DAVIF_ENABLE_WERROR=ON
    - name: Build libavif (ninja)
      working-directory: ./build
      run: ninja
    - name: Archive artifacts
      uses: thedoctor0/zip-release@b57d897cb5d60cb78b51a507f63fa184cfe35554 # 0.7.6
      with:
        type: 'zip'
        filename: 'windows-artifacts.zip'
        directory: 'build'
        path: '*.exe'
    - name: Upload artifacts
      uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      with:
        # See https://docs.github.com/en/webhooks/webhook-events-and-payloads#release.
        upload_url: ${{ github.event.release.upload_url }}
        asset_path: build/windows-artifacts.zip
        asset_name: windows-artifacts.zip
        asset_content_type: application/zip
