Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions llvm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ set -eux
usage() {
set +x
echo "Usage: $0 [llvm_major_version] [all] [OPTIONS]" 1>&2
echo -e "latest\t\t\tInstall the latest available major version." 1>&2
echo -e "all\t\t\tInstall all packages." 1>&2
echo -e "-n=code_name\t\tSpecifies the distro codename, for example bionic" 1>&2
echo -e "-h\t\t\tPrints this help." 1>&2
Expand Down Expand Up @@ -159,17 +160,18 @@ LLVM_VERSION_PATTERNS[19]="-19"
LLVM_VERSION_PATTERNS[20]="-20"
LLVM_VERSION_PATTERNS[21]="-21"
LLVM_VERSION_PATTERNS[22]=""
LLVM_VERSION_PATTERNS["latest"]=""

if [ ! ${LLVM_VERSION_PATTERNS[$LLVM_VERSION]+_} ]; then
echo "This script does not support LLVM version $LLVM_VERSION"
exit 3
fi

LLVM_VERSION_STRING=${LLVM_VERSION_PATTERNS[$LLVM_VERSION]}
LLVM_REPO_SUFFIX=${LLVM_VERSION_PATTERNS[$LLVM_VERSION]}

# join the repository name
if [[ -n "${CODENAME}" ]]; then
REPO_NAME="deb ${BASE_URL}/${CODENAME}/ llvm-toolchain${LINKNAME}${LLVM_VERSION_STRING} main"
REPO_NAME="deb ${BASE_URL}/${CODENAME}/ llvm-toolchain${LINKNAME}${LLVM_REPO_SUFFIX} main"
# check if the repository exists for the distro and version
if ! wget -q --method=HEAD ${BASE_URL}/${CODENAME} &> /dev/null && \
! curl -sSLI -XHEAD ${BASE_URL}/${CODENAME} &> /dev/null; then
Expand Down Expand Up @@ -213,14 +215,20 @@ elif [[ $is_new_debian -eq 1 ]]; then
Architectures: amd64 arm64
Signed-By: /etc/apt/trusted.gpg.d/apt.llvm.org.asc
URIs: ${BASE_URL}/${CODENAME}/
Suites: llvm-toolchain${LINKNAME}${LLVM_VERSION_STRING}
Suites: llvm-toolchain${LINKNAME}${LLVM_REPO_SUFFIX}
Components: main"
echo "$TEXT_TO_ADD" | tee -a "$SOURCES_FILE" > /dev/null
else
add-apt-repository -y "${REPO_NAME}"
fi

apt-get update

if [[ "$LLVM_VERSION" == "latest" ]]; then
LLVM_VERSION=$(apt-cache search '^llvm-[0-9]+$' | awk '{print $1}' | sed "s/llvm-//" | sort -n | tail -n 1)
echo "Installing version=$LLVM_VERSION"
fi

PKG="clang-$LLVM_VERSION lldb-$LLVM_VERSION lld-$LLVM_VERSION clangd-$LLVM_VERSION"
if [[ $ALL -eq 1 ]]; then
# same as in test-install.sh
Expand Down