82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/usr/bin/env bash
 | 
						|
#===- libcxx/utils/docker/scripts/install_clang_package.sh -----------------===//
 | 
						|
#
 | 
						|
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 | 
						|
# See https://llvm.org/LICENSE.txt for license information.
 | 
						|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | 
						|
#
 | 
						|
#===-----------------------------------------------------------------------===//
 | 
						|
 | 
						|
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"
 | 
						|
 | 
						|
# FIXME(EricWF): Remove this once the clang packages are no longer broken.
 | 
						|
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
 | 
						|
 | 
						|
# Figure out the libc++ and libc++abi package versions that we want.
 | 
						|
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"
 |