# https://www.appveyor.com/docs/appveyor-yml
#
# To setup AppVeyor for your own personal repositories do the following:
# - Go to https://gitlab.freedesktop.org/profile/personal_access_tokens and
#   create a new token with 'api' and 'read_repository' access.
# - Sign up to AppVeyor
# - Add a new project
# - Select GitLab EE
# - Fill GitLab URL as https://gitlab.freedesktop.org/ and paste the token above.
# - Enable for your personal repository.
#
# See also:
# - https://help.appveyor.com/discussions/questions/1184-build-config-vs-appveyoryaml

version: '{build}'

branches:
  except:
  - /^travis.*$/

# Don't download the full Mesa history to speed up cloning.  However the clone
# depth must not be too small, otherwise builds might fail when lots of patches
# are committed in succession, because the desired commit is not found on the
# truncated history.
#
# See also:
# - https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories
clone_depth: 100

cache:
- freeglut-MinGW-3.0.0-1.mp.zip
- freeglut-MinGW-3.0.0-2.mp.zip

# https://www.appveyor.com/docs/build-environment/#build-worker-images
os: Visual Studio 2015

environment:
  PYTHON_HOME: C:\Python36
  matrix:
  - MINGW_HOME: C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32
    FREEGLUT_ARCHIVE: freeglut-MinGW-3.0.0-1.mp.zip
    FREEGLUT_LIB: lib\libfreeglut.a
  - MINGW_HOME: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64
    FREEGLUT_ARCHIVE: freeglut-MinGW-3.0.0-1.mp.zip
    FREEGLUT_LIB: lib\x64\libfreeglut.a

matrix:
  fast_finish: true

install:
# Setup Python 3
- set Path=%PYTHON_HOME%;%PYTHON_HOME%\Scripts;%Path%
- pip --version
# Install Mako
- pip install Mako==1.0.6
# Install Numpy
- pip install numpy==1.12.1
# Check CMake
- cmake --version
# Install Ninja
- cinst -y ninja
- ninja --version
# Setup MinGW
- if not "%MINGW_HOME%"=="" set Path=%MINGW_HOME%\bin;%Path%
# Install FreeGlut
- if not exist "%FREEGLUT_ARCHIVE%" appveyor DownloadFile "http://files.transmissionzero.co.uk/software/development/GLUT/%FREEGLUT_ARCHIVE%"
- 7z x -y "%FREEGLUT_ARCHIVE%" > nul
# Get glext.h
- mkdir glext\GL
- appveyor DownloadFile https://www.khronos.org/registry/OpenGL/api/GL/glext.h -FileName glext\GL\glext.h

build_script:
- cmake -H. -Bbuild -G "Ninja" -DGLUT_INCLUDE_DIR=%CD%\freeglut\include -DGLUT_glut_LIBRARY_RELEASE=%CD%\freeglut\%FREEGLUT_LIB% -DGLEXT_INCLUDE_DIR=%CD%\glext
- ninja -C build


# It's possible to setup notification here, as described in
# http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but
# doing so would cause the notification settings to be replicated across all
# repos, which is most likely undesired.  So it's better to rely on the
# Appveyor global/project notification settings.
