51 lines
1.2 KiB
Bash
Executable File
51 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
packages=(llvm clang++ clang-tidy clang-format lldb llvm-cov include-what-you-use)
|
|
versions=(3.9.1 4.0.0 3.8.1)
|
|
|
|
if [[ $(uname -s) == 'Linux' ]]; then
|
|
CLANG_BOOTSTRAP_VERSION="3.8.1"
|
|
./mason install clang++ ${CLANG_BOOTSTRAP_VERSION}
|
|
CLANG_PREFIX=$(./mason prefix clang++ ${CLANG_BOOTSTRAP_VERSION})
|
|
export CXX=${CLANG_PREFIX}/bin/clang++
|
|
export CC=${CLANG_PREFIX}/bin/clang
|
|
fi
|
|
|
|
function build() {
|
|
local VERSION=$1
|
|
for package in "${!packages[@]}"; do
|
|
./mason build ${packages[$package]} ${VERSION}
|
|
done
|
|
}
|
|
|
|
function publish() {
|
|
local VERSION=$1
|
|
for package in "${!packages[@]}"; do
|
|
./mason publish ${packages[$package]} ${VERSION}
|
|
done
|
|
}
|
|
|
|
function new_version() {
|
|
local NEW_VERSION="$1"
|
|
local LAST_VERSION="$2"
|
|
for package in "${!packages[@]}"; do
|
|
mkdir -p scripts/${package}/${NEW_VERSION}
|
|
cp -r scripts/${package}/${LAST_VERSION}/. scripts/${package}/${NEW_VERSION}/
|
|
done
|
|
}
|
|
|
|
|
|
function build_all() {
|
|
for ver in "${!versions[@]}"; do
|
|
build ${versions[$ver]}
|
|
publish ${versions[$ver]}
|
|
done
|
|
}
|
|
|
|
if [[ ${1:-0} == "all" ]]; then
|
|
build_all
|
|
fi
|