From 7ff21a5e56ee2372772a12a1c67e66f0d92f6907 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Mon, 8 Sep 2025 16:59:14 -0700 Subject: [PATCH] build.ps1: isolate bootstrapping macros Isolate the macros used for building the SDK and the macros built for distribution. This extricates the macros from the SDK build which is required for removing the legacy SDK build. --- utils/build.ps1 | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/utils/build.ps1 b/utils/build.ps1 index ac349c58b5bea..585265b7f0f2e 100644 --- a/utils/build.ps1 +++ b/utils/build.ps1 @@ -756,6 +756,8 @@ function Invoke-BuildStep { enum Project { BuildTools RegsGen2 + BootstrapFoundationMacros + BootstrapTestingMacros CDispatch Compilers @@ -2975,7 +2977,7 @@ function Build-Foundation { _SwiftFoundation_SourceDIR = "$SourceCache\swift-foundation"; _SwiftFoundationICU_SourceDIR = "$SourceCache\swift-foundation-icu"; _SwiftCollections_SourceDIR = "$SourceCache\swift-collections"; - SwiftFoundation_MACRO = "$(Get-ProjectBinaryCache $BuildPlatform FoundationMacros)\bin" + SwiftFoundation_MACRO = "$(Get-ProjectBinaryCache $BuildPlatform BootstrapFoundationMacros)\bin" } } @@ -3084,7 +3086,7 @@ function Build-Testing([Hashtable] $Platform) { CMAKE_INSTALL_BINDIR = $Platform.BinaryDir; dispatch_DIR = (Get-ProjectCMakeModules $Platform Dispatch); Foundation_DIR = (Get-ProjectCMakeModules $Platform DynamicFoundation); - SwiftTesting_MACRO = "$(Get-ProjectBinaryCache $BuildPlatform TestingMacros)\TestingMacros.dll"; + SwiftTesting_MACRO = "$(Get-ProjectBinaryCache $BuildPlatform BootstrapTestingMacros)\TestingMacros.dll"; SwiftTesting_INSTALL_NESTED_SUBDIR = "YES"; } } @@ -3135,7 +3137,7 @@ function Install-SDK([Hashtable[]] $Platforms, [OS] $OS = $Platforms[0].OS, [str } } -function Build-SDK([Hashtable] $Platform, [switch] $IncludeMacros = $false) { +function Build-SDK([Hashtable] $Platform) { if ($IncludeDS2) { Invoke-BuildStep Build-DS2 $Platform } @@ -3149,10 +3151,6 @@ function Build-SDK([Hashtable] $Platform, [switch] $IncludeMacros = $false) { # Libraries Invoke-BuildStep Build-Runtime $Platform Invoke-BuildStep Build-Dispatch $Platform - if ($IncludeMacros) { - Invoke-BuildStep Build-FoundationMacros $Platform - Invoke-BuildStep Build-TestingMacros $Platform - } Invoke-BuildStep Build-Foundation $Platform Invoke-BuildStep Build-Sanitizers $Platform Invoke-BuildStep Build-XCTest $Platform @@ -3229,7 +3227,7 @@ function Build-ExperimentalSDK([Hashtable] $Platform) { _SwiftFoundation_SourceDIR = "$SourceCache\swift-foundation"; _SwiftFoundationICU_SourceDIR = "$SourceCache\swift-foundation-icu"; _SwiftCollections_SourceDIR = "$SourceCache\swift-collections"; - SwiftFoundation_MACRO = "$(Get-ProjectBinaryCache $BuildPlatform FoundationMacros)\bin" + SwiftFoundation_MACRO = "$(Get-ProjectBinaryCache $BuildPlatform BootstrapFoundationMacros)\bin" } Build-CMakeProject ` @@ -3261,7 +3259,7 @@ function Build-ExperimentalSDK([Hashtable] $Platform) { _SwiftFoundation_SourceDIR = "$SourceCache\swift-foundation"; _SwiftFoundationICU_SourceDIR = "$SourceCache\swift-foundation-icu"; _SwiftCollections_SourceDIR = "$SourceCache\swift-collections"; - SwiftFoundation_MACRO = "$(Get-ProjectBinaryCache $BuildPlatform FoundationMacros)\bin" + SwiftFoundation_MACRO = "$(Get-ProjectBinaryCache $BuildPlatform BootstrapFoundationMacros)\bin" } } @@ -3959,7 +3957,28 @@ if (-not $SkipBuild) { Invoke-BuildStep Build-CDispatch $HostPlatform Invoke-BuildStep Build-Compilers $HostPlatform -Variant "Asserts" - Invoke-BuildStep Build-SDK $BuildPlatform -IncludeMacros + # Build Macros + Build-CMakeProject ` + -Src $SourceCache\swift-foundation\Sources\FoundationMacros ` + -Bin (Get-ProjectBinaryCache $BuildPlatform BootstrapFoundationMacros) ` + -BuildTargets default ` + -Platform $BuildPlatform ` + -UsePinnedCompilers Swift ` + -SwiftSDK (Get-PinnedToolchainSDK -OS $BuildPlatform.OS) ` + -Defines @{ + SwiftSyntax_DIR = (Get-ProjectCMakeModules $BuildPlatform Compilers); + } + + Build-CMakeProject ` + -Src $SourceCache\swift-testing\Sources\TestingMacros ` + -Bin (Get-ProjectBinaryCache $BuildPlatform BootstrapTestingMacros) ` + -BuildTargets default ` + -Platform $BuildPlatform ` + -UsePinnedCompilers Swift ` + -SwiftSDK (Get-PinnedToolchainSDK -OS $BuildPlatform.OS) ` + -Defines @{ + SwiftSyntax_DIR = (Get-ProjectCMakeModules $BuildPlatform Compilers); + } foreach ($SDK in $WindowsSDKVersions) { switch ($SDK) {