mirror of
https://github.com/xemu-project/xemu.git
synced 2024-12-02 16:46:59 +00:00
adcf96830d
We have reached the point where the MacOSX build was regularly timing out. So as before I've reduced the target list to "major" architectures to try and bring the build time down. I've added an additional MacOSX build with the latest XCode with a minimal list of "most likely" targets on MacOS. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
186 lines
6.0 KiB
YAML
186 lines
6.0 KiB
YAML
# The current Travis default is a container based 14.04 Trust on EC2
|
|
# Additional builds with specific requirements for a full VM need to
|
|
# be added as additional matrix: entries later on
|
|
sudo: false
|
|
dist: trusty
|
|
language: c
|
|
python:
|
|
- "2.6"
|
|
compiler:
|
|
- gcc
|
|
cache: ccache
|
|
addons:
|
|
apt:
|
|
packages:
|
|
# Build dependencies
|
|
- libaio-dev
|
|
- libattr1-dev
|
|
- libbrlapi-dev
|
|
- libcap-ng-dev
|
|
- libgcc-4.8-dev
|
|
- libgnutls-dev
|
|
- libgtk-3-dev
|
|
- libiscsi-dev
|
|
- liblttng-ust-dev
|
|
- libncurses5-dev
|
|
- libnfs-dev
|
|
- libnss3-dev
|
|
- libpixman-1-dev
|
|
- libpng12-dev
|
|
- librados-dev
|
|
- libsdl1.2-dev
|
|
- libseccomp-dev
|
|
- libspice-protocol-dev
|
|
- libspice-server-dev
|
|
- libssh2-1-dev
|
|
- liburcu-dev
|
|
- libusb-1.0-0-dev
|
|
- libvte-2.90-dev
|
|
- sparse
|
|
- uuid-dev
|
|
- gcovr
|
|
|
|
# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
|
|
# to prevent IRC notifications from forks. This was created using:
|
|
# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu"
|
|
notifications:
|
|
irc:
|
|
channels:
|
|
- secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
|
|
on_success: change
|
|
on_failure: always
|
|
env:
|
|
global:
|
|
- SRC_DIR="."
|
|
- BUILD_DIR="."
|
|
- TEST_CMD="make check"
|
|
- MAKEFLAGS="-j3"
|
|
matrix:
|
|
- CONFIG="--disable-system"
|
|
- CONFIG="--disable-user"
|
|
- CONFIG="--enable-debug --enable-debug-tcg"
|
|
- CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb --disable-user"
|
|
- CONFIG="--enable-modules --disable-linux-user"
|
|
- CONFIG="--with-coroutine=ucontext --disable-linux-user"
|
|
- CONFIG="--with-coroutine=sigaltstack --disable-linux-user"
|
|
git:
|
|
# we want to do this ourselves
|
|
submodules: false
|
|
before_install:
|
|
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update ; fi
|
|
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install libffi gettext glib pixman ; fi
|
|
- git submodule update --init --recursive capstone dtc ui/keycodemapdb
|
|
before_script:
|
|
- mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
|
|
- ${SRC_DIR}/configure ${CONFIG} || { cat config.log && exit 1; }
|
|
script:
|
|
- make ${MAKEFLAGS} && ${TEST_CMD}
|
|
matrix:
|
|
include:
|
|
# Test out-of-tree builds
|
|
- env: CONFIG="--enable-debug --enable-debug-tcg"
|
|
BUILD_DIR="out-of-tree/build/dir" SRC_DIR="../../.."
|
|
# Test with Clang for compile portability (Travis uses clang-5.0)
|
|
- env: CONFIG="--disable-system"
|
|
compiler: clang
|
|
- env: CONFIG="--disable-user"
|
|
compiler: clang
|
|
# gprof/gcov are GCC features
|
|
- env: CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
|
|
after_success:
|
|
- ${SRC_DIR}/scripts/travis/coverage-summary.sh
|
|
compiler: gcc
|
|
# We manually include builds which we disable "make check" for
|
|
- env: CONFIG="--enable-debug --enable-tcg-interpreter"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
# We don't need to exercise every backend with every front-end
|
|
- env: CONFIG="--enable-trace-backends=log,simple,syslog --disable-system"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG="--enable-trace-backends=ftrace --target-list=x86_64-softmmu"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG="--enable-trace-backends=ust --target-list=x86_64-softmmu"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG="--disable-tcg"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
# MacOSX builds
|
|
- env: CONFIG="--target-list=aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
|
|
os: osx
|
|
osx_image: xcode9.4
|
|
compiler: clang
|
|
- env: CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
|
|
os: osx
|
|
osx_image: xcode10
|
|
compiler: clang
|
|
# Python builds
|
|
- env: CONFIG="--target-list=x86_64-softmmu"
|
|
python:
|
|
- "3.0"
|
|
- env: CONFIG="--target-list=x86_64-softmmu"
|
|
python:
|
|
- "3.6"
|
|
# Acceptance (Functional) tests
|
|
- env: CONFIG="--python=/usr/bin/python3 --target-list=x86_64-softmmu"
|
|
TEST_CMD="make AVOCADO_SHOW=app check-acceptance"
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- python3-pip
|
|
- python3.4-venv
|
|
# Using newer GCC with sanitizers
|
|
- addons:
|
|
apt:
|
|
update: true
|
|
sources:
|
|
# PPAs for newer toolchains
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
# Extra toolchains
|
|
- gcc-7
|
|
- g++-7
|
|
# Build dependencies
|
|
- libaio-dev
|
|
- libattr1-dev
|
|
- libbrlapi-dev
|
|
- libcap-ng-dev
|
|
- libgnutls-dev
|
|
- libgtk-3-dev
|
|
- libiscsi-dev
|
|
- liblttng-ust-dev
|
|
- libnfs-dev
|
|
- libncurses5-dev
|
|
- libnss3-dev
|
|
- libpixman-1-dev
|
|
- libpng12-dev
|
|
- librados-dev
|
|
- libsdl1.2-dev
|
|
- libseccomp-dev
|
|
- libspice-protocol-dev
|
|
- libspice-server-dev
|
|
- libssh2-1-dev
|
|
- liburcu-dev
|
|
- libusb-1.0-0-dev
|
|
- libvte-2.90-dev
|
|
- sparse
|
|
- uuid-dev
|
|
language: generic
|
|
compiler: none
|
|
env:
|
|
- COMPILER_NAME=gcc CXX=g++-7 CC=gcc-7
|
|
- CONFIG="--cc=gcc-7 --cxx=g++-7 --disable-pie --disable-linux-user"
|
|
- TEST_CMD=""
|
|
before_script:
|
|
- ./configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; }
|
|
- env:
|
|
- CONFIG="--disable-system --disable-docs"
|
|
- TEST_CMD="make check-tcg"
|
|
script:
|
|
- make ${MAKEFLAGS} && ${TEST_CMD} ${MAKEFLAGS}
|
|
sudo: required
|
|
dist: trusty
|
|
compiler: gcc
|