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

environment:
  PYTHON_PATH: "C:/Python35"
  PYTHON_PACKAGE_PATH: "C:/Python35/Scripts"

branches:
  only:
    - master

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
  - python scripts/update_deps.py --dir=external --arch=%PLATFORM% --config=%CONFIGURATION% 
  - 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
