Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 1 | # 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 Fonseca | 1c0f95f | 2016-01-24 18:33:58 +0000 | [diff] [blame] | 9 | # - Check 'Settings > General > Skip branches without appveyor.yml' |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 10 | # - 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 | |
| 21 | version: '{build}' |
| 22 | |
| 23 | branches: |
| 24 | except: |
| 25 | - /^travis.*$/ |
| 26 | |
Jose Fonseca | 1c0f95f | 2016-01-24 18:33:58 +0000 | [diff] [blame] | 27 | # 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 |
| 34 | clone_depth: 100 |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 35 | |
| 36 | cache: |
Jose Fonseca | a9a0c69 | 2015-12-08 22:26:32 +0000 | [diff] [blame] | 37 | - win_flex_bison-2.4.5.zip |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 38 | - llvm-3.3.1-msvc2013-mtd.7z |
| 39 | |
| 40 | environment: |
Jose Fonseca | a9a0c69 | 2015-12-08 22:26:32 +0000 | [diff] [blame] | 41 | WINFLEXBISON_ARCHIVE: win_flex_bison-2.4.5.zip |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 42 | LLVM_ARCHIVE: llvm-3.3.1-msvc2013-mtd.7z |
| 43 | |
| 44 | install: |
Jose Fonseca | a9a0c69 | 2015-12-08 22:26:32 +0000 | [diff] [blame] | 45 | # Check pip |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 46 | - python --version |
Jose Fonseca | a9a0c69 | 2015-12-08 22:26:32 +0000 | [diff] [blame] | 47 | - python -m pip --version |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 48 | # Install Mako |
| 49 | - python -m pip install --egg Mako |
| 50 | # Install SCons |
| 51 | - python -m pip install --egg scons==2.4.1 |
| 52 | - scons --version |
| 53 | # Install flex/bison |
Jose Fonseca | a9a0c69 | 2015-12-08 22:26:32 +0000 | [diff] [blame] | 54 | - if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "http://downloads.sourceforge.net/project/winflexbison/%WINFLEXBISON_ARCHIVE%" |
| 55 | - 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul |
| 56 | - set Path=%CD%\winflexbison;%Path% |
Jose Fonseca | 9e6af56 | 2015-11-26 10:39:41 +0000 | [diff] [blame] | 57 | - win_flex --version |
| 58 | - win_bison --version |
| 59 | # Download and extract LLVM |
| 60 | - if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%" |
| 61 | - 7z x -y "%LLVM_ARCHIVE%" > nul |
| 62 | - mkdir llvm\bin |
| 63 | - set LLVM=%CD%\llvm |
| 64 | |
| 65 | build_script: |
| 66 | - scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=12.0 llvm=1 |
| 67 | |
| 68 | |
| 69 | # It's possible to setup notification here, as described in |
| 70 | # http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but |
| 71 | # doing so would cause the notification settings to be replicated across all |
| 72 | # repos, which is most likely undesired. So it's better to rely on the |
| 73 | # Appveyor global/project notification settings. |