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 source $BASE_DIR/tools/trap_exit.sh
MIRROR="https://releases.llvm.org"
if [ -z "$CLANG_VERSION" ]; then if [ -z "$CLANG_VERSION" ]; then
CLANG_VERSION=9.0.0 CLANG_VERSION=9.0.0
fi fi
@ -30,6 +28,37 @@ fi
require cmake 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() function warn_if_installed()
{ {
set +e set +e
@ -48,6 +77,7 @@ if [ $PLATFORM != "Darwin" -a $PLATFORM != "FreeBSD" ]; then
warn_if_installed llvm-config llvm warn_if_installed llvm-config llvm
fi fi
echo "Building Clang/LLVM $CLANG_VERSION may take a long time." echo "Building Clang/LLVM $CLANG_VERSION may take a long time."
echo "Installation Prefix: $INSTALLPREFIX" echo "Installation Prefix: $INSTALLPREFIX"
@ -59,22 +89,12 @@ fi
pushd $TARBALL_DIR &>/dev/null 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 $LLVM_PKG
download $CLANG_PKG download $CLANG_PKG
popd &>/dev/null popd &>/dev/null
pushd $BUILD_DIR &>/dev/null pushd $BUILD_DIR &>/dev/null
echo "cleaning up ..." echo "cleaning up ..."
@ -94,6 +114,7 @@ echo ""
popd &>/dev/null popd &>/dev/null
function build() function build()
{ {
stage=$1 stage=$1