# 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% in %APPVEYOR_BUILD_FOLDER%
  # Generate build files using CMake for the build step.
  - echo Fetching googletest external dependencies for building validation layer tests
  - cd %APPVEYOR_BUILD_FOLDER%
  - git clone https://github.com/google/googletest.git external/googletest
  - cd %APPVEYOR_BUILD_FOLDER%/external/googletest
  - git checkout tags/release-1.8.1
  - cd %APPVEYOR_BUILD_FOLDER%
  - python scripts/update_deps.py --dir=external --arch=%PLATFORM% --config=%CONFIGURATION% 
  - echo Verifying consistency between source file generators and output
  - python scripts/generate_source.py --verify external/Vulkan-Headers/registry
  - echo Generating Vulkan-ValidationLayers CMake files for %PLATFORM% %CONFIGURATION%
  - mkdir build
  - cd build
  - cmake -A %PLATFORM% -C../external/helper.cmake --config %CONFIGURATION% ..
  - 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-ValidationLayers.sln  # path to Visual Studio solution or project
  verbosity: quiet                            # quiet|minimal|normal|detailed
