From 06bffb960f86baacb7587e5a04096c54008bab0f Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Thu, 14 Sep 2023 22:52:01 +0000 Subject: [PATCH] build: fallback `BOOTSTRAPPING_MODE` before the first use `BOOTSTRAPPING_MODE` was used for configuring `SWIFT_ENABLE_ARRAY_COW_CHECKS` before it's fully fixed. --- CMakeLists.txt | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a28bf92956680..9a460b731d019 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -838,6 +838,24 @@ elseif(BOOTSTRAPPING_MODE STREQUAL "HOSTTOOLS" OR SWIFT_SWIFT_PARSER) set(SWIFT_EXEC_FOR_SWIFT_MODULES "${CMAKE_Swift_COMPILER}") endif() +# When we have the early SwiftSyntax build, we can include its parser. +if(SWIFT_PATH_TO_EARLYSWIFTSYNTAX_BUILD_DIR) + set(SWIFT_PATH_TO_EARLYSWIFTSYNTAX_TARGETS + ${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_BUILD_DIR}/cmake/SwiftSyntaxTargets.cmake) + if(NOT EXISTS "${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_TARGETS}") + message(STATUS "Skipping Swift Swift parser integration due to missing early SwiftSyntax") + else() + set(SWIFT_SWIFT_PARSER TRUE) + include(${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_TARGETS}) + + if(SWIFT_HOST_VARIANT_SDK MATCHES "LINUX|ANDROID|OPENBSD|FREEBSD" AND NOT BOOTSTRAPPING_MODE STREQUAL "HOSTTOOLS") + # Only "HOSTTOOLS" is supported in Linux when Swift parser integration is enabled. + message(WARNING "Force setting BOOTSTRAPPING=HOSTTOOLS because Swift parser integration is enabled") + set(BOOTSTRAPPING_MODE "HOSTTOOLS") + endif() + endif() +endif() + if(BOOTSTRAPPING_MODE MATCHES "HOSTTOOLS|.*-WITH-HOSTLIBS") if(SWIFT_ENABLE_ARRAY_COW_CHECKS) message(STATUS "array COW checks disabled when building the swift modules with host libraries") @@ -944,24 +962,6 @@ if(XCODE) set(SWIFT_SDKS "OSX") endif() -# When we have the early SwiftSyntax build, we can include its parser. -if(SWIFT_PATH_TO_EARLYSWIFTSYNTAX_BUILD_DIR) - set(SWIFT_PATH_TO_EARLYSWIFTSYNTAX_TARGETS - ${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_BUILD_DIR}/cmake/SwiftSyntaxTargets.cmake) - if(NOT EXISTS "${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_TARGETS}") - message(STATUS "Skipping Swift Swift parser integration due to missing early SwiftSyntax") - else() - set(SWIFT_SWIFT_PARSER TRUE) - include(${SWIFT_PATH_TO_EARLYSWIFTSYNTAX_TARGETS}) - - if(SWIFT_HOST_VARIANT_SDK MATCHES "LINUX|ANDROID|OPENBSD|FREEBSD" AND NOT BOOTSTRAPPING_MODE STREQUAL "HOSTTOOLS") - # Only "HOSTTOOLS" is supported in Linux when Swift parser integration is enabled. - message(WARNING "Force setting BOOTSTRAPPING=HOSTTOOLS because Swift parser integration is enabled") - set(BOOTSTRAPPING_MODE "HOSTTOOLS") - endif() - endif() -endif() - # FIXME: the parameters we specify in SWIFT_SDKS are lacking architecture specifics, # so we need to hard-code it. For example, the SDK for Android is just 'ANDROID',