# Make Travis use docker (for faster builds, in theory).

language: cpp
os:
  - linux

dist: bionic
addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
      - llvm-toolchain-9
    packages:
      - clang-9
      - clang-format-9
      - llvm-9-dev
      - g++-8
      - python3
      - libc++-dev
      - libc++abi-dev
      - libgtk-3-dev
      - libpthread-stubs0-dev
      - libsdl2-dev
      #- libvulkan1
      #- libvulkan-dev
      - libx11-dev
      - liblz4-dev

jobs:
  include:
    - env: C_COMPILER=clang-9 CXX_COMPILER=clang++-9 LINT=true
    - env: C_COMPILER=clang-9 CXX_COMPILER=clang++-9 BUILD=true CONFIG=Debug
    - env: C_COMPILER=clang-9 CXX_COMPILER=clang++-9 BUILD=true CONFIG=Release

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

before_script:
  - export LIBVULKAN_VERSION=1.1.70
  - export CXX=$CXX_COMPILER
  - export CC=$C_COMPILER
  # Dump useful info.
  - $CXX --version
  - python3 --version
  - clang-format-9 --version
  - clang-format-9 -style=file -dump-config
  # Add Vulkan dependencies.
  - travis_retry wget http://mirrors.kernel.org/ubuntu/pool/universe/v/vulkan/libvulkan1_$LIBVULKAN_VERSION+dfsg1-1_amd64.deb
  - travis_retry wget http://mirrors.kernel.org/ubuntu/pool/universe/v/vulkan/libvulkan-dev_$LIBVULKAN_VERSION+dfsg1-1_amd64.deb
  - if [[ $BUILD == true ]]; then sudo dpkg -i libvulkan1_$LIBVULKAN_VERSION+dfsg1-1_amd64.deb libvulkan-dev_$LIBVULKAN_VERSION+dfsg1-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