image: Visual Studio 2019
configuration: Release
skip_commits:
  files:
    - '.github/*'
    - '.travis.yml'
    - '.gitignore'
    - '*.md'

install:
 # Install Rust
 - appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe
 - rustup-init -yv --default-toolchain stable --default-host x86_64-pc-windows-msvc
 - set PATH=%PATH%;%USERPROFILE%\.cargo\bin
 - rustc -vV
 - cargo -vV
 # Get submodules
 - git submodule update --init --recursive
 # Prepare VS env
 - call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
 # Install Nasm
 - appveyor DownloadFile "https://github.com/joedrago/nasm_mirror/raw/master/nasm-2.15.05-win64.zip" -FileName "nasm.zip"
 - 7z x "nasm.zip" > nul
 - move nasm-* NASM
 - set PATH=%PATH%;%CD%\NASM;
 - nasm -v
 # Build all external libraries statically
 - cd ext
 - aom.cmd
 - dav1d.cmd
 - rav1e.cmd
 - svt.cmd
 - libjpeg.cmd
 - zlibpng.cmd
 - cd ..
 # Configure with CMake
 - mkdir build
 - cd build
 - cmake --version
 - cmake .. -DAVIF_CODEC_AOM=ON -DAVIF_LOCAL_AOM=ON -DAVIF_CODEC_DAV1D=ON -DAVIF_LOCAL_DAV1D=ON -DAVIF_CODEC_RAV1E=ON -DAVIF_LOCAL_RAV1E=ON -DAVIF_CODEC_SVT=ON -DAVIF_LOCAL_SVT=ON -DBUILD_SHARED_LIBS=OFF -DAVIF_LOCAL_JPEG=1 -DAVIF_LOCAL_ZLIBPNG=1 -DAVIF_BUILD_APPS=ON

build:
  project: build/libavif.sln
  parallel: true
  verbosity: minimal

after_build:
 - copy %CONFIGURATION%\avifenc.exe .
 - copy %CONFIGURATION%\avifdec.exe .
 - mkdir lib
 - set ARTIFACT_ZIP=libavif_vs2019_x64_%APPVEYOR_REPO_COMMIT:~0,8%_%CONFIGURATION%.zip
 - copy %CONFIGURATION%\avif.lib lib\avif_x64_%CONFIGURATION%.lib
 - 7z a %ARTIFACT_ZIP% lib
 - cd ..
 - 7z a build\%ARTIFACT_ZIP% include examples

artifacts:
- path: 'build\libavif_vs2019_x64_*.zip'
  name: Static Lib and Includes
- path: 'build\*.exe'
  name: Basic apps

deploy:
 - provider: GitHub
   auth_token:
     secure: 'RsUpI1cVgIyervo85gkQ/qRr9BRx9n6WfqcHrFLB4VNi4BBnfuMt+9dY399oP/EF'
   prerelease: true
   on:
     appveyor_repo_tag: true