mirror of
https://github.com/boostorg/hof.git
synced 2026-01-31 08:12:19 +00:00
Add clang again
This commit is contained in:
113
.travis.yml
113
.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
|
||||
|
||||
Reference in New Issue
Block a user