1set -e
2pushd ~
3
4# Workaround for Travis CI macOS bug (https://github.com/travis-ci/travis-ci/issues/6307)
5if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
6    rvm get head || true
7fi
8
9function llvm_version_triple() {
10    if [ "$1" == "3.5" ]; then
11        echo "3.5.2"
12    elif [ "$1" == "3.6" ]; then
13        echo "3.6.2"
14    elif [ "$1" == "3.7" ]; then
15        echo "3.7.1"
16    elif [ "$1" == "3.8" ]; then
17        echo "3.8.1"
18    elif [ "$1" == "3.9" ]; then
19        echo "3.9.0"
20    elif [ "$1" == "4.0" ]; then
21        echo "4.0.1"
22    elif [ "$1" == "5.0" ]; then
23        echo "5.0.2"
24    elif [ "$1" == "6.0" ]; then
25        echo "6.0.1"
26    elif [ "$1" == "7.0" ]; then
27        echo "7.0.0"
28    fi
29}
30
31function llvm_download() {
32    export LLVM_VERSION_TRIPLE=`llvm_version_triple ${LLVM_VERSION}`
33    export LLVM=clang+llvm-${LLVM_VERSION_TRIPLE}-$1
34    export LLVM_DIRECTORY="$HOME/.llvm/${LLVM}"
35
36    if [ -d "${LLVM_DIRECTORY}" ]; then
37        echo "Using cached LLVM download for ${LLVM}..."
38    else
39        wget http://releases.llvm.org/${LLVM_VERSION_TRIPLE}/${LLVM}.tar.xz
40        mkdir -p "${LLVM_DIRECTORY}"
41        tar xf ${LLVM}.tar.xz -C "${LLVM_DIRECTORY}" --strip-components=1
42    fi
43
44    export LLVM_CONFIG_PATH="${LLVM_DIRECTORY}/bin/llvm-config"
45}
46
47if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
48    llvm_download x86_64-linux-gnu-ubuntu-14.04
49    export LD_LIBRARY_PATH="${LLVM_DIRECTORY}/lib":$LD_LIBRARY_PATH
50else
51    llvm_download x86_64-apple-darwin
52    cp "${LLVM_DIRECTORY}/lib/libclang.dylib" /usr/local/lib/libclang.dylib
53    export DYLD_LIBRARY_PATH="${LLVM_DIRECTORY}/lib":$DYLD_LIBRARY_PATH
54fi
55
56popd
57set +e
58