# Windows Build Configuration for AppVeyor
# http://www.appveyor.com/docs/appveyor-yml
#

# This version starts a separte job for each platform config
# in order to get around the AppVeyor limit of 60 mins per job.

# build version format
version: "{build}"

# Free accounts have a max of 1, but ask anyway.
max_jobs: 4

os:
  - Visual Studio 2015

init:
  - git config --global core.autocrlf true

environment:
  PYTHON_PATH: "C:/Python35"
  PYTHON_PACKAGE_PATH: "C:/Python35/Scripts"
  CMAKE_URL: "http://cmake.org/files/v3.10/cmake-3.10.2-win64-x64.zip"

branches:
  only:
    - master

install:
  - appveyor DownloadFile %CMAKE_URL% -FileName cmake.zip
  - 7z x cmake.zip -oC:\cmake > nul
  - set path=C:\cmake\bin;%path%
  - cmake --version

before_build:
  - "SET PATH=C:\\Python35;C:\\Python35\\Scripts;%PATH%"
  - echo.
  - echo Starting build for %APPVEYOR_REPO_NAME%
  # Install dependencies
  - python scripts/update_deps.py --dir=external
  # Get Google Test
  - git clone https://github.com/google/googletest.git external/googletest
  - cd external/googletest
  - git checkout tags/release-1.8.1
  - cd %APPVEYOR_BUILD_FOLDER%
  # Verify consistency between source file generators and output
  - echo Verifying consistency between source file generators and output
  - python scripts/generate_source.py --verify external/Vulkan-Headers/registry
  # Generate build files using CMake for the build step.
  - echo Generating CMake files for %PLATFORM%
  - mkdir build
  - cd build
  - cmake -A %PLATFORM% -C../external/helper.cmake ..
  - echo Building platform=%PLATFORM% configuration=%CONFIGURATION%

platform:
  - Win32
  - x64

configuration:
  - Release
  - Debug

# Build only x64 Release and Win32(x86) Debug to reduce build time.
# This should still provide adequate 32-bit vs 64-bit and
# Release vs Debug coverage.
matrix:
  exclude:
    - configuration: Release
      platform: Win32
    - configuration: Debug
      platform: x64

build:
  parallel: true                   # enable MSBuild parallel builds
  project: build/Vulkan-Loader.sln # path to Visual Studio solution or project
  verbosity: quiet                 # quiet|minimal|normal|detailed
