diff options
author | 2021-01-02 20:29:13 +0000 | |
---|---|---|
committer | 2021-01-02 20:29:13 +0000 | |
commit | 46035553bfdd96e63c94e32da0210227ec2e3cf1 (patch) | |
tree | b191f708fb9a2995ba745b2f31cdeeaee4872b7f /gnu/llvm/libcxx/utils/docker/scripts/build_llvm_version.sh | |
parent | Move Makefiles for libc++ and libc++abi to gnu/lib in preparation for an (diff) | |
download | wireguard-openbsd-46035553bfdd96e63c94e32da0210227ec2e3cf1.tar.xz wireguard-openbsd-46035553bfdd96e63c94e32da0210227ec2e3cf1.zip |
Import libc++ 10.0.1 release.
Diffstat (limited to 'gnu/llvm/libcxx/utils/docker/scripts/build_llvm_version.sh')
-rwxr-xr-x | gnu/llvm/libcxx/utils/docker/scripts/build_llvm_version.sh | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/gnu/llvm/libcxx/utils/docker/scripts/build_llvm_version.sh b/gnu/llvm/libcxx/utils/docker/scripts/build_llvm_version.sh new file mode 100755 index 00000000000..613a7babd33 --- /dev/null +++ b/gnu/llvm/libcxx/utils/docker/scripts/build_llvm_version.sh @@ -0,0 +1,106 @@ +#!/usr/bin/env bash +#===- libcxx/utils/docker/scripts/build_install_llvm_version_default.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: build_install_llvm.sh [options] -- [cmake-args] + +Run cmake with the specified arguments. Used inside docker container. +Passes additional -DCMAKE_INSTALL_PREFIX and puts the build results into +the directory specified by --to option. + +Available options: + -h|--help show this help message + --install destination directory where to install the targets. + --branch the branch or tag of LLVM to build +Required options: --install, and --version. + +All options after '--' are passed to CMake invocation. +EOF +} + +LLVM_BRANCH="" +CMAKE_ARGS="" +LLVM_INSTALL_DIR="" + +while [[ $# -gt 0 ]]; do + case "$1" in + --install) + shift + LLVM_INSTALL_DIR="$1" + shift + ;; + --branch) + shift + LLVM_BRANCH="$1" + shift + ;; + --) + shift + CMAKE_ARGS="$*" + shift $# + ;; + -h|--help) + show_usage + exit 0 + ;; + *) + echo "Unknown option: $1" + exit 1 + esac +done + + +if [ "$LLVM_INSTALL_DIR" == "" ]; then + echo "No install directory. Please specify the --install argument." + exit 1 +fi + +if [ "$LLVM_BRANCH" == "" ]; then + echo "No install directory. Please specify the --branch argument." + exit 1 +fi + +if [ "$CMAKE_ARGS" == "" ]; then + CMAKE_ARGS="-DCMAKE_BUILD_TYPE=RELEASE '-DCMAKE_C_FLAGS=-gline-tables-only' '-DCMAKE_CXX_FLAGS=-gline-tables-only' -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON" +fi + +set -x + +TMP_ROOT="$(mktemp -d -p /tmp)" +LLVM_SOURCE_DIR="$TMP_ROOT/llvm-project" +LLVM_BUILD_DIR="$TMP_ROOT/build" +LLVM="$LLVM_SOURCE_DIR/llvm" + +git clone --branch $LLVM_BRANCH --single-branch --depth=1 https://github.com/llvm/llvm-project.git $LLVM_SOURCE_DIR + +pushd "$LLVM_SOURCE_DIR" + +# Setup the source-tree using the old style layout +ln -s $LLVM_SOURCE_DIR/libcxx $LLVM/projects/libcxx +ln -s $LLVM_SOURCE_DIR/libcxxabi $LLVM/projects/libcxxabi +ln -s $LLVM_SOURCE_DIR/compiler-rt $LLVM/projects/compiler-rt +ln -s $LLVM_SOURCE_DIR/clang $LLVM/tools/clang +ln -s $LLVM_SOURCE_DIR/clang-tools-extra $LLVM/tools/clang/tools/extra + +popd + +# Configure and build +mkdir "$LLVM_BUILD_DIR" +pushd "$LLVM_BUILD_DIR" +cmake -GNinja "-DCMAKE_INSTALL_PREFIX=$LLVM_INSTALL_DIR" $CMAKE_ARGS $LLVM +ninja install +popd + +# Cleanup +rm -rf "$TMP_ROOT/" + +echo "Done" |