blob: 65b00cb078f34f9105e61bf933cf00d7c0dc2146 [file] [log] [blame]
# 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}"
# Probably not useful for free accounts, 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:
# These steps are a replacement for
# - update_external_sources.bat --all
# Instead of using the above script to build glslang/spirv-tools
# for all platform configs, build only the job's selected platform config.
# Since the script doesn't support building a single platform config,
# use parts of the script to build only the selected platform config.
#
# Also always build the x64 Release platform config in order to
# get the shader compiler binary which is used to build the repo.
#
# For a 4 platform config setup:
# All this results in 7 builds of glslang per commit, which isn't
# as good as building 4 when building all 4 platform configs in
# a single job, but is necessary when splitting the build into 4 jobs.
# It is still better than 16 glslang builds.
#
- "SET PATH=C:\\Python35;C:\\Python35\\Scripts;%PATH%"
- setlocal EnableDelayedExpansion
# Set up some useful vars.
- set TOP_DIR="%APPVEYOR_BUILD_FOLDER%\"
- set EXT_DIR=%TOP_DIR%external
- set REVISION_DIR=%TOP_DIR%external_revisions
- set GLSLANG_DIR=%EXT_DIR%\glslang
- set /p GLSLANG_GITURL= < %REVISION_DIR%\glslang_giturl
- set /p GLSLANG_REVISION= < %REVISION_DIR%\glslang_revision
# Clone and checkout glslang.
- echo.
- echo Creating local glslang repository %GLSLANG_DIR%
- echo GLSLANG_GITURL=%GLSLANG_GITURL%
- echo GLSLANG_REVISION=%GLSLANG_REVISION%
- if not exist %GLSLANG_DIR% (mkdir %GLSLANG_DIR%)
- cd %GLSLANG_DIR%
# If this dir is not empty, then a build cache was restored. Update it by fetching any updates.
# If the dir is empty, clone the repo.
- dir /b /a | findstr . > nul && (git fetch --all) || (git clone %GLSLANG_GITURL% . )
- git checkout %GLSLANG_REVISION%
- python.exe .\update_glslang_sources.py
# Build glslang.
- echo.
- echo Building %GLSLANG_DIR%
# We always need the x64 Release version of the shader compiler for building the repo.
- cd %GLSLANG_DIR%
- if not exist build (mkdir build)
- cd build
- cmake -G "Visual Studio 12 2013 Win64" -DCMAKE_INSTALL_PREFIX=install ..
- msbuild INSTALL.vcxproj /p:Platform=x64 /p:Configuration=Release /verbosity:quiet
# Build the x64 debug version if selected.
- if %PLATFORM% == x64 (if %CONFIGURATION% == Debug (msbuild INSTALL.vcxproj /p:Platform=x64 /p:Configuration=Debug /verbosity:quiet))
# Build 32-bit platform configs if selected.
- cd %GLSLANG_DIR%
- if not exist build32 (mkdir build32)
- cd build32
- if %PLATFORM% == Win32 (cmake -G "Visual Studio 12 2013" -DCMAKE_INSTALL_PREFIX=install ..)
- if %PLATFORM% == Win32 (msbuild INSTALL.vcxproj /p:Platform=x86 /p:Configuration=%CONFIGURATION% /verbosity:quiet)
# Generate build files using CMake for the build step.
- echo.
- echo Starting build for %APPVEYOR_REPO_NAME%
- if %PLATFORM% == Win32 (set GENERATOR="Visual Studio 12 2013")
- if %PLATFORM% == x64 (set GENERATOR="Visual Studio 12 2013 Win64")
- cd %TOP_DIR%
- mkdir build
- cd build
- echo Generating CMake files for %GENERATOR%
- cmake -G %GENERATOR% ..
- echo Building platform=%PLATFORM% configuration=%CONFIGURATION%
platform:
- Win32
- x64
configuration:
- Release
- Debug
build:
parallel: true # enable MSBuild parallel builds
project: build/VULKAN.sln # path to Visual Studio solution or project
verbosity: quiet # quiet|minimal|normal|detailed