| | #!/usr/bin/env bash |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | set -e |
| |
|
| | function show_usage() { |
| | cat << EOF |
| | Usage: install_clang_package.sh [options] |
| | |
| | Install |
| | Available options: |
| | -h|--help show this help message |
| | --version the numeric version of the package to use. |
| | EOF |
| | } |
| |
|
| | VERSION="9" |
| |
|
| | while [[ $# -gt 0 ]]; do |
| | case "$1" in |
| | --version) |
| | shift |
| | VERSION="$1" |
| | shift |
| | ;; |
| | -h|--help) |
| | show_usage |
| | exit 0 |
| | ;; |
| | *) |
| | echo "Unknown option: $1" |
| | exit 1 |
| | esac |
| | done |
| |
|
| | set -x |
| |
|
| | curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - |
| | add-apt-repository -s "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs) main" |
| | apt-get update |
| | apt-get upgrade -y |
| | apt-get install -y --no-install-recommends "clang-$VERSION" |
| |
|
| | |
| | if [ -f "/usr/local/bin/clang" ]; then |
| | echo "clang already exists" |
| | exit 1 |
| | else |
| | CC_BINARY="$(which clang-$VERSION)" |
| | ln -s "$CC_BINARY" "/usr/local/bin/clang" |
| | fi |
| | if [ -f "/usr/local/bin/clang++" ]; then |
| | echo "clang++ already exists" |
| | exit 1 |
| | else |
| | CXX_BINARY="$(which clang++-$VERSION)" |
| | ln -s "$CXX_BINARY" "/usr/local/bin/clang++" |
| | fi |
| |
|
| | echo "Testing clang version..." |
| | clang --version |
| |
|
| | echo "Testing clang++ version..." |
| | clang++ --version |
| |
|
| | |
| | if [ "$VERSION" == "" ]; then |
| | VERSION="$(apt-cache search 'libc\+\+-[0-9]-dev' | awk '{print $1}' | awk -F- '{print $2}')" |
| | echo "Installing version '$VERSION'" |
| | fi |
| |
|
| | apt-get purge -y "libc++-$VERSION-dev" "libc++abi-$VERSION-dev" |
| | apt-get install -y --no-install-recommends "libc++-$VERSION-dev" "libc++abi-$VERSION-dev" |
| |
|
| | echo "Done" |
| |
|