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.
96 lines
2.5 KiB
96 lines
2.5 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="10.0.1"
|
|
|
|
GITHUB_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}"
|
|
|
|
LLVM_FILE="llvm-${LLVM_VER}.src.tar.xz"
|
|
CLANG_FILE="clang-${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="${GITHUB_URL}/${LLVM_FILE}"
|
|
CLANG_URL="${GITHUB_URL}/${CLANG_FILE}"
|
|
COMPILER_RT_URL="${GITHUB_URL}/${COMPILER_RT_FILE}"
|
|
LIBCXX_URL="${GITHUB_URL}/${LIBCXX_FILE}"
|
|
LIBCXXABI_URL="${GITHUB_URL}/${LIBCXXABI_FILE}"
|
|
OPENMP_URL="${GITHUB_URL}/${OPENMP_FILE}"
|
|
|
|
LLVM_SHA="c5d8e30b57cbded7128d78e5e8dad811bff97a8d471896812f57fa99ee82cdf3"
|
|
CLANG_SHA="f99afc382b88e622c689b6d96cadfa6241ef55dca90e87fc170352e12ddb2b24"
|
|
COMPILER_RT_SHA="d90dc8e121ca0271f0fd3d639d135bfaa4b6ed41e67bd6eb77808f72629658fa"
|
|
LIBCXX_SHA="def674535f22f83131353b3c382ccebfef4ba6a35c488bdb76f10b68b25be86c"
|
|
LIBCXXABI_SHA="a97ef810b2e9fb70e8f7e317b74e646ed4944f488b02ac5ddd9c99e385381a7b"
|
|
OPENMP_SHA="d19f728c8e04fb1e94566c8d76aef50ec926cd2f95ef3bf1e0a5de4909b28b44"
|
|
|
|
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 -L "${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 "clang-${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
|