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 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 # instead of . - 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