You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.6 KiB

#!/bin/bash
# Copyright (c) Facebook, Inc. and its affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
# Download llvm, clang and needed libraries
set -e
set -o pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SHASUM=${SHASUM:-shasum -a 256}
LLVM_VER="9.0.0"
LLVM_FILE="llvm-${LLVM_VER}.src.tar.xz"
CLANG_FILE="cfe-${LLVM_VER}.src.tar.xz"
COMPILER_RT_FILE="compiler-rt-${LLVM_VER}.src.tar.xz"
LIBCXX_FILE="libcxx-${LLVM_VER}.src.tar.xz"
LIBCXXABI_FILE="libcxxabi-${LLVM_VER}.src.tar.xz"
OPENMP_FILE="openmp-${LLVM_VER}.src.tar.xz"
LLVM_URL="https://releases.llvm.org/${LLVM_VER}/${LLVM_FILE}"
CLANG_URL="https://releases.llvm.org/${LLVM_VER}/${CLANG_FILE}"
COMPILER_RT_URL="https://releases.llvm.org/${LLVM_VER}/${COMPILER_RT_FILE}"
LIBCXX_URL="https://releases.llvm.org/${LLVM_VER}/${LIBCXX_FILE}"
LIBCXXABI_URL="https://releases.llvm.org/${LLVM_VER}/${LIBCXXABI_FILE}"
OPENMP_URL="https://releases.llvm.org/${LLVM_VER}/${OPENMP_FILE}"
LLVM_SHA="d6a0565cf21f22e9b4353b2eb92622e8365000a9e90a16b09b56f8157eabfe84"
CLANG_SHA="7ba81eef7c22ca5da688fdf9d88c20934d2d6b40bfe150ffd338900890aa4610"
COMPILER_RT_SHA="56e4cd96dd1d8c346b07b4d6b255f976570c6f2389697347a6c3dcb9e820d10e"
LIBCXX_SHA="3c4162972b5d3204ba47ac384aa456855a17b5e97422723d4758251acf1ed28c"
LIBCXXABI_SHA="675041783565c906ac2f7f8b2bc5c40f14d871ecfa8ade34855aa18de95530e9"
OPENMP_SHA="9979eb1133066376cc0be29d1682bc0b0e7fb541075b391061679111ae4d3b5b"
FILES=(
$LLVM_FILE
$CLANG_FILE
$COMPILER_RT_FILE
$LIBCXX_FILE
$LIBCXXABI_FILE
$OPENMP_FILE
)
URLS=(
$LLVM_URL
$CLANG_URL
$COMPILER_RT_URL
$LIBCXX_URL
$LIBCXXABI_URL
$OPENMP_URL
)
SHAS=(
$LLVM_SHA
$CLANG_SHA
$COMPILER_RT_SHA
$LIBCXX_SHA
$LIBCXXABI_SHA
$OPENMP_SHA
)
mkdir -p "${SCRIPT_DIR}/download"
pushd "${SCRIPT_DIR}/download" >/dev/null
for i in ${!URLS[@]}; do
if [ ! -f "${FILES[$i]}" ]; then
curl "${URLS[$i]}" --output "${FILES[$i]}"
fi
echo "${SHAS[$i]} ${FILES[$i]}" | $SHASUM -c
done
rm -rf "llvm-${LLVM_VER}.src" "llvm"
tar xf "${LLVM_FILE}"
cd "llvm-${LLVM_VER}.src/tools"
tar xf "../../${CLANG_FILE}"
mv "cfe-${LLVM_VER}.src" clang
cd ../projects
tar xf "../../${COMPILER_RT_FILE}"
mv "compiler-rt-${LLVM_VER}.src" compiler-rt
tar xf "../../${LIBCXX_FILE}"
mv "libcxx-${LLVM_VER}.src" libcxx
tar xf "../../${LIBCXXABI_FILE}"
mv "libcxxabi-${LLVM_VER}.src" libcxxabi
tar xf "../../${OPENMP_FILE}"
mv "openmp-${LLVM_VER}.src" openmp
cd ../..
mv "llvm-${LLVM_VER}.src" llvm
popd >/dev/null