summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 87b692bfb310537f8c7d20a0fac7abab6335658c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# 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
  
env:
  - LIBVULKAN_VERSION=1.0.61.1

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 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 our simple hello world test.
  - 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