diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot index baf4707c3169d..c781310d88f33 100755 --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -64,12 +64,12 @@ MONOREPO_ROOT="${MONOREPO_ROOT:="$(git rev-parse --show-toplevel)"}" BUILD_DIR="${BUILD_DIR:=${MONOREPO_ROOT}/build/${BUILDER}}" INSTALL_DIR="${BUILD_DIR}/install" -# On macOS, fall back to using the Ninja provided with Xcode if no other Ninja can be found. -if which ninja &>/dev/null; then - NINJA="$(which ninja)" -else - NINJA="$(xcrun --find ninja)" -fi +# If we can find Ninja/CMake provided by Xcode, use those since we know their +# version will generally work with the Clang shipped in Xcode (e.g. if Clang +# knows about -std=c++20, the CMake bundled in Xcode will probably know about +# that flag too). +if xcrun --find ninja &>/dev/null; then NINJA="$(xcrun --find ninja)"; else NINJA="ninja"; fi +if xcrun --find cmake &>/dev/null; then CMAKE="$(xcrun --find cmake)"; else CMAKE="cmake"; fi function clean() { rm -rf "${BUILD_DIR}" @@ -77,7 +77,7 @@ function clean() { function generate-cmake-base() { echo "--- Generating CMake" - cmake \ + ${CMAKE} \ -B "${BUILD_DIR}" \ -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ @@ -141,7 +141,7 @@ function check-cxx-benchmarks() { } # Print the version of a few tools to aid diagnostics in some cases -cmake --version +${CMAKE} --version ${NINJA} --version case "${BUILDER}" in @@ -403,7 +403,8 @@ unified-standalone) clean echo "--- Generating CMake" - cmake -S "${MONOREPO_ROOT}/libcxx/utils/ci/runtimes" \ + ${CMAKE} \ + -S "${MONOREPO_ROOT}/libcxx/utils/ci/runtimes" \ -B "${BUILD_DIR}" \ -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ @@ -419,9 +420,10 @@ runtimes-build) clean echo "--- Generating CMake" - cmake -S "${MONOREPO_ROOT}/llvm" \ + ${CMAKE} \ + -S "${MONOREPO_ROOT}/llvm" \ -B "${BUILD_DIR}" \ - -GNinja \ + -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ -DLLVM_ENABLE_PROJECTS="clang" \ @@ -441,7 +443,8 @@ legacy-standalone) clean echo "--- Generating CMake" - cmake -S "${MONOREPO_ROOT}/libcxx" \ + ${CMAKE} \ + -S "${MONOREPO_ROOT}/libcxx" \ -B "${BUILD_DIR}/libcxx" \ -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ @@ -451,7 +454,8 @@ legacy-standalone) -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${MONOREPO_ROOT}/libcxxabi/include" \ -DLIBCXX_CXX_ABI_LIBRARY_PATH="${BUILD_DIR}/libcxxabi/lib" - cmake -S "${MONOREPO_ROOT}/libcxxabi" \ + ${CMAKE} \ + -S "${MONOREPO_ROOT}/libcxxabi" \ -B "${BUILD_DIR}/libcxxabi" \ -GNinja -DCMAKE_MAKE_PROGRAM="${NINJA}" \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \