# Make Travis use docker (for faster builds, in theory).
# TODO(benvanik): re-enable when clang-3.8 is whitelisted.
# https://github.com/travis-ci/apt-package-whitelist/issues/474
#sudo: false

language: cpp
os:
  - linux
  # - osx

sudo: required
dist: trusty
addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
      - llvm-toolchain-trusty-4.0
    packages:
      - clang-4.0
      - llvm-4.0-dev
      - g++-5
      - python3
      - libc++-dev
      - libc++abi-dev
      - libglew-dev
      - libgtk-3-dev
      - libpthread-stubs0-dev
      #- libvulkan1
      #- libvulkan-dev
      - libx11-dev
      - liblz4-dev

matrix:
  include:
    - env: C_COMPILER=clang-4.0 CXX_COMPILER=clang++-4.0 LINT=true
      sudo: false
    - env: C_COMPILER=clang-4.0 CXX_COMPILER=clang++-4.0 BUILD=true CONFIG=Debug
    - env: C_COMPILER=clang-4.0 CXX_COMPILER=clang++-4.0 BUILD=true CONFIG=Release

git:
  # We handle submodules ourselves in xenia-build setup.
  submodules: false

before_script:
  - export LIBVULKAN_VERSION=1.0.61.1
  - export CXX=$CXX_COMPILER
  - export CC=$C_COMPILER
  # Dump useful info.
  - $CXX --version
  - python3 --version
  # Add Vulkan dependencies
  - travis_retry wget http://mirrors.kernel.org/ubuntu/pool/universe/v/vulkan/libvulkan1_$LIBVULKAN_VERSION+dfsg1-1ubuntu1~16.04.1_amd64.deb
  - travis_retry wget http://mirrors.kernel.org/ubuntu/pool/universe/v/vulkan/libvulkan-dev_$LIBVULKAN_VERSION+dfsg1-1ubuntu1~16.04.1_amd64.deb
  - if [[ $BUILD == true ]]; then sudo dpkg -i libvulkan1_$LIBVULKAN_VERSION+dfsg1-1ubuntu1~16.04.1_amd64.deb libvulkan-dev_$LIBVULKAN_VERSION+dfsg1-1ubuntu1~16.04.1_amd64.deb; fi
  # Prepare environment (pull dependencies, build tools).
  - travis_retry ./xenia-build setup

script:
  # Run linter.
  - if [[ $LINT == true ]]; then ./xenia-build lint --all; fi
  
  # Build and run base tests
  - if [[ $BUILD == true ]]; then ./xenia-build build --config=$CONFIG --target=xenia-base-tests; fi
  - if [[ $BUILD == true ]]; then ./build/bin/Linux/$CONFIG/xenia-base-tests; fi
  # Build and run ppc tests
  - if [[ $BUILD == true ]]; then ./xenia-build build --config=$CONFIG --target=xenia-cpu-ppc-tests; fi
  # - if [[ $BUILD == true ]]; then ./build/bin/Linux/$CONFIG/xenia-cpu-ppc-tests --log_file=stdout; fi

  # Build all of xenia.
  - if [[ $BUILD == true ]]; then ./xenia-build build --config=$CONFIG; fi
  # All tests (without haswell support).
  #- ./xenia-build test --config=debug --no-build -- --enable_haswell_instructions=false
  # All tests (with haswell support).
  #- ./xenia-build test --config=debug --no-build -- --enable_haswell_instructions=true