summaryrefslogtreecommitdiffstats
path: root/.travis.yml
blob: d5a9fa616e046a2d50f495978285c520360ff0de (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
77
78
79
80
81
82
83
84
85
86
87
88
89
language: c++
matrix:
  include:
    - os: linux
      dist: trusty
      sudo: required
      compiler: gcc

    - os: osx
      osx_image: xcode7.3
      compiler: clang
# install dependencies
addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - gdb
      - libavformat-dev
      - libchromaprint-dev
      - libfaad-dev
      - libfftw3-dev
      - libflac-dev
      - libid3tag0-dev
      - libmad0-dev
      - libmodplug-dev
      - libmp4v2-dev
      - libopusfile-dev
      - libportmidi-dev
      - libprotobuf-dev
      - libqt4-dev
      - libqt4-opengl-dev
      - libqt4-sql-sqlite
      - librubberband-dev
      - libshout3-dev
      - libsndfile1-dev
      - libsqlite3-dev
      - libtag1-dev
      - libupower-glib-dev
      - libusb-1.0-0-dev
      - libvamp-hostsdk3
      - libwavpack-dev
      - portaudio19-dev
      - protobuf-compiler
      - scons
      - vamp-plugin-sdk
before_install:
  # Virtual X, needed for analyzer waveform tests
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export DISPLAY=:99.0         ; fi
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sh -e /etc/init.d/xvfb start ; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update ; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install scons portaudio libsndfile libogg libvorbis portmidi taglib libshout protobuf flac ffmpeg libjpeg qt chromaprint rubberband fftw libmodplug libid3tag libmad mp4v2 faad2 wavpack opusfile; fi

install:
  ####
  # Common

  # Build flags common to OS X and Linux.
  - export COMMON="test=1 mad=1 faad=1 ffmpeg=1 opus=1 modplug=1 wv=1 hss1394=0 virtualize=0 debug_assertions_fatal=1"

  #####
  # Ubuntu Trusty Build

  ####
  # OS X Build

  # Define QTDIR. Homebrew does not support Qt4 anymore, so /usr/local/Cellar/qt stores Qt5 installs.
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export QTDIR=$(find /usr/local/Cellar/qt -d 1 | tail -n 1) ; fi

  # Workaround for bug in libopus's opus.h including <opus_multistream.h>
  # instead of <opus/opus_multistream.h>.
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export CXXFLAGS="-isystem /usr/local/include/opus" ; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export CFLAGS="-isystem /usr/local/include/opus" ; fi

  # NOTE(rryan): 11/15/2016 we are experiencing Travis timeouts for the OSX
  # build.  Turning off optimizations to see if that speeds up compile times. We
  # also need to avoid going over 4MB of output so we turn off verbose mode.
  # NOTE(rryan): 12/31/2016 Homebrew has dropped qt4 support. Build with qt5.
  # TODO(rryan): localecompare doesn't work on Travis with qt5 for some reason.
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export EXTRA_FLAGS="optimize=none asan=0 verbose=0 qt5=1 localecompare=0" ; fi
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export EXTRA_FLAGS="localecompare=1" ; fi

  ####
  # Common Build
  - scons $COMMON $EXTRA_FLAGS

script:
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then gdb --batch -ex run -ex "thread apply all bt full" -ex quit ./mixxx-test ; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then lldb ./mixxx-test --batch -o run -o quit -k 'thread backtrace all' -k quit ; fi