Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
133 lines (115 sloc) 4.32 KB
# Kodi's travis-ci.org integration file
# TODO:
# integrate with slack
# make it perfect... or not ;-r
language: cpp
# Define the build matrix
#
# Travis defaults to building on Ubuntu Precise when building on Linux. We need Trusty in order to get up
# to date versions of cmake and g++.
#
os: linux
dist: trusty
sudo: required
compiler:
- gcc
- clang
env:
- BUILD=Kodi TOOLS=CMake
# - ADDONS=adsp
# - ADDONS=audiodecoder
# - ADDONS=audioencoder
# - ADDONS=pvr
# - ADDONS=screensaver
# - ADDONS=visualization
matrix:
fast_finish: true
allow_failures:
# - env: ADDONS=adsp
# - env: ADDONS=audiodecoder
# - env: ADDONS=audioencoder
# - env: ADDONS=pvr
# - env: ADDONS=screensaver
# - env: ADDONS=visualization
# Prepare system
#
# Prepare the system to install prerequisites or dependencies
#
before_install:
# Prune non-root Python from PATH. Solves https://github.com/travis-ci/travis-ci/issues/4948
# see: https://github.com/travis-ci/travis-ci/issues/5326
- export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")
# Linux
#
# Install team-xbmc/xbmc-ppa-build-depends for some dependencies and ppa:wsnipex/vaapi for libda-dev 1.6.0.
# Stupid libda-dev 1.3.0 does not work on Trusty.
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$BUILD" == "Kodi" ]]; then
sudo add-apt-repository -y ppa:team-xbmc/xbmc-ppa-build-depends &&
sudo add-apt-repository -y ppa:wsnipex/vaapi &&
sudo add-apt-repository -y ppa:george-edison55/cmake-3.x &&
sudo add-apt-repository -y ppa:pulse-eight/libcec &&
sudo apt-get update -qq;
fi
# Install dependencies
#
# Install any prerequisites or dependencies necessary to run our builds
#
install:
# Linux dependencies
#
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$BUILD" == "Kodi" ]]; then
sudo apt-get install -qq automake autopoint build-essential cmake curl default-jre gawk gdb gdc
gettext git-core gperf libasound2-dev libass-dev libbz2-dev libcap-dev libcdio-dev libcec4-dev libcrossguid-dev libcurl3
libcurl4-openssl-dev libdbus-1-dev libfontconfig-dev libegl1-mesa-dev libfreetype6-dev libfribidi-dev libgif-dev
libiso9660-dev libjpeg-dev libltdl-dev liblzo2-dev libmicrohttpd-dev libmysqlclient-dev libnfs-dev
libpcre3-dev libplist-dev libpng-dev libpulse-dev libsdl2-dev libsmbclient-dev libsqlite3-dev libssh-dev
libssl-dev libtag1-dev libtinyxml-dev libtool libudev-dev libusb-dev libva-dev libvdpau-dev
libxml2-dev libxmu-dev libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libyajl-dev mesa-utils
nasm pmount python-dev python-imaging python-sqlite swig unzip uuid-dev yasm zip zlib1g-dev;
fi
# Prepare builds
#
before_script:
# Linux
#
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$BUILD" == "Kodi" ]]; then
ulimit -c unlimited -S;
mkdir $TRAVIS_BUILD_DIR/build &&
cd $TRAVIS_BUILD_DIR/build;
fi
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$BUILD" == "Kodi" && "$CXX" == "g++" ]]; then
cmake -DCMAKE_BUILD_TYPE=Debug ..;
fi
- if [[ "$TRAVIS_OS_NAME" == "linux" && "$BUILD" == "Kodi" && "$CXX" == "clang++" ]]; then
cmake -DCMAKE_CXX_FLAGS="-Qunused-arguments" ..;
fi
- if [[ "$BUILD" != "Kodi" ]] && [[ "$ADDONS" == "adsp" || "$ADDONS" == "audiodecoder" || "$ADDONS" == "audioencoder" ||
"$ADDONS" == "pvr" || "$ADDONS" == "screensaver" || "$ADDONS" == "visualization" ]]; then
cd $TRAVIS_BUILD_DIR/cmake/addons &&
mkdir -p build &&
cd build/ &&
cmake ../bootstrap -DCMAKE_BUILD_TYPE=Debug &&
make -j4;
fi
# Actually build
#
script:
- if [[ "$BUILD" == "Kodi" ]]; then
make -j4 &&
make check;
fi
- if [[ "$BUILD" != "Kodi" ]] && [[ "$ADDONS" == "adsp" || "$ADDONS" == "audiodecoder" || "$ADDONS" == "audioencoder" ||
"$ADDONS" == "pvr" || "$ADDONS" == "screensaver" || "$ADDONS" == "visualization" ]]; then
cd $TRAVIS_BUILD_DIR/ &&
mkdir -p build &&
cmake -DADDONS_TO_BUILD="$ADDONS".* -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../addons $TRAVIS_BUILD_DIR/cmake/addons &&
make -j4;
fi
after_failure:
- COREFILE=$(find . -maxdepth 1 -name "core*" | head -n 1)
- if [[ -f "$COREFILE" ]]; then
gdb -c "$COREFILE" kodi-test -ex "thread apply all bt" -ex "set pagination 0" -batch;
fi
# Disable annoying emails
notifications:
email: false