Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

129 lines (123 sloc) 5.659 kb
language: cpp
before_install:
# LLVM 3.2
- sudo sh -c "echo 'deb http://archive.ubuntu.com/ubuntu/ precise-proposed restricted main multiverse universe' >> /etc/apt/sources.list"
# Some random Launchpad PPA for LLVM/clang 3.3/3.4, should consider replacing this with
# the official Clang binary package from the llvm.org download page.
- echo yes | sudo add-apt-repository ppa:h-rayflood/llvm
# LLVM 3.4 / 3.5 / 3.6 / snapshots
- sudo sh -c "echo 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.4 main' >> /etc/apt/sources.list"
- sudo sh -c "echo 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.5 main' >> /etc/apt/sources.list"
- sudo sh -c "echo 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise-3.6-binaries main' >> /etc/apt/sources.list"
- sudo sh -c "echo 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise main' >> /etc/apt/sources.list"
- wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
# g++4.8.1
- if [ "$CXX" == "g++" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
install:
- sudo apt-get update -qq
- sudo apt-get install -qq $LLVM_PACKAGE libconfig++8-dev
-
if [[ "${OPTS}" == *MULTILIB*ON* ]]; then
sudo apt-get install -qq gcc-multilib libcurl3:i386 libstdc++6:i386;
fi
-
if [[ "${OPTS}" == *MULTILIB*ON* ]]; then
sudo ln -s /usr/lib/i386-linux-gnu/libcurl.so.4.2.0 /usr/lib/i386-linux-gnu/libcurl.so;
fi
-
if [[ "${OPTS}" == *MULTILIB*ON* ]]; then
sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/i386-linux-gnu/libstdc++.so;
fi
-
if [[ "${LLVM_PACKAGE}" == *3\.[567]* ]] && [[ "${CXX}" == "g++" ]]; then
sudo apt-get install -qq g++-4.9; export CXX="g++-4.9";
fi
-
if [[ "${LLVM_PACKAGE}" == *3\.[567]* ]] && [[ "${CXX}" == "clang++" ]]; then
sudo apt-get install --allow-unauthenticated -qq clang-3.4; export CXX="clang++-3.4";
fi
-
if [[ "${OPTS}" == *TEST_COVERAGE*ON* ]]; then
sudo pip install cpp-coveralls;
fi
env:
- LLVM_PACKAGE="llvm-3.1 llvm-3.1-dev"
- LLVM_PACKAGE="llvm-3.2 llvm-3.2-dev"
- LLVM_PACKAGE="llvm-3.3 llvm-3.3-dev" TEST_DEBUG=1
- LLVM_PACKAGE="llvm-3.3 llvm-3.3-dev"
- LLVM_PACKAGE="llvm-3.4 llvm-3.4-dev" TEST_DEBUG=1
- LLVM_PACKAGE="llvm-3.4 llvm-3.4-dev" TEST_DEBUG=1 OPTS="-DBUILD_SHARED_LIBS=ON"
- LLVM_PACKAGE="llvm-3.4 llvm-3.4-dev" OPTS="-DBUILD_SHARED_LIBS=ON"
- LLVM_PACKAGE="llvm-3.5 llvm-3.5-dev libedit2 libedit-dev" TEST_DEBUG=1
- LLVM_PACKAGE="llvm-3.5 llvm-3.5-dev libedit2 libedit-dev"
- LLVM_PACKAGE="llvm-3.5 llvm-3.5-dev libedit2 libedit-dev" OPTS="-DTEST_COVERAGE=ON"
- LLVM_PACKAGE="llvm-3.6 llvm-3.6-dev libedit2 libedit-dev" TEST_DEBUG=1
- LLVM_PACKAGE="llvm-3.6 llvm-3.6-dev libedit2 libedit-dev"
- LLVM_PACKAGE="llvm-3.7 llvm-3.7-dev libedit2 libedit-dev" TEST_DEBUG=1
- LLVM_PACKAGE="llvm-3.7 llvm-3.7-dev libedit2 libedit-dev"
matrix:
allow_failures:
- env: LLVM_PACKAGE="llvm-3.4 llvm-3.4-dev" OPTS="-DMULTILIB=ON" TEST_BITNESS=32
- env: LLVM_PACKAGE="llvm-3.4 llvm-3.4-dev" OPTS="-DMULTILIB=ON" TEST_BITNESS=64
- env: LLVM_PACKAGE="llvm-3.6 llvm-3.6-dev libedit2 libedit-dev" TEST_DEBUG=1
- env: LLVM_PACKAGE="llvm-3.6 llvm-3.6-dev libedit2 libedit-dev"
- env: LLVM_PACKAGE="llvm-3.7 llvm-3.7-dev libedit2 libedit-dev" TEST_DEBUG=1
- env: LLVM_PACKAGE="llvm-3.7 llvm-3.7-dev libedit2 libedit-dev"
script:
- cmake $OPTS .
- make -j2
# Outputs some environment info, plus makes sure we only run the test suite
# if we could actually build the executable.
- bin/ldc2 -version || exit 1
# We need to run the druntime/phobos unittest build targets and the testsuite
# with output shown (--verbose), because we hit the non-configurable Travis
# "silence timeout" of 10 minutes otherwise. So much for "no news is good
# news".
# Also, we need to split up the multilib release mode tests into 32 bit and
# 64 bit tests to avoid the hard 50 minutes time limit. This is just about
# the most wasteful solution possible, but the one officially suggested by
# Travis.
# The below is atrociously complex, but a simpler solution that works with
# CTest's inept implementation of regular expressions and -R/-E was hard to
# find.
-
if [[ "${TEST_BITNESS}" == "32" ]]; then
need_32="-32";
elif [[ "${TEST_BITNESS}" == "64" ]]; then
need_32="";
else
need_32="(-32)?";
fi;
if [[ -z "${TEST_DEBUG}" ]]; then
export BUILD_SEL="-R (dmd-testsuite${need_32}$)|(build-(druntime|phobos2)-ldc-unittest${need_32}$)";
export RUN_SEL="-E (dmd-testsuite)|(-debug(-32)?$)";
if [[ "${TEST_BITNESS}" == "32" ]]; then
export RUN_SEL="-R -32$ ${RUN_SEL}";
elif [[ "${TEST_BITNESS}" == "64" ]]; then
export RUN_SEL="-E (dmd-testsuite)|(((-debug)|(-32))$)";
fi;
else
export BUILD_SEL="-R (dmd-testsuite-debug${need_32}$)|(build-(druntime|phobos2)-ldc-unittest-debug${need_32}$)";
export RUN_SEL="-R debug${need_32}$ -E dmd-testsuite";
fi;
- ctest -j2 --verbose ${BUILD_SEL}
- ctest -j2 --output-on-failure ${RUN_SEL}
after_success:
-
if [[ "${OPTS}" == *TEST_COVERAGE*ON* ]]; then
coveralls -e runtime -e tests -e vcbuild --gcov gcov-4.9 --gcov-options '\-lp' > /dev/null 2>&1;
fi
notifications:
# Temporarily disabled due to time limit problems.
# email:
# recipients:
# - "ldc-dev@googlegroups.com"
# on_success: never
# on_failure: change
irc:
channels:
- "irc.freenode.org#ldc"
on_success: always
on_failure: always
use_notice: false
skip_join: true
Jump to Line
Something went wrong with that request. Please try again.