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