From 2d82cd3371f0f617a64fb46eeee04caa16944f71 Mon Sep 17 00:00:00 2001 From: Paul Date: Sun, 26 Jun 2016 12:52:24 -0500 Subject: [PATCH] Add clang again --- .travis.yml | 113 ++++++++++++++++++++++++++++------------------------ 1 file changed, 62 insertions(+), 51 deletions(-) diff --git a/.travis.yml b/.travis.yml index abe1e98..5c57b58 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,42 +25,32 @@ matrix: compiler: clang addons: *clang34 - # - env: CLANG_VERSION=3.5 ASAN=on LIBCXX=on - # os: linux - # compiler: clang-3.5 - # addons: &clang35 - # apt: - # packages: - # - util-linux - # - clang-3.5 - # - valgrind - # sources: - # - ubuntu-toolchain-r-test - # - llvm-toolchain-precise-3.5 + - env: CLANG_VERSION=3.5 ASAN=on LIBCXX=on + os: linux + compiler: clang + addons: &clang + apt: + packages: + - g++-4.9 + - util-linux + - valgrind + sources: + - ubuntu-toolchain-r-test - # - env: CLANG_VERSION=3.5 ASAN=on LIBCXX=off - # os: linux - # compiler: clang-3.5 - # addons: *clang35 + - env: CLANG_VERSION=3.5 ASAN=on LIBCXX=off + os: linux + compiler: clang + addons: *clang - # - env: CLANG_VERSION=3.7 ASAN=off LIBCXX=on BUILD_EXAMPLES=on - # os: linux - # compiler: clang-3.7 - # addons: &clang37 - # apt: - # packages: - # - util-linux - # - clang-3.7 - # - valgrind - # - python - # sources: - # - ubuntu-toolchain-r-test - # - llvm-toolchain-precise-3.7 + - env: CLANG_VERSION=3.7 ASAN=off LIBCXX=on BUILD_EXAMPLES=on + os: linux + compiler: clang + addons: *clang - # - env: CLANG_VERSION=3.7 ASAN=off LIBCXX=off BUILD_EXAMPLES=on - # os: linux - # compiler: clang-3.7 - # addons: *clang37 + - env: CLANG_VERSION=3.7 ASAN=off LIBCXX=off BUILD_EXAMPLES=on + os: linux + compiler: clang + addons: *clang # Gcc - env: GCC_VERSION=4.9 ASAN=off LIBCXX=off @@ -108,10 +98,17 @@ matrix: sources: - ubuntu-toolchain-r-test +cache: + directories: + - ${TRAVIS_BUILD_DIR}/deps/llvm-3.5.2 + - ${TRAVIS_BUILD_DIR}/deps/llvm-3.6.2 + - ${TRAVIS_BUILD_DIR}/deps/llvm-3.7.1 + - ${TRAVIS_BUILD_DIR}/deps/llvm-3.8.0 + install: - export CHECKOUT_PATH=`pwd`; - if [ -n "$GCC_VERSION" ]; then export CXX="g++-${GCC_VERSION}" CC="gcc-${GCC_VERSION}"; fi - - if [ -n "$CLANG_VERSION" ]; then export CXX="clang++-${CLANG_VERSION}" CC="clang-${CLANG_VERSION}"; fi + - if [ -n "$CLANG_VERSION" ]; then export CXX="clang++" CC="clang"; fi - if [[ "$CLANG_VERSION" == "3.4" ]]; then export CXX="/usr/local/clang-3.4/bin/clang++" CC="/usr/local/clang-3.4/bin/clang"; fi # Setup deps directory - export DEPS_DIR="${TRAVIS_BUILD_DIR}/deps" @@ -121,6 +118,31 @@ install: # Install cmake - CMAKE_URL="http://www.cmake.org/files/v3.3/cmake-3.3.1-Linux-x86_64.tar.gz" - if [[ "$LIBCXX" == "on" ]]; then travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C usr; fi + ############################################################################ + # Install Clang, libc++ and libc++abi + ############################################################################ + - LLVM_DIR=${DEPS_DIR}/llvm-${LLVM_VERSION} + - if [[ "${CLANG_VERSION}" == "3.5" ]]; then LLVM_VERSION="3.5.2"; fi + - if [[ "${CLANG_VERSION}" == "3.6" ]]; then LLVM_VERSION="3.6.2"; fi + - if [[ "${CLANG_VERSION}" == "3.7" ]]; then LLVM_VERSION="3.7.0"; fi + - if [[ "${CLANG_VERSION}" == "3.8" ]]; then LLVM_VERSION="3.8.0"; fi + - | + if [[ "${LLVM_VERSION}" != "" ]]; then + export PATH="${LLVM_DIR}/clang/bin:${PATH}" + if [[ -z "$(ls -A ${LLVM_DIR})" ]]; then + LLVM_URL="http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz" + LIBCXX_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxx-${LLVM_VERSION}.src.tar.xz" + LIBCXXABI_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxxabi-${LLVM_VERSION}.src.tar.xz" + mkdir -p ${LLVM_DIR} ${LLVM_DIR}/build ${LLVM_DIR}/projects/libcxx ${LLVM_DIR}/projects/libcxxabi ${LLVM_DIR}/clang + travis_retry wget --quiet -O - ${LLVM_URL} | tar --strip-components=1 -xJ -C ${LLVM_DIR}/clang + travis_retry wget --quiet -O - ${LIBCXX_URL} | tar --strip-components=1 -xJ -C ${LLVM_DIR}/projects/libcxx + travis_retry wget --quiet -O - ${LIBCXXABI_URL} | tar --strip-components=1 -xJ -C ${LLVM_DIR}/projects/libcxxabi + + (cd ${LLVM_DIR}/build && cmake .. -DCMAKE_INSTALL_PREFIX=${LLVM_DIR}/usr -DCMAKE_CXX_COMPILER=clang++) + (cd ${LLVM_DIR}/build/projects/libcxx && make install -j4) + (cd ${LLVM_DIR}/build/projects/libcxxabi && make install -j4) + fi + fi # Show compiler info - $CXX --version - which $CXX @@ -128,26 +150,15 @@ install: - which $CC - which cmake - cmake --version - # Install libc++ + + + + # Use libc++ - | if [[ "$LIBCXX" == "on" ]]; then - if [[ "${CLANG_VERSION}" == "3.5" ]]; then LLVM_VERSION="3.5.2"; fi - if [[ "${CLANG_VERSION}" == "3.6" ]]; then LLVM_VERSION="3.6.2"; fi - if [[ "${CLANG_VERSION}" == "3.7" ]]; then LLVM_VERSION="3.7.0"; fi - LLVM_URL="http://llvm.org/releases/${LLVM_VERSION}/llvm-${LLVM_VERSION}.src.tar.xz" - LIBCXX_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxx-${LLVM_VERSION}.src.tar.xz" - LIBCXXABI_URL="http://llvm.org/releases/${LLVM_VERSION}/libcxxabi-${LLVM_VERSION}.src.tar.xz" - - mkdir -p llvm llvm/build llvm/projects/libcxx llvm/projects/libcxxabi - travis_retry wget --quiet -O - ${LLVM_URL} | tar --strip-components=1 -x --xz -C llvm - travis_retry wget --quiet -O - ${LIBCXX_URL} | tar --strip-components=1 -x --xz -C llvm/projects/libcxx - travis_retry wget --quiet -O - ${LIBCXXABI_URL} | tar --strip-components=1 -x --xz -C llvm/projects/libcxxabi - (cd llvm/build && cmake .. -DCMAKE_INSTALL_PREFIX=${DEPS_DIR}/usr) - (cd llvm/build/projects/libcxx && make install -j2) - (cd llvm/build/projects/libcxxabi && make install -j2) export LDFLAGS="-L${DEPS_DIR}/usr/lib -lc++ -lc++abi" - export CFLAGS="${CFLAGS} -stdlib=libc++ -I${DEPS_DIR}/usr/include/c++/v1" - export CXXFLAGS="${CXXFLAGS} -stdlib=libc++ -I${DEPS_DIR}/usr/include/c++/v1" + export CFLAGS="${CFLAGS} -stdlib=libc++ -nostdinc++ -isystem ${DEPS_DIR}/usr/include/c++/v1" + export CXXFLAGS="${CXXFLAGS} -stdlib=libc++ -nostdinc++ -isystem ${DEPS_DIR}/usr/include/c++/v1" export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${DEPS_DIR}/usr/lib" fi # Show files that have been installed