# 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 2017

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%"
  # vcvars32.bat will override the platform ennvar, so we need to reset it or else appveyor dies
  - "SET APPVEYOR_PLATFORM=%PLATFORM%"
  - if %APPVEYOR_PLATFORM% == x64 (call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat")
  - if %APPVEYOR_PLATFORM% == Win32 (call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat")
  - "SET PLATFORM=%APPVEYOR_PLATFORM%"
  - 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%
  # 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
