From 444a38f56f8898502040b3b51452297e2d8b81bd Mon Sep 17 00:00:00 2001 From: Denis Blank Date: Thu, 25 Jan 2018 05:21:13 +0100 Subject: [PATCH] Some improvements to the CI script --- tools/travis-ci.sh | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/tools/travis-ci.sh b/tools/travis-ci.sh index a8c7122..c57ce80 100644 --- a/tools/travis-ci.sh +++ b/tools/travis-ci.sh @@ -4,24 +4,29 @@ # Taken from here: https://github.com/boostorg/hana/blob/master/.travis.yml ############################################################################ if [[ "${CXX%%+*}" == "clang" ]]; then - if [[ "${CXX}" == "clang++-3.5" ]]; then LLVM_VERSION="3.5.2"; - elif [[ "${CXX}" == "clang++-3.6" ]]; then LLVM_VERSION="3.6.2"; - elif [[ "${CXX}" == "clang++-3.7" ]]; then LLVM_VERSION="3.7.1"; - elif [[ "${CXX}" == "clang++-3.8" ]]; then LLVM_VERSION="3.8.1"; - elif [[ "${CXX}" == "clang++-3.9" ]]; then LLVM_VERSION="3.9.1"; - elif [[ "${CXX}" == "clang++-4.0" ]]; then LLVM_VERSION="4.0.0"; - elif [[ "${CXX}" == "clang++-5.0" ]]; then LLVM_VERSION="5.0.0"; + if [ -d ${TRAVIS_BUILD_DIR}/llvm ]; then + echo "libc++ already exists"; + else + if [[ "${CXX}" == "clang++-3.5" ]]; then LLVM_VERSION="3.5.2"; + elif [[ "${CXX}" == "clang++-3.6" ]]; then LLVM_VERSION="3.6.2"; + elif [[ "${CXX}" == "clang++-3.7" ]]; then LLVM_VERSION="3.7.1"; + elif [[ "${CXX}" == "clang++-3.8" ]]; then LLVM_VERSION="3.8.1"; + elif [[ "${CXX}" == "clang++-3.9" ]]; then LLVM_VERSION="3.9.1"; + elif [[ "${CXX}" == "clang++-4.0" ]]; then LLVM_VERSION="4.0.0"; + elif [[ "${CXX}" == "clang++-5.0" ]]; then LLVM_VERSION="5.0.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 + wget -O - ${LLVM_URL} | tar --strip-components=1 -xJ -C llvm + wget -O - ${LIBCXX_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxx + wget -O - ${LIBCXXABI_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxxabi + (cd llvm/build && cmake .. -DCMAKE_INSTALL_PREFIX=${TRAVIS_BUILD_DIR}/llvm/install) + (cd llvm/build/projects/libcxx && make install -j2) + (cd llvm/build/projects/libcxxabi && make install -j2) 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 - wget -O - ${LLVM_URL} | tar --strip-components=1 -xJ -C llvm - wget -O - ${LIBCXX_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxx - wget -O - ${LIBCXXABI_URL} | tar --strip-components=1 -xJ -C llvm/projects/libcxxabi - (cd llvm/build && cmake .. -DCMAKE_INSTALL_PREFIX=${TRAVIS_BUILD_DIR}/llvm/install) - (cd llvm/build/projects/libcxx && make install -j2) - (cd llvm/build/projects/libcxxabi && make install -j2) + export STD_CXX_FLAGS="-isystem ${TRAVIS_BUILD_DIR}/llvm/install/include/c++/v1 -stdlib=libc++" export STD_LINKER_FLAGS="-L ${TRAVIS_BUILD_DIR}/llvm/install/lib -l c++ -l c++abi" export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${TRAVIS_BUILD_DIR}/llvm/install/lib" @@ -41,7 +46,7 @@ function renew_build { cmake -GNinja -DCMAKE_CXX_FLAGS="$STD_CXX_FLAGS $CMAKE_CXX_FLAGS -Werror" -DCMAKE_EXE_LINKER_FLAGS="$STD_LINKER_FLAGS" -DCTI_CONTINUABLE_WITH_NO_EXCEPTIONS=$WITH_NO_EXCEPTIONS -DCTI_CONTINUABLE_WITH_AWAIT=$WITH_AWAIT -DCMAKE_BUILD_TYPE=Debug .. } -if [[ $COMPILER == *"clang"* ]]; then +if [[ $CXX == *"clang"* ]]; then ASAN_OPTIONS=abort_on_error=1 # Build the test suite with various sanitizers: