build_clang: Fix mirror annoyances

This commit is contained in:
Thomas Pöchtrager 2020-08-27 13:51:17 +02:00
parent 586bde6769
commit 02008c9d79

View File

@ -18,8 +18,6 @@ mkdir -p $BUILD_DIR
source $BASE_DIR/tools/trap_exit.sh
MIRROR="https://releases.llvm.org"
if [ -z "$CLANG_VERSION" ]; then
CLANG_VERSION=9.0.0
fi
@ -30,6 +28,37 @@ fi
require cmake
LLVM_PKG=""
CLANG_PKG=""
function set_package_link()
{
pushd $BUILD_DIR &>/dev/null
download https://releases.llvm.org/download.html &>/dev/null
if [[ $(file download.html) == *gzip* ]]; then
mv download.html download.html.gz
require gzip
gzip -d download.html.gz
fi
links=$(cat download.html | grep -Po '(?<=href=")[^"]*' | grep -v "\.sig")
rm -f download.html
LLVM_PKG=$(echo "$links" | grep "llvm-$CLANG_VERSION.src" | head -n 1 || true)
CLANG_PKG=$(echo "$links" | grep -E "(clang|cfe)-$CLANG_VERSION.src" | head -n 1 || true)
if [ -n "$LLVM_PKG" ] && [[ $LLVM_PKG != https* ]]; then
LLVM_PKG="https://releases.llvm.org/$LLVM_PKG"
CLANG_PKG="https://releases.llvm.org/$CLANG_PKG"
fi
popd &>/dev/null
}
set_package_link
if [ -z "$LLVM_PKG" ] || [ -z "$CLANG_PKG" ]; then
echo "Release $CLANG_VERSION not found!" 1>&2
exit 1
fi
function warn_if_installed()
{
set +e
@ -48,6 +77,7 @@ if [ $PLATFORM != "Darwin" -a $PLATFORM != "FreeBSD" ]; then
warn_if_installed llvm-config llvm
fi
echo "Building Clang/LLVM $CLANG_VERSION may take a long time."
echo "Installation Prefix: $INSTALLPREFIX"
@ -59,22 +89,12 @@ fi
pushd $TARBALL_DIR &>/dev/null
if [ -z "$PKGCOMPRESSOR" ]; then
PKGCOMPRESSOR="tar.xz"
[ $CLANG_VERSION == "3.4.2" ] && PKGCOMPRESSOR="tar.gz"
fi
LLVM_PKG="$MIRROR/${CLANG_VERSION}/"
LLVM_PKG+="llvm-${CLANG_VERSION}.src.${PKGCOMPRESSOR}"
CLANG_PKG="$MIRROR/${CLANG_VERSION}/"
CLANG_PKG+="cfe-${CLANG_VERSION}.src.${PKGCOMPRESSOR}"
download $LLVM_PKG
download $CLANG_PKG
popd &>/dev/null
pushd $BUILD_DIR &>/dev/null
echo "cleaning up ..."
@ -94,6 +114,7 @@ echo ""
popd &>/dev/null
function build()
{
stage=$1