language: cpp jobs: include: # Ubuntu Bionic (18.04) with GCC 7 - os: linux dist: bionic addons: apt: sources: - sourceline: 'ppa:deadsnakes/ppa' # for Python 3.7 (required by Meson) packages: - libgtest-dev - libboost-dev - python3.6 - python3-urllib3 - ninja-build before_install: - wget https://bootstrap.pypa.io/get-pip.py - /usr/bin/python3.6 get-pip.py --user --no-cache-dir install: - /usr/bin/python3.6 $HOME/.local/bin/pip install --user meson --no-cache-dir env: - MATRIX_EVAL="export PATH=\$HOME/.local/bin:\$PATH" # Ubuntu Bionic (18.04) with GCC 7 on big-endian - os: linux arch: s390x dist: bionic addons: apt: sources: - sourceline: 'ppa:deadsnakes/ppa' # for Python 3.7 (required by Meson) packages: - libgtest-dev - libboost-dev - python3.6 - python3-urllib3 - ninja-build before_install: - wget https://bootstrap.pypa.io/get-pip.py - /usr/bin/python3.6 get-pip.py --user --no-cache-dir install: - /usr/bin/python3.6 $HOME/.local/bin/pip install --user meson --no-cache-dir env: - MATRIX_EVAL="export PATH=\$HOME/.local/bin:\$PATH" # Ubuntu Bionic (18.04) with GCC 7 on ARM64 - os: linux arch: arm64 dist: bionic addons: apt: sources: - sourceline: 'ppa:deadsnakes/ppa' # for Python 3.7 (required by Meson) packages: - libgtest-dev - libboost-dev - python3.6 - python3-urllib3 - ninja-build before_install: - wget https://bootstrap.pypa.io/get-pip.py - /usr/bin/python3.6 get-pip.py --user --no-cache-dir install: - /usr/bin/python3.6 $HOME/.local/bin/pip install --user meson --no-cache-dir env: - MATRIX_EVAL="export PATH=\$HOME/.local/bin:\$PATH" # Ubuntu Trusty (16.04) with GCC 6 - os: linux dist: trusty addons: apt: sources: - ubuntu-toolchain-r-test - sourceline: 'ppa:mhier/libboost-latest' - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' - sourceline: 'ppa:deadsnakes/ppa' # for Python 3.7 (required by Meson) packages: - g++-6 - libgtest-dev - boost1.67 - python3.6 - python3-urllib3 - ninja-build before_install: - wget https://bootstrap.pypa.io/get-pip.py - /usr/bin/python3.6 get-pip.py --user --no-cache-dir install: - /usr/bin/python3.6 $HOME/.local/bin/pip install --user meson --no-cache-dir env: # use gold as workaround for https://sourceware.org/bugzilla/show_bug.cgi?id=17068 - MATRIX_EVAL="export CC='ccache gcc-6' CXX='ccache g++-6' LDFLAGS=-fuse-ld=gold PATH=\$HOME/.local/bin:\$PATH" # Ubuntu Trusty (16.04) with GCC 8 - os: linux dist: trusty addons: apt: sources: - ubuntu-toolchain-r-test - sourceline: 'ppa:mhier/libboost-latest' - sourceline: 'ppa:mstipicevic/ninja-build-1-7-2' - sourceline: 'ppa:deadsnakes/ppa' # for Python 3.7 (required by Meson) packages: - g++-8 - libgtest-dev - boost1.67 - python3.6 - python3-urllib3 - ninja-build before_install: - wget https://bootstrap.pypa.io/get-pip.py - /usr/bin/python3.6 get-pip.py --user --no-cache-dir install: - /usr/bin/python3.6 $HOME/.local/bin/pip install --user meson --no-cache-dir env: # use gold as workaround for https://sourceware.org/bugzilla/show_bug.cgi?id=17068 - MATRIX_EVAL="export CC='ccache gcc-8' CXX='ccache g++-8' LDFLAGS=-fuse-ld=gold PATH=\$HOME/.local/bin:\$PATH" - os: osx osx_image: xcode9.4 addons: homebrew: packages: - ccache - meson - icu4c - ffmpeg - libnfs - yajl - libupnp - libid3tag - chromaprint - libsamplerate - libsoxr # libzzip appears to be broken on Homebrew: "ld: library not found for -lzzip" #- libzzip - flac - opus - libvorbis - faad2 - wavpack - libmpdclient update: true env: - MATRIX_EVAL="export PATH=/usr/local/opt/ccache/libexec:$PATH HOMEBREW_NO_ANALYTICS=1" cache: apt: true ccache: true directories: - $HOME/Library/Caches/Homebrew before_cache: - test "$TRAVIS_OS_NAME" != "osx" || brew cleanup before_install: - eval "${MATRIX_EVAL}" install: # C++14 # Work around "Target /usr/local/lib/libgtest.a is a symlink # belonging to nss. You can unlink it" during gtest install - test "$TRAVIS_OS_NAME" != "osx" || brew unlink nss - test "$TRAVIS_OS_NAME" != "osx" || brew install https://gist.githubusercontent.com/Kronuz/96ac10fbd8472eb1e7566d740c4034f8/raw/gtest.rb before_script: - ccache -s script: - eval "${MATRIX_EVAL}" - OPTIONS="-Dtest=true" - meson . output --werror $OPTIONS - ninja -C output -v test - ccache -s