blob: 08c67567805b0fc74d3632ea99112867a1c058e7 [file] [log] [blame]
Louis Dionnece556052020-09-23 09:20:03 -04001#!/usr/bin/env bash
2#===----------------------------------------------------------------------===##
3#
4# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5# See https://llvm.org/LICENSE.txt for license information.
6# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7#
8#===----------------------------------------------------------------------===##
9
10set -ex
Marek Kurdej05449362021-02-04 21:13:22 +010011set -o pipefail
Arthur O'Dwyer757d5bd2021-04-30 14:43:33 -040012unset LANG
13unset LC_ALL
14unset LC_COLLATE
Louis Dionnece556052020-09-23 09:20:03 -040015
Louis Dionnebb7be752020-11-05 19:02:32 -050016PROGNAME="$(basename "${0}")"
17
18function usage() {
19cat <<EOF
20Usage:
21${PROGNAME} [options] <BUILDER>
22
23[-h|--help] Display this help and exit.
24
25--llvm-root <DIR> Path to the root of the LLVM monorepo. By default, we try
26 to figure it out based on the current working directory.
27
Louis Dionne04bf1032020-11-05 19:09:03 -050028--build-dir <DIR> The directory to use for building the library. By default,
29 this is '<llvm-root>/build/<builder>'.
30
Louis Dionnebb7be752020-11-05 19:02:32 -050031--osx-roots <DIR> Path to pre-downloaded macOS dylibs. By default, we download
32 them from Green Dragon. This is only relevant at all when
33 running back-deployment testing if one wants to override
34 the old dylibs we use to run the tests with different ones.
35EOF
36}
37
38while [[ $# -gt 0 ]]; do
39 case ${1} in
40 -h|--help)
41 usage
42 exit 0
43 ;;
44 --llvm-root)
45 MONOREPO_ROOT="${2}"
46 shift; shift
47 ;;
Louis Dionne04bf1032020-11-05 19:09:03 -050048 --build-dir)
49 BUILD_DIR="${2}"
50 shift; shift
51 ;;
Louis Dionnebb7be752020-11-05 19:02:32 -050052 --osx-roots)
53 OSX_ROOTS="${2}"
54 shift; shift
55 ;;
56 *)
57 BUILDER="${1}"
58 shift
59 ;;
60 esac
61done
62
63MONOREPO_ROOT="${MONOREPO_ROOT:="$(git rev-parse --show-toplevel)"}"
Louis Dionne04bf1032020-11-05 19:09:03 -050064BUILD_DIR="${BUILD_DIR:=${MONOREPO_ROOT}/build/${BUILDER}}"
Louis Dionne485f4c02021-01-07 17:37:09 -050065INSTALL_DIR="${BUILD_DIR}/install"
Louis Dionnece556052020-09-23 09:20:03 -040066
Louis Dionne6f96e992021-05-07 13:14:57 -040067# If we can find Ninja/CMake provided by Xcode, use those since we know their
68# version will generally work with the Clang shipped in Xcode (e.g. if Clang
69# knows about -std=c++20, the CMake bundled in Xcode will probably know about
70# that flag too).
71if xcrun --find ninja &>/dev/null; then NINJA="$(xcrun --find ninja)"; else NINJA="ninja"; fi
72if xcrun --find cmake &>/dev/null; then CMAKE="$(xcrun --find cmake)"; else CMAKE="cmake"; fi
Louis Dionne7a8d5362021-03-04 16:01:36 -050073
Louis Dionnebb7be752020-11-05 19:02:32 -050074function clean() {
75 rm -rf "${BUILD_DIR}"
76}
77
Martin Storsjö47cd3462021-04-06 00:17:30 +030078function generate-cmake-base() {
Louis Dionnef9c11b02020-10-23 10:02:14 -040079 echo "--- Generating CMake"
Louis Dionne6f96e992021-05-07 13:14:57 -040080 ${CMAKE} \
Louis Dionnef9c11b02020-10-23 10:02:14 -040081 -B "${BUILD_DIR}" \
Louis Dionne7a8d5362021-03-04 16:01:36 -050082 -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \
Louis Dionnef9c11b02020-10-23 10:02:14 -040083 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
84 -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
Louis Dionnef9c11b02020-10-23 10:02:14 -040085 -DLLVM_LIT_ARGS="-sv --show-unsupported --xunit-xml-output test-results.xml" \
Martin Storsjö47cd3462021-04-06 00:17:30 +030086 "${@}"
87}
88
89function generate-cmake() {
90 generate-cmake-base \
91 -S "${MONOREPO_ROOT}/llvm" \
92 -DLLVM_ENABLE_PROJECTS="libcxx;libunwind;libcxxabi" \
Louis Dionnef9c11b02020-10-23 10:02:14 -040093 -DLIBCXX_CXX_ABI=libcxxabi \
Louis Dionne662aaa22020-11-05 10:47:06 -050094 "${@}"
95}
96
Martin Storsjö47cd3462021-04-06 00:17:30 +030097function generate-cmake-libcxx-win() {
98 # TODO: Clang-cl in MSVC configurations don't have access to compiler_rt
99 # builtins helpers for int128 division. See
100 # https://reviews.llvm.org/D91139#2429595 for a comment about longterm
101 # intent for handling the issue. In the meantime, define
102 # -D_LIBCPP_HAS_NO_INT128 (both when building the library itself and
103 # when building tests) to allow enabling filesystem for running tests,
104 # even if it uses a non-permanent ABI.
105
106 generate-cmake-base \
107 -S "${MONOREPO_ROOT}/libcxx" \
108 -DCMAKE_C_COMPILER=clang-cl \
109 -DCMAKE_CXX_COMPILER=clang-cl \
110 -DLIBCXX_ENABLE_FILESYSTEM=YES \
111 -DCMAKE_CXX_FLAGS="-D_LIBCPP_HAS_NO_INT128" \
112 -DLIBCXX_TEST_COMPILER_FLAGS="-D_LIBCPP_HAS_NO_INT128" \
113 "${@}"
114}
115
Louis Dionne1f544522021-09-30 15:11:48 -0400116function check-runtimes() {
117 echo "--- Installing libc++, libc++abi and libunwind to a fake location"
118 ${NINJA} -vC "${BUILD_DIR}" install-cxx install-cxxabi install-unwind
Louis Dionneeacce542021-03-24 09:50:59 -0400119
Louis Dionnef9c11b02020-10-23 10:02:14 -0400120 echo "+++ Running the libc++ tests"
Louis Dionne1fcb0412021-03-19 16:26:15 -0700121 ${NINJA} -vC "${BUILD_DIR}" check-cxx
Louis Dionnef9c11b02020-10-23 10:02:14 -0400122
123 echo "+++ Running the libc++abi tests"
Louis Dionne1fcb0412021-03-19 16:26:15 -0700124 ${NINJA} -vC "${BUILD_DIR}" check-cxxabi
Louis Dionne1f544522021-09-30 15:11:48 -0400125
126 echo "+++ Running the libunwind tests"
127 ${NINJA} -vC "${BUILD_DIR}" check-unwind
Louis Dionnef9c11b02020-10-23 10:02:14 -0400128}
129
Louis Dionnedfbd00e2020-11-26 15:00:42 -0500130# TODO: The goal is to test this against all configurations. We should also move
131# this to the Lit test suite instead of being a separate CMake target.
132function check-abi-list() {
133 echo "+++ Running the libc++ ABI list test"
Louis Dionne1fcb0412021-03-19 16:26:15 -0700134 ${NINJA} -vC "${BUILD_DIR}" check-cxx-abilist || (
Marek Kurdej718b62c2020-12-02 08:57:02 +0100135 echo "+++ Generating the libc++ ABI list after failed check"
Louis Dionne1fcb0412021-03-19 16:26:15 -0700136 ${NINJA} -vC "${BUILD_DIR}" generate-cxx-abilist
Marek Kurdej718b62c2020-12-02 08:57:02 +0100137 false
138 )
Louis Dionnedfbd00e2020-11-26 15:00:42 -0500139}
140
Louis Dionnef9c11b02020-10-23 10:02:14 -0400141function check-cxx-benchmarks() {
142 echo "--- Running the benchmarks"
Louis Dionne1fcb0412021-03-19 16:26:15 -0700143 ${NINJA} -vC "${BUILD_DIR}" check-cxx-benchmarks
Louis Dionnef9c11b02020-10-23 10:02:14 -0400144}
Louis Dionnece556052020-09-23 09:20:03 -0400145
Louis Dionne6bd3e652021-04-01 13:40:04 -0400146# Print the version of a few tools to aid diagnostics in some cases
Louis Dionne6f96e992021-05-07 13:14:57 -0400147${CMAKE} --version
Louis Dionne6bd3e652021-04-01 13:40:04 -0400148${NINJA} --version
149
Louis Dionnece556052020-09-23 09:20:03 -0400150case "${BUILDER}" in
Marek Kurdej05449362021-02-04 21:13:22 +0100151check-format)
152 clean
153 echo "+++ Checking formatting"
154 # We need to set --extensions so that clang-format checks extensionless files.
155 mkdir -p ${BUILD_DIR}
156 git-clang-format \
157 --binary /usr/bin/clang-format --diff \
158 --extensions ',h,hh,hpp,hxx,c,cc,cxx,cpp' HEAD~1 \
159 -- \
160 libcxx/{benchmarks,include,src,test} \
161 libcxxabi/{fuzz,include,src,test} \
162 | tee ${BUILD_DIR}/clang-format.patch
163 # Check if the diff is empty, fail otherwise.
164 ! grep -q '^--- a' ${BUILD_DIR}/clang-format.patch
165;;
Mark de Wever53efa102021-04-04 20:11:48 +0200166check-generated-output)
Mark de Weverb10c97d2021-04-28 19:13:52 +0200167 # `! foo` doesn't work properly with `set -e`, use `! foo || false` instead.
168 # https://stackoverflow.com/questions/57681955/set-e-does-not-respect-logical-not
Mark de Wever53efa102021-04-04 20:11:48 +0200169 clean
Louis Dionne8096e242021-07-15 10:19:39 -0400170 generate-cmake
171
172 # Reject patches that forgot to re-run the generator scripts.
173 echo "+++ Making sure the generator scripts were run"
174 ${NINJA} -vC "${BUILD_DIR}" libcxx-generate-files
Mark de Wever53efa102021-04-04 20:11:48 +0200175 git diff | tee ${BUILD_DIR}/generated_output.patch
Mark de Weverdfd86e32021-07-22 11:17:53 +0200176 git ls-files -o --exclude-standard | tee ${BUILD_DIR}/generated_output.status
Mark de Weverb10c97d2021-04-28 19:13:52 +0200177 ! grep -q '^--- a' ${BUILD_DIR}/generated_output.patch || false
Mark de Weverdfd86e32021-07-22 11:17:53 +0200178 if [ -s ${BUILD_DIR}/generated_output.status ]; then
179 echo "It looks like not all the generator scripts were run,"
180 echo "did you forget to build the libcxx-generate-files target?"
181 echo "Did you add all new files it generated?"
182 false
183 fi
Louis Dionne8096e242021-07-15 10:19:39 -0400184
Mark de Weverb10c97d2021-04-28 19:13:52 +0200185 # Reject patches that introduce non-ASCII characters or hard tabs.
Arthur O'Dwyer757d5bd2021-04-30 14:43:33 -0400186 # Depends on LC_COLLATE set at the top of this script.
Mark de Weverb10c97d2021-04-28 19:13:52 +0200187 ! grep -rn '[^ -~]' libcxx/include/ || false
Louis Dionne8096e242021-07-15 10:19:39 -0400188
189 # Reject patches that introduce dependency cycles in the headers.
Arthur O'Dwyerbba78c32021-04-17 09:56:34 -0400190 python3 libcxx/utils/graph_header_deps.py >/dev/null
Mark de Wever53efa102021-04-04 20:11:48 +0200191;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400192generic-cxx03)
Louis Dionnebb7be752020-11-05 19:02:32 -0500193 clean
Louis Dionne77fc7de2021-02-26 13:18:21 -0500194 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx03.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400195 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400196 check-runtimes
Louis Dionnedfbd00e2020-11-26 15:00:42 -0500197 check-abi-list
Louis Dionnece556052020-09-23 09:20:03 -0400198;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400199generic-cxx11)
Louis Dionnebb7be752020-11-05 19:02:32 -0500200 clean
Louis Dionne77fc7de2021-02-26 13:18:21 -0500201 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx11.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400202 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400203 check-runtimes
Louis Dionnedfbd00e2020-11-26 15:00:42 -0500204 check-abi-list
Louis Dionnece556052020-09-23 09:20:03 -0400205;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400206generic-cxx14)
Louis Dionnebb7be752020-11-05 19:02:32 -0500207 clean
Louis Dionne77fc7de2021-02-26 13:18:21 -0500208 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx14.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400209 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400210 check-runtimes
Louis Dionnedfbd00e2020-11-26 15:00:42 -0500211 check-abi-list
Louis Dionnece556052020-09-23 09:20:03 -0400212;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400213generic-cxx17)
Louis Dionnebb7be752020-11-05 19:02:32 -0500214 clean
Louis Dionne77fc7de2021-02-26 13:18:21 -0500215 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx17.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400216 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400217 check-runtimes
Louis Dionnedfbd00e2020-11-26 15:00:42 -0500218 check-abi-list
Louis Dionnece556052020-09-23 09:20:03 -0400219;;
Marek Kurdej24b4c512021-01-07 12:29:04 +0100220generic-cxx20)
Louis Dionnebb7be752020-11-05 19:02:32 -0500221 clean
Louis Dionne77fc7de2021-02-26 13:18:21 -0500222 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx20.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400223 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400224 check-runtimes
Louis Dionnedfbd00e2020-11-26 15:00:42 -0500225 check-abi-list
Louis Dionnece556052020-09-23 09:20:03 -0400226;;
Marek Kurdej758067c2021-01-08 18:40:42 +0100227generic-cxx2b)
Marek Kurdej758067c2021-01-08 18:40:42 +0100228 clean
Louis Dionne77fc7de2021-02-26 13:18:21 -0500229 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx2b.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400230 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400231 check-runtimes
Marek Kurdej758067c2021-01-08 18:40:42 +0100232 check-abi-list
233;;
Louis Dionne732192e2021-06-09 09:41:27 -0400234generic-assertions)
Louis Dionne732192e2021-06-09 09:41:27 -0400235 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400236 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-assertions.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400237 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400238 check-runtimes
Louis Dionne732192e2021-06-09 09:41:27 -0400239 check-abi-list
240;;
Arthur O'Dwyer64e02472021-04-20 11:27:03 -0400241generic-debug-iterators)
Arthur O'Dwyer64e02472021-04-20 11:27:03 -0400242 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400243 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-debug-iterators.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400244 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400245 check-runtimes
Arthur O'Dwyer64e02472021-04-20 11:27:03 -0400246 check-abi-list
247;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400248generic-noexceptions)
Louis Dionnebb7be752020-11-05 19:02:32 -0500249 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400250 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-noexceptions.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400251 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400252 check-runtimes
Louis Dionnece556052020-09-23 09:20:03 -0400253;;
Louis Dionne00005a92021-06-02 17:07:57 -0400254generic-modules)
Louis Dionne00005a92021-06-02 17:07:57 -0400255 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400256 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-modules.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400257 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400258 check-runtimes
Louis Dionne00005a92021-06-02 17:07:57 -0400259;;
Louis Dionneeacce542021-03-24 09:50:59 -0400260generic-static)
Louis Dionneeacce542021-03-24 09:50:59 -0400261 clean
Louis Dionne77fc7de2021-02-26 13:18:21 -0500262 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-static.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400263 -DLIBCXX_TEST_CONFIG="llvm-libc++-static.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400264 check-runtimes
Louis Dionneeacce542021-03-24 09:50:59 -0400265;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400266generic-32bit)
Louis Dionnebb7be752020-11-05 19:02:32 -0500267 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400268 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-32bits.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400269 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400270 check-runtimes
Louis Dionnece556052020-09-23 09:20:03 -0400271;;
Louis Dionne6f4796b2021-07-08 12:26:33 -0400272generic-clang-11)
273 export CC=clang-11
274 export CXX=clang++-11
275 clean
Louis Dionne6be44052021-09-29 15:26:05 -0400276 generate-cmake -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400277 check-runtimes
Louis Dionne6f4796b2021-07-08 12:26:33 -0400278;;
279generic-clang-12)
280 export CC=clang-12
281 export CXX=clang++-12
282 clean
Louis Dionne6be44052021-09-29 15:26:05 -0400283 generate-cmake -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400284 check-runtimes
Louis Dionne6f4796b2021-07-08 12:26:33 -0400285;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400286generic-gcc)
Louis Dionne566a51d2021-06-15 15:07:03 -0400287 export CC=gcc-11
288 export CXX=g++-11
Louis Dionnebb7be752020-11-05 19:02:32 -0500289 clean
Louis Dionne1cb657a2021-10-07 14:54:14 -0400290 generate-cmake -DLIBCXX_TEST_CONFIG="llvm-libc++-shared-gcc.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400291 check-runtimes
Louis Dionnece556052020-09-23 09:20:03 -0400292;;
Louis Dionne657b4792021-07-15 09:46:36 -0400293generic-gcc-cxx11)
294 export CC=gcc-11
295 export CXX=g++-11
296 clean
Louis Dionne1cb657a2021-10-07 14:54:14 -0400297 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx11.cmake" \
298 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared-gcc.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400299 check-runtimes
Louis Dionne657b4792021-07-15 09:46:36 -0400300;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400301generic-asan)
Louis Dionnebb7be752020-11-05 19:02:32 -0500302 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400303 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-asan.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400304 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400305 check-runtimes
Louis Dionnece556052020-09-23 09:20:03 -0400306;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400307generic-msan)
Louis Dionnebb7be752020-11-05 19:02:32 -0500308 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400309 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-msan.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400310 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400311 check-runtimes
Louis Dionnece556052020-09-23 09:20:03 -0400312;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400313generic-tsan)
Louis Dionnebb7be752020-11-05 19:02:32 -0500314 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400315 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-tsan.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400316 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400317 check-runtimes
Louis Dionnece556052020-09-23 09:20:03 -0400318;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400319generic-ubsan)
Louis Dionnebb7be752020-11-05 19:02:32 -0500320 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400321 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-ubsan.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400322 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400323 check-runtimes
Louis Dionnece556052020-09-23 09:20:03 -0400324;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400325generic-with_llvm_unwinder)
Louis Dionnebb7be752020-11-05 19:02:32 -0500326 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400327 generate-cmake -DLIBCXXABI_USE_LLVM_UNWINDER=ON \
Louis Dionne6be44052021-09-29 15:26:05 -0400328 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400329 check-runtimes
Louis Dionnece556052020-09-23 09:20:03 -0400330;;
Louis Dionne6f8038c2020-10-01 13:55:39 -0400331generic-singlethreaded)
Louis Dionnebb7be752020-11-05 19:02:32 -0500332 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400333 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-singlethreaded.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400334 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400335 check-runtimes
Louis Dionnece556052020-09-23 09:20:03 -0400336;;
Louis Dionneabcfdbc2021-03-23 14:09:52 -0400337generic-no-debug)
Louis Dionnebb7be752020-11-05 19:02:32 -0500338 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400339 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-debug.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400340 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400341 check-runtimes
Louis Dionne4396f9b2020-10-06 16:46:58 -0400342;;
Louis Dionnedb84e122021-01-18 12:18:18 -0500343generic-no-filesystem)
Louis Dionnedb84e122021-01-18 12:18:18 -0500344 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400345 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-filesystem.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400346 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400347 check-runtimes
Louis Dionnedb84e122021-01-18 12:18:18 -0500348;;
Louis Dionne3777e682020-10-15 10:32:09 -0400349generic-no-random_device)
Louis Dionnebb7be752020-11-05 19:02:32 -0500350 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400351 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-random_device.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400352 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400353 check-runtimes
Louis Dionne3777e682020-10-15 10:32:09 -0400354;;
Louis Dionne8d053eb2020-10-09 15:31:05 -0400355generic-no-localization)
Louis Dionnebb7be752020-11-05 19:02:32 -0500356 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400357 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-localization.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400358 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400359 check-runtimes
Louis Dionne8d053eb2020-10-09 15:31:05 -0400360;;
Mark de Weverebbd3b62021-05-25 20:11:08 +0200361generic-no-unicode)
Mark de Weverebbd3b62021-05-25 20:11:08 +0200362 clean
Louis Dionne24a32ac2021-10-05 13:37:43 -0400363 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-no-unicode.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400364 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400365 check-runtimes
Mark de Weverebbd3b62021-05-25 20:11:08 +0200366;;
Louis Dionne89d0eb22020-10-01 08:55:40 -0400367x86_64-apple-system)
Louis Dionnebb7be752020-11-05 19:02:32 -0500368 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400369 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Apple.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400370 -DLIBCXX_TEST_CONFIG="apple-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400371 check-runtimes
Louis Dionne89d0eb22020-10-01 08:55:40 -0400372;;
373x86_64-apple-system-noexceptions)
Louis Dionnebb7be752020-11-05 19:02:32 -0500374 clean
Louis Dionnef9c11b02020-10-23 10:02:14 -0400375 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Apple.cmake" \
376 -DLIBCXX_ENABLE_EXCEPTIONS=OFF \
Louis Dionne81b7dc22021-05-31 12:44:48 -0400377 -DLIBCXXABI_ENABLE_EXCEPTIONS=OFF \
Louis Dionne6be44052021-09-29 15:26:05 -0400378 -DLIBCXX_TEST_CONFIG="apple-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400379 check-runtimes
Louis Dionnef9c11b02020-10-23 10:02:14 -0400380;;
Louis Dionne662aaa22020-11-05 10:47:06 -0500381x86_64-apple-system-backdeployment-*)
Louis Dionnebb7be752020-11-05 19:02:32 -0500382 clean
Louis Dionne662aaa22020-11-05 10:47:06 -0500383
Louis Dionnebb7be752020-11-05 19:02:32 -0500384 if [[ "${OSX_ROOTS}" == "" ]]; then
385 echo "--- Downloading previous macOS dylibs"
Louis Dionnec7675352021-03-25 14:14:20 -0400386 PREVIOUS_DYLIBS_URL="https://dl.dropboxusercontent.com/s/liu4fmc53qzlfly/libcxx-roots.tar.gz"
Louis Dionnebb7be752020-11-05 19:02:32 -0500387 OSX_ROOTS="${BUILD_DIR}/macos-roots"
388 mkdir -p "${OSX_ROOTS}"
389 curl "${PREVIOUS_DYLIBS_URL}" | tar -xz --strip-components=1 -C "${OSX_ROOTS}"
390 fi
Louis Dionne662aaa22020-11-05 10:47:06 -0500391
Louis Dionnebb7be752020-11-05 19:02:32 -0500392 DEPLOYMENT_TARGET="${BUILDER#x86_64-apple-system-backdeployment-}"
Louis Dionne84ad13b2020-07-08 16:38:54 -0400393
394 # TODO: On Apple platforms, we never produce libc++abi.1.dylib, always libc++abi.dylib.
395 # Fix that in the build so that the tests stop searching for @rpath/libc++abi.1.dylib.
396 cp "${OSX_ROOTS}/macOS/libc++abi/${DEPLOYMENT_TARGET}/libc++abi.dylib" \
397 "${OSX_ROOTS}/macOS/libc++abi/${DEPLOYMENT_TARGET}/libc++abi.1.dylib"
398
Louis Dionnebb7be752020-11-05 19:02:32 -0500399 PARAMS="target_triple=x86_64-apple-macosx${DEPLOYMENT_TARGET}"
400 PARAMS+=";cxx_runtime_root=${OSX_ROOTS}/macOS/libc++/${DEPLOYMENT_TARGET}"
Louis Dionne84ad13b2020-07-08 16:38:54 -0400401 PARAMS+=";abi_runtime_root=${OSX_ROOTS}/macOS/libc++abi/${DEPLOYMENT_TARGET}"
Louis Dionnebb7be752020-11-05 19:02:32 -0500402 PARAMS+=";use_system_cxx_lib=True"
Louis Dionnebb7be752020-11-05 19:02:32 -0500403
Louis Dionnebb7be752020-11-05 19:02:32 -0500404 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Apple.cmake" \
405 -DLIBCXX_TEST_PARAMS="${PARAMS}" \
406 -DLIBCXXABI_TEST_PARAMS="${PARAMS}"
407
Louis Dionne1f544522021-09-30 15:11:48 -0400408 check-runtimes
Louis Dionne662aaa22020-11-05 10:47:06 -0500409;;
Louis Dionnef9c11b02020-10-23 10:02:14 -0400410benchmarks)
Louis Dionnebb7be752020-11-05 19:02:32 -0500411 clean
Louis Dionne6be44052021-09-29 15:26:05 -0400412 generate-cmake -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionnef9c11b02020-10-23 10:02:14 -0400413 check-cxx-benchmarks
Louis Dionne89d0eb22020-10-01 08:55:40 -0400414;;
Louis Dionneaa4e44f2020-11-05 14:34:29 -0500415documentation)
Louis Dionnebb7be752020-11-05 19:02:32 -0500416 clean
417 generate-cmake -DLLVM_ENABLE_SPHINX=ON
418
419 echo "+++ Generating documentation"
Louis Dionne1fcb0412021-03-19 16:26:15 -0700420 ${NINJA} -vC "${BUILD_DIR}" docs-libcxx-html
Louis Dionneaa4e44f2020-11-05 14:34:29 -0500421;;
Louis Dionne435c36b2020-10-23 16:27:41 -0400422unified-standalone)
Louis Dionnebb7be752020-11-05 19:02:32 -0500423 clean
424
Louis Dionne435c36b2020-10-23 16:27:41 -0400425 echo "--- Generating CMake"
Louis Dionne6f96e992021-05-07 13:14:57 -0400426 ${CMAKE} \
427 -S "${MONOREPO_ROOT}/libcxx/utils/ci/runtimes" \
Louis Dionne435c36b2020-10-23 16:27:41 -0400428 -B "${BUILD_DIR}" \
Louis Dionne7a8d5362021-03-04 16:01:36 -0500429 -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \
Louis Dionne435c36b2020-10-23 16:27:41 -0400430 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
431 -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
Louis Dionne81b7dc22021-05-31 12:44:48 -0400432 -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi;libunwind" \
Louis Dionne6be44052021-09-29 15:26:05 -0400433 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne435c36b2020-10-23 16:27:41 -0400434
Louis Dionne1f544522021-09-30 15:11:48 -0400435 check-runtimes
Louis Dionne435c36b2020-10-23 16:27:41 -0400436;;
Martin Storsjöbb96de92021-09-10 14:36:13 +0300437new-standalone)
Martin Storsjöbb96de92021-09-10 14:36:13 +0300438 clean
439
440 echo "--- Generating CMake"
441 ${CMAKE} \
442 -S "${MONOREPO_ROOT}/runtimes" \
443 -B "${BUILD_DIR}" \
444 -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \
445 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
446 -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
447 -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \
Louis Dionne6be44052021-09-29 15:26:05 -0400448 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Martin Storsjöbb96de92021-09-10 14:36:13 +0300449
Louis Dionne1f544522021-09-30 15:11:48 -0400450 check-runtimes
Martin Storsjöbb96de92021-09-10 14:36:13 +0300451;;
Louis Dionne61b63fd2021-03-16 11:57:42 -0700452runtimes-build)
Louis Dionne61b63fd2021-03-16 11:57:42 -0700453 clean
454
455 echo "--- Generating CMake"
Louis Dionne65faaa72021-06-14 14:36:13 -0400456 # TODO: We currently enable modules and assertions in the runtimes build
457 # because that provides coverage for some specific Clang failures
458 # we've been seeing recently, however it would be better to instead
459 # run all CI configurations against a Clang that has assertions enabled.
Louis Dionne6f96e992021-05-07 13:14:57 -0400460 ${CMAKE} \
461 -S "${MONOREPO_ROOT}/llvm" \
Louis Dionne61b63fd2021-03-16 11:57:42 -0700462 -B "${BUILD_DIR}" \
Louis Dionne6f96e992021-05-07 13:14:57 -0400463 -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \
Louis Dionne61b63fd2021-03-16 11:57:42 -0700464 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
465 -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
466 -DLLVM_ENABLE_PROJECTS="clang" \
467 -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
Christopher Di Bellaa49edef2021-06-08 00:09:36 +0000468 -DLLVM_RUNTIME_TARGETS="x86_64-unknown-linux-gnu" \
Louis Dionne65faaa72021-06-14 14:36:13 -0400469 -DLLVM_ENABLE_ASSERTIONS=ON \
Louis Dionne81b7dc22021-05-31 12:44:48 -0400470 -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-modules.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400471 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne61b63fd2021-03-16 11:57:42 -0700472
473 echo "+++ Running the libc++ and libc++abi tests"
474 ${NINJA} -C "${BUILD_DIR}" check-runtimes
475
476 echo "--- Installing libc++ and libc++abi to a fake location"
Louis Dionne4b1b70d2021-07-06 10:39:01 -0400477 ${NINJA} -C "${BUILD_DIR}" install-runtimes
Louis Dionne61b63fd2021-03-16 11:57:42 -0700478;;
Louis Dionne77fc7de2021-02-26 13:18:21 -0500479legacy-test-config)
Louis Dionne77fc7de2021-02-26 13:18:21 -0500480 clean
Louis Dionne6be44052021-09-29 15:26:05 -0400481 generate-cmake -DLIBCXX_TEST_CONFIG="legacy.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400482 check-runtimes
Louis Dionne77fc7de2021-02-26 13:18:21 -0500483;;
Louis Dionne435c36b2020-10-23 16:27:41 -0400484legacy-standalone)
Louis Dionnebb7be752020-11-05 19:02:32 -0500485 clean
486
Louis Dionne435c36b2020-10-23 16:27:41 -0400487 echo "--- Generating CMake"
Louis Dionne6f96e992021-05-07 13:14:57 -0400488 ${CMAKE} \
489 -S "${MONOREPO_ROOT}/libcxx" \
Louis Dionne435c36b2020-10-23 16:27:41 -0400490 -B "${BUILD_DIR}/libcxx" \
Louis Dionne7a8d5362021-03-04 16:01:36 -0500491 -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \
Louis Dionne435c36b2020-10-23 16:27:41 -0400492 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
493 -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
494 -DLLVM_PATH="${MONOREPO_ROOT}/llvm" \
495 -DLIBCXX_CXX_ABI=libcxxabi \
496 -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${MONOREPO_ROOT}/libcxxabi/include" \
497 -DLIBCXX_CXX_ABI_LIBRARY_PATH="${BUILD_DIR}/libcxxabi/lib"
498
Louis Dionne6f96e992021-05-07 13:14:57 -0400499 ${CMAKE} \
500 -S "${MONOREPO_ROOT}/libcxxabi" \
Louis Dionne435c36b2020-10-23 16:27:41 -0400501 -B "${BUILD_DIR}/libcxxabi" \
Louis Dionne7a8d5362021-03-04 16:01:36 -0500502 -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \
Louis Dionne435c36b2020-10-23 16:27:41 -0400503 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
504 -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
505 -DLLVM_PATH="${MONOREPO_ROOT}/llvm" \
506 -DLIBCXXABI_LIBCXX_PATH="${MONOREPO_ROOT}/libcxx" \
Louis Dionne94870d82020-06-26 12:08:59 -0400507 -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}/libcxx/include/c++/v1" \
Louis Dionne5be8b092020-10-26 14:25:49 -0400508 -DLIBCXXABI_LIBCXX_LIBRARY_PATH="${BUILD_DIR}/libcxx/lib"
Louis Dionne435c36b2020-10-23 16:27:41 -0400509
Louis Dionne94870d82020-06-26 12:08:59 -0400510 echo "+++ Generating libc++ headers"
511 ${NINJA} -vC "${BUILD_DIR}/libcxx" generate-cxx-headers
512
Louis Dionne435c36b2020-10-23 16:27:41 -0400513 echo "+++ Building libc++abi"
Louis Dionne1fcb0412021-03-19 16:26:15 -0700514 ${NINJA} -vC "${BUILD_DIR}/libcxxabi" cxxabi
Louis Dionne435c36b2020-10-23 16:27:41 -0400515
516 echo "+++ Building libc++"
Louis Dionne1fcb0412021-03-19 16:26:15 -0700517 ${NINJA} -vC "${BUILD_DIR}/libcxx" cxx
Louis Dionne435c36b2020-10-23 16:27:41 -0400518
519 echo "+++ Running the libc++ tests"
Louis Dionne1fcb0412021-03-19 16:26:15 -0700520 ${NINJA} -vC "${BUILD_DIR}/libcxx" check-cxx
Louis Dionne435c36b2020-10-23 16:27:41 -0400521
522 echo "+++ Running the libc++abi tests"
Louis Dionne1fcb0412021-03-19 16:26:15 -0700523 ${NINJA} -vC "${BUILD_DIR}/libcxxabi" check-cxxabi
Louis Dionne435c36b2020-10-23 16:27:41 -0400524;;
David Spickett77471a12021-02-08 10:43:21 +0000525aarch64)
526 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400527 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/AArch64.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400528 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400529 check-runtimes
David Spickett77471a12021-02-08 10:43:21 +0000530;;
531aarch64-noexceptions)
532 clean
533 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/AArch64.cmake" \
Louis Dionne4b85fc32021-07-15 13:29:47 -0400534 -DLIBCXX_ENABLE_EXCEPTIONS=OFF \
Louis Dionne81b7dc22021-05-31 12:44:48 -0400535 -DLIBCXXABI_ENABLE_EXCEPTIONS=OFF \
Louis Dionne6be44052021-09-29 15:26:05 -0400536 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400537 check-runtimes
David Spickett77471a12021-02-08 10:43:21 +0000538;;
David Spicketta16b8862021-03-02 15:07:19 +0000539# Aka Armv8 32 bit
540armv8)
541 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400542 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv8Arm.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400543 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400544 check-runtimes
David Spicketta16b8862021-03-02 15:07:19 +0000545;;
546armv8-noexceptions)
547 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400548 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv8Thumb-noexceptions.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400549 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400550 check-runtimes
David Spicketta16b8862021-03-02 15:07:19 +0000551;;
552# Armv7 32 bit. One building Arm only one Thumb only code.
553armv7)
554 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400555 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv7Arm.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400556 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400557 check-runtimes
David Spicketta16b8862021-03-02 15:07:19 +0000558;;
559armv7-noexceptions)
560 clean
Louis Dionne81b7dc22021-05-31 12:44:48 -0400561 generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Armv7Thumb-noexceptions.cmake" \
Louis Dionne6be44052021-09-29 15:26:05 -0400562 -DLIBCXX_TEST_CONFIG="llvm-libc++-shared.cfg.in"
Louis Dionne1f544522021-09-30 15:11:48 -0400563 check-runtimes
David Spicketta16b8862021-03-02 15:07:19 +0000564;;
Martin Storsjö47cd3462021-04-06 00:17:30 +0300565windows-dll)
Martin Storsjö2ffae012021-03-17 12:10:42 +0200566 clean
Martin Storsjö2ffae012021-03-17 12:10:42 +0200567 # TODO: Currently, building with the experimental library breaks running
568 # tests (the test linking look for the c++experimental library with the
569 # wrong name, and the statically linked c++experimental can't be linked
570 # correctly when libc++ visibility attributes indicate dllimport linkage
571 # anyway), thus just disable the experimental library. Remove this
572 # setting when cmake and the test driver does the right thing automatically.
Martin Storsjö47cd3462021-04-06 00:17:30 +0300573 generate-cmake-libcxx-win -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF
574 echo "+++ Running the libc++ tests"
575 ${NINJA} -vC "${BUILD_DIR}" check-cxx
576;;
577windows-static)
578 clean
579 generate-cmake-libcxx-win -DLIBCXX_ENABLE_SHARED=OFF
Martin Storsjö2ffae012021-03-17 12:10:42 +0200580 echo "+++ Running the libc++ tests"
581 ${NINJA} -vC "${BUILD_DIR}" check-cxx
582;;
Louis Dionne04915f92021-05-27 16:51:38 -0400583#################################################################
584# Insert vendor-specific internal configurations below.
585#
586# This allows vendors to extend this file with their own internal
587# configurations without running into merge conflicts with upstream.
588#################################################################
589
590#################################################################
Louis Dionnece556052020-09-23 09:20:03 -0400591*)
592 echo "${BUILDER} is not a known configuration"
593 exit 1
594;;
595esac