2020-09-23 09:20:03 -04:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
#===----------------------------------------------------------------------===##
|
|
|
|
#
|
|
|
|
# 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 -ex
|
|
|
|
|
|
|
|
BUILDER="${1}"
|
2020-10-01 08:55:40 -04:00
|
|
|
MONOREPO_ROOT="$(git rev-parse --show-toplevel)"
|
|
|
|
BUILD_DIR="${MONOREPO_ROOT}/build/${BUILDER}"
|
2020-09-23 09:20:03 -04:00
|
|
|
|
|
|
|
args=()
|
|
|
|
args+=("-DLLVM_ENABLE_PROJECTS=libcxx;libunwind;libcxxabi")
|
|
|
|
args+=("-DLIBCXX_CXX_ABI=libcxxabi")
|
|
|
|
|
|
|
|
case "${BUILDER}" in
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-cxx03)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx03.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-cxx11)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx11.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-cxx14)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx14.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-cxx17)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx17.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-cxx2a)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx2a.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-noexceptions)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-noexceptions.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-32bit)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-32bits.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-gcc)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=gcc
|
|
|
|
export CXX=g++
|
2020-09-29 10:49:52 -04:00
|
|
|
# FIXME: Re-enable experimental testing on GCC. GCC cares about the order
|
|
|
|
# in which we link -lc++experimental, which causes issues.
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported --param enable_experimental=False")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-asan)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-asan.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-msan)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-msan.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-tsan)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-tsan.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-ubsan)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-ubsan.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-with_llvm_unwinder)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
|
|
|
args+=("-DLIBCXXABI_USE_LLVM_UNWINDER=ON")
|
|
|
|
;;
|
2020-10-01 13:55:39 -04:00
|
|
|
generic-singlethreaded)
|
2020-09-23 09:20:03 -04:00
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-singlethreaded.cmake")
|
2020-09-23 09:20:03 -04:00
|
|
|
;;
|
2020-10-06 16:46:58 -04:00
|
|
|
generic-nodebug)
|
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
2020-10-07 09:27:19 -04:00
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-nodebug.cmake")
|
2020-10-06 16:46:58 -04:00
|
|
|
;;
|
2020-10-01 08:55:40 -04:00
|
|
|
x86_64-apple-system)
|
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Apple.cmake")
|
|
|
|
;;
|
|
|
|
x86_64-apple-system-noexceptions)
|
|
|
|
export CC=clang
|
|
|
|
export CXX=clang++
|
|
|
|
args+=("-DLLVM_LIT_ARGS=-sv --show-unsupported")
|
|
|
|
args+=("-C${MONOREPO_ROOT}/libcxx/cmake/caches/Apple.cmake")
|
|
|
|
args+=("-DLIBCXX_ENABLE_EXCEPTIONS=OFF")
|
|
|
|
args+=("-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF")
|
|
|
|
;;
|
2020-09-23 09:20:03 -04:00
|
|
|
*)
|
|
|
|
echo "${BUILDER} is not a known configuration"
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
echo "--- Generating CMake"
|
|
|
|
rm -rf "${BUILD_DIR}"
|
2020-10-01 08:55:40 -04:00
|
|
|
cmake -S "${MONOREPO_ROOT}/llvm" -B "${BUILD_DIR}" -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo "${args[@]}"
|
2020-09-23 09:20:03 -04:00
|
|
|
|
|
|
|
echo "--- Building libc++ and libc++abi"
|
|
|
|
ninja -C "${BUILD_DIR}" check-cxx-deps cxxabi
|
|
|
|
|
|
|
|
echo "+++ Running the libc++ tests"
|
|
|
|
ninja -C "${BUILD_DIR}" check-cxx
|
|
|
|
|
|
|
|
echo "+++ Running the libc++abi tests"
|
|
|
|
ninja -C "${BUILD_DIR}" check-cxxabi
|
|
|
|
|
2020-09-24 11:45:55 -04:00
|
|
|
# echo "+++ Running the libc++ benchmarks"
|
|
|
|
# ninja -C "${BUILD_DIR}" check-cxx-benchmarks
|