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

# Cache the external directory to improve build times.
# If the appveyor config file changes, invalidate the cache.
cache:
    - external -> .appveyor.yml

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%
  - git submodule update --init --recursive
  # Determine the appropriate CMake generator for the current version of Visual Studio
  - echo Determining VS version
  - python .\scripts\determine_vs_version.py > vsversion.tmp
  - set /p VS_VERSION=< vsversion.tmp
  - echo Detected Visual Studio Version as %VS_VERSION%
  - del /Q /F vsversion.tmp
  - if %PLATFORM% == Win32 (set GENERATOR="Visual Studio %VS_VERSION%")
  - if %PLATFORM% == x64 (set GENERATOR="Visual Studio %VS_VERSION% Win64")
  - if %PLATFORM% == Win32 (set BUILD_DIR="build32")
  - if %PLATFORM% == x64 (set BUILD_DIR="build")
  # Build Vulkan-Loader
  - echo Building Vulkan-Loader for %PLATFORM% %CONFIGURATION%
  - cd %APPVEYOR_BUILD_FOLDER%
  - git clone --recurse-submodules https://github.com/KhronosGroup/Vulkan-Loader.git
  - cd Vulkan-Loader
  - mkdir %BUILD_DIR%
  - cd %BUILD_DIR%
  - cmake -G %GENERATOR% ..
  - cmake --build . --config %CONFIGURATION% -- /maxcpucount
  # Build glslang
  - echo Building glslang for %PLATFORM% %CONFIGURATION%
  - cd %APPVEYOR_BUILD_FOLDER%
  - git clone https://github.com/KhronosGroup/glslang.git
  - cd glslang
  - update_glslang_sources.py
  - mkdir %BUILD_DIR%
  - cd %BUILD_DIR%
  - cmake -G %GENERATOR% -DCMAKE_INSTALL_PREFIX=install ..
  - cmake --build . --config %CONFIGURATION% -- /maxcpucount
  # Generate build files using CMake for the build step.
  - echo Generating Vulkan-ValidationLayers CMake files for %PLATFORM% %CONFIGURATION%
  - cd %APPVEYOR_BUILD_FOLDER%
  - mkdir build
  - cd build
  - cmake -G %GENERATOR% -DGLSLANG_REPO_ROOT=%APPVEYOR_BUILD_FOLDER%\glslang -DLOADER_REPO_ROOT=%APPVEYOR_BUILD_FOLDER%\Vulkan-Loader ..
  - echo Building platform=%PLATFORM% configuration=%CONFIGURATION%

platform:
  - Win32
  - x64

configuration:
  - Release
  - Debug

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
