blob: 96eb1a67b3d943a43b57b1c554701298c8beb0f8 [file] [log] [blame]
Jose Fonseca9e6af562015-11-26 10:39:41 +00001# http://www.appveyor.com/docs/appveyor-yml
2#
3# To setup AppVeyor for your own personal repositories do the following:
4# - Sign up
5# - Add a new project
6# - Select Git and fill in the Git clone URL
7# - Setup a Git hook as explained in
8# https://github.com/appveyor/webhooks#installing-git-hook
Jose Fonseca1c0f95f2016-01-24 18:33:58 +00009# - Check 'Settings > General > Skip branches without appveyor.yml'
Jose Fonseca9e6af562015-11-26 10:39:41 +000010# - Check 'Settings > General > Rolling builds'
11# - Setup the global or project notifications to your liking
12#
13# Note that kicking (or restarting) a build via the web UI will not work, as it
14# will fail to find appveyor.yml . The Git hook is the most practical way to
15# kick a build.
16#
17# See also:
18# - http://help.appveyor.com/discussions/problems/2209-node-grunt-build-specify-a-project-or-solution-file-the-directory-does-not-contain-a-project-or-solution-file
19# - http://help.appveyor.com/discussions/questions/1184-build-config-vs-appveyoryaml
20
21version: '{build}'
22
23branches:
24 except:
25 - /^travis.*$/
26
Jose Fonseca1c0f95f2016-01-24 18:33:58 +000027# Don't download the full Mesa history to speed up cloning. However the clone
28# depth must not be too small, otherwise builds might fail when lots of patches
29# are committed in succession, because the desired commit is not found on the
30# truncated history.
31#
32# See also:
33# - https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories
34clone_depth: 100
Jose Fonseca9e6af562015-11-26 10:39:41 +000035
36cache:
Jose Fonsecabb9faba2017-03-28 11:39:26 +010037- win_flex_bison-2.5.9.zip
Jose Fonseca9e6af562015-11-26 10:39:41 +000038- llvm-3.3.1-msvc2013-mtd.7z
39
Jose Fonseca06b63f12016-08-11 14:11:00 +010040os: Visual Studio 2013
41
Jose Fonseca9e6af562015-11-26 10:39:41 +000042environment:
Jose Fonsecabb9faba2017-03-28 11:39:26 +010043 WINFLEXBISON_ARCHIVE: win_flex_bison-2.5.9.zip
Jose Fonseca9e6af562015-11-26 10:39:41 +000044 LLVM_ARCHIVE: llvm-3.3.1-msvc2013-mtd.7z
45
46install:
Jose Fonsecaa9a0c692015-12-08 22:26:32 +000047# Check pip
Jose Fonseca9e6af562015-11-26 10:39:41 +000048- python --version
Jose Fonsecaa9a0c692015-12-08 22:26:32 +000049- python -m pip --version
Jose Fonseca9e6af562015-11-26 10:39:41 +000050# Install Mako
Jose Fonsecabb9faba2017-03-28 11:39:26 +010051- python -m pip install Mako==1.0.6
Jose Fonseca16627fc2016-08-11 14:00:35 +010052# Install pywin32 extensions, needed by SCons
53- python -m pip install pypiwin32
Jose Fonsecabb9faba2017-03-28 11:39:26 +010054# Install python wheels, necessary to install SCons via pip
55- python -m pip install wheel
Jose Fonseca9e6af562015-11-26 10:39:41 +000056# Install SCons
Jose Fonsecabb9faba2017-03-28 11:39:26 +010057- python -m pip install scons==2.5.1
Jose Fonseca9e6af562015-11-26 10:39:41 +000058- scons --version
59# Install flex/bison
Jose Fonseca62affed2016-09-13 17:53:30 +010060- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://downloads.sourceforge.net/project/winflexbison/old_versions/%WINFLEXBISON_ARCHIVE%"
Jose Fonsecaa9a0c692015-12-08 22:26:32 +000061- 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
62- set Path=%CD%\winflexbison;%Path%
Jose Fonseca9e6af562015-11-26 10:39:41 +000063- win_flex --version
64- win_bison --version
65# Download and extract LLVM
66- if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
67- 7z x -y "%LLVM_ARCHIVE%" > nul
68- mkdir llvm\bin
69- set LLVM=%CD%\llvm
70
71build_script:
72- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=12.0 llvm=1
73
Jose Fonseca8fcacb42016-04-13 13:58:57 +010074after_build:
75- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=12.0 llvm=1 check
76
Jose Fonseca9e6af562015-11-26 10:39:41 +000077
78# It's possible to setup notification here, as described in
79# http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but
80# doing so would cause the notification settings to be replicated across all
81# repos, which is most likely undesired. So it's better to rely on the
82# Appveyor global/project notification settings.