# 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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
    - 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@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
      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
      with:
        version: 2.15.05
    - 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
    - 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
      # 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.
      # This is PowerShell syntax.
      run: >
        $Env:CC = 'clang-cl'

        $Env:CXX = 'clang-cl'

        ./libyuv.cmd

        $Env:CC = ''

        $Env:CXX = ''
    - 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
