sudo: required
dist: trusty
language: cpp

git:
  submodules: false

addons:
  apt:
    sources:
    - ubuntu-toolchain-r-test
    packages:
    - libasound2-dev
    - libfftw3-dev
    - libhunspell-dev
    - yasm
    - libfribidi-dev
    - libass-dev
    - libicu-dev
    - luarocks
    - g++-5

matrix:
  include:
    - compiler: gcc
      env: BOOST_VERSION=55
    - compiler: gcc
      env: BOOST_VERSION=60
      before_install:
        - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5 --slave /usr/bin/gcov gcov /usr/bin/gcov-5

install:
  # Can't install these via the apt addon due to the whitelist
  - sudo apt-get install -y -qq libffms2-dev libwxgtk3.0-dev libuchardet-dev

  - sudo pip install cpp-coveralls
  - sudo luarocks install busted > /dev/null
  - sudo luarocks install moonscript > /dev/null
  - sudo luarocks install uuid > /dev/null

  - git submodule --quiet init
  - git submodule --quiet update vendor/googletest

  - cd vendor
  - rm -rf boost
  - wget http://sourceforge.net/projects/boost/files/boost/1.${BOOST_VERSION}.0/boost_1_${BOOST_VERSION}_0.tar.bz2/download
  - tar xjf download
  - mv boost_1_${BOOST_VERSION}_0 boost
  - cd boost
  - ./bootstrap.sh
  - ./b2 -j3 -layout=system threading=multi cxxflags=-std=c++11 link=shared variant=release --without-python --without-iostreams --without-serialization --without-graph --without-log --without-math --without-signals --without-test --without-wave --without-mpi --without-program_options --without-graph_parallel --without-context --without-coroutine --without-random --without-timer --without-date_time
  - cd ../..

script:
  - export CPATH=$(pwd)/vendor/boost
  - export LD_LIBRARY_PATH=$(pwd)/vendor/boost/stage/lib:$LD_LIBRARY_PATH
  - export CPPFLAGS="-fprofile-arcs -ftest-coverage"
  - export LIBS="-lgcov"
  - autoreconf -if
  - ./configure BOOST_LDFLAGS="-L$(pwd)/vendor/boost/stage/lib" --enable-debug || cat config.log
  - make -j3 all test
  - coveralls --exclude vendor --exclude src --exclude build --exclude tools --exclude libaegisub/windows > /dev/null

notifications:
  email:
  - on_success: change
  - on_failure: change