1# Windows Build Configuration for AppVeyor
2# http://www.appveyor.com/docs/appveyor-yml
3#
4
5# This version starts a separte job for each platform config
6# in order to get around the AppVeyor limit of 60 mins per job.
7
8# build version format
9version: "{build}"
10
11# Free accounts have a max of 1, but ask anyway.
12max_jobs: 4
13
14os:
15  - Visual Studio 2015
16
17init:
18  - git config --global core.autocrlf true
19
20environment:
21  PYTHON_PATH: "C:/Python35"
22  PYTHON_PACKAGE_PATH: "C:/Python35/Scripts"
23  CMAKE_URL: "http://cmake.org/files/v3.10/cmake-3.10.2-win64-x64.zip"
24
25branches:
26  only:
27    - master
28
29install:
30  - appveyor DownloadFile %CMAKE_URL% -FileName cmake.zip
31  - 7z x cmake.zip -oC:\cmake > nul
32  - set path=C:\cmake\bin;%path%
33  - cmake --version
34
35before_build:
36  - "SET PATH=C:\\Python35;C:\\Python35\\Scripts;%PATH%"
37  - echo.
38  - echo Starting build for %APPVEYOR_REPO_NAME% in %APPVEYOR_BUILD_FOLDER%
39  # Generate build files using CMake for the build step.
40  - echo Fetching googletest external dependencies for building validation layer tests
41  - cd %APPVEYOR_BUILD_FOLDER%
42  - git clone https://github.com/google/googletest.git external/googletest
43  - cd %APPVEYOR_BUILD_FOLDER%/external/googletest
44  - git checkout tags/release-1.8.1
45  - cd %APPVEYOR_BUILD_FOLDER%
46  - python scripts/update_deps.py --dir=external --arch=%PLATFORM% --config=%CONFIGURATION%
47  - echo Verifying consistency between source file generators and output
48  - python scripts/generate_source.py --verify external/Vulkan-Headers/registry
49  - echo Generating Vulkan-ValidationLayers CMake files for %PLATFORM% %CONFIGURATION%
50  - mkdir build
51  - cd build
52  - cmake -A %PLATFORM% -C../external/helper.cmake --config %CONFIGURATION% ..
53  - echo Building platform=%PLATFORM% configuration=%CONFIGURATION%
54
55platform:
56  - Win32
57  - x64
58
59configuration:
60  - Release
61  - Debug
62
63# Build only x64 Release and Win32(x86) Debug to reduce build time.
64# This should still provide adequate 32-bit vs 64-bit and
65# Release vs Debug coverage.
66matrix:
67  exclude:
68    - configuration: Release
69      platform: Win32
70    - configuration: Debug
71      platform: x64
72
73build:
74  parallel: true                              # enable MSBuild parallel builds
75  project: build/Vulkan-ValidationLayers.sln  # path to Visual Studio solution or project
76  verbosity: quiet                            # quiet|minimal|normal|detailed
77
78artifacts:
79  - path: build\layers\$(configuration)
80    name: Vulkan-ValidationLayers-$(platform)-$(configuration)
81