2020-02-11 16:49:33 -08:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2020-03-01 14:04:06 -08:00
|
|
|
set -euxo pipefail
|
|
|
|
|
2020-03-30 16:29:54 -07:00
|
|
|
LLVM_VERSION="9.0.0"
|
2020-02-11 16:49:33 -08:00
|
|
|
|
2020-04-15 08:10:22 -07:00
|
|
|
install_toolchains() {
|
2020-03-30 16:29:54 -07:00
|
|
|
local osversion="" url="" urlbase="https://releases.llvm.org" targetdir="/usr/local"
|
|
|
|
case "${OSTYPE}" in
|
|
|
|
msys)
|
|
|
|
osversion=win
|
2020-04-15 08:10:22 -07:00
|
|
|
if [ "${HOSTTYPE}" != "${HOSTTYPE%64}" ]; then
|
2020-03-30 16:29:54 -07:00
|
|
|
osversion="${osversion}64"
|
2020-03-01 14:04:06 -08:00
|
|
|
else
|
2020-03-30 16:29:54 -07:00
|
|
|
osversion="${osversion}32"
|
2020-03-01 14:04:06 -08:00
|
|
|
fi
|
2020-03-30 16:29:54 -07:00
|
|
|
url="${urlbase}/${LLVM_VERSION}/LLVM-${LLVM_VERSION}-${osversion}.exe"
|
|
|
|
targetdir="${PROGRAMFILES}\LLVM"
|
|
|
|
;;
|
|
|
|
linux-gnu)
|
|
|
|
osversion="${OSTYPE}-$(sed -n -e '/^PRETTY_NAME/ { s/^[^=]*="\(.*\)"/\1/g; s/ /-/; s/\([0-9]*\.[0-9]*\)\.[0-9]*/\1/; s/ .*//; p }' /etc/os-release | tr '[:upper:]' '[:lower:]')"
|
|
|
|
;;
|
|
|
|
darwin*)
|
|
|
|
osversion="darwin-apple"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
if [ -z "${url}" ]; then
|
|
|
|
url="${urlbase}/${LLVM_VERSION}/clang+llvm-${LLVM_VERSION}-${HOSTTYPE}-${osversion}.tar.xz"
|
|
|
|
fi
|
|
|
|
curl -s -L -R "${url}" | if [ "${OSTYPE}" = "msys" ]; then
|
|
|
|
local target="./${url##*/}"
|
|
|
|
install /dev/stdin "${target}"
|
2020-04-15 08:10:22 -07:00
|
|
|
7z x -bsp0 -bso0 "${target}" -o"${targetdir}"
|
2020-03-30 16:29:54 -07:00
|
|
|
rm -f -- "${target}"
|
|
|
|
else
|
|
|
|
sudo tar -x -J --strip-components=1 -C "${targetdir}"
|
|
|
|
command -V clang 1>&2
|
2020-02-11 16:49:33 -08:00
|
|
|
fi
|
2020-03-30 16:29:54 -07:00
|
|
|
"${targetdir}"/bin/clang --version 1>&2
|
2020-02-11 16:49:33 -08:00
|
|
|
}
|
|
|
|
|
2020-04-15 08:10:22 -07:00
|
|
|
install_toolchains "$@"
|