language: c++ matrix: include: - os: linux dist: trusty sudo: required compiler: gcc - os: osx 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 - libqt5opengl5-dev - libqt5sql5-sqlite - libqt5svg5-dev - 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 - qt5-default - qtscript5-dev - libqt5x11extras5-dev - scons - vamp-plugin-sdk - qtkeychain-dev - liblilv-dev 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 libmodplug libid3tag libmad mp4v2 faad2 wavpack opusfile lilv; fi install: #### # Common # Build flags common to OS X and Linux. # Parallel builds are important for avoiding OSX build timeouts. # We turn off verbose output to avoid going over the 4MB output limit. - export COMMON="-j4 qt5=1 test=1 mad=1 faad=1 ffmpeg=1 opus=1 modplug=1 wv=1 hss1394=0 virtualize=0 debug_assertions_fatal=1 verbose=0" ##### # Ubuntu Trusty Build #### # OS X Build # Define QTDIR. - 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): 2016-11-15 we are experiencing Travis timeouts for the OSX # build. Turning off optimizations to see if that speeds up compile times. # 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 localecompare=0" ; fi - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export EXTRA_FLAGS="localecompare=1" ; fi #### # Common Build - scons $COMMON $EXTRA_FLAGS script: # NOTE(sblaisot): 2018-01-02 removing gdb wrapper on linux due to a bug in # return code in order to avoid having a successful build when a test fail. # https://bugs.launchpad.net/mixxx/+bug/1699689 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./mixxx-test ; fi # lldb doesn't provide an easy way to exit 1 on error: # https://bugs.llvm.org/show_bug.cgi?id=27326 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then lldb ./mixxx-test --batch -o run -o quit -k 'thread backtrace all' -k "script import os; os._exit(1)" ; fi notifications: webhooks: - https://mixxx.zulipchat.com/api/v1/external/travis?stream=travis&topic=build-status&api_key=$ZULIP_API_KEY