Skip to content

Commit efbbf27

Browse files
committed
build: split apart SDK loops for standard and experimental
This splits apart the experimental SDK builds to a separate loop. Furthermore, give the `Build-ExperimentalSDK` an explicit `-Static` switch to record the fact that the experimental SDK is currently being used for static build testing.
1 parent 083cb11 commit efbbf27

File tree

1 file changed

+44
-7
lines changed

1 file changed

+44
-7
lines changed

utils/build.ps1

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2490,18 +2490,37 @@ function Build-Foundation {
24902490
Get-ProjectBinaryCache $Platform DynamicFoundation
24912491
}
24922492

2493+
$FoundationImage = if ($Static) {
2494+
"$(Get-SwiftSDK $Platform.OS -Identifier "$($Platform.OS)Experimental")\usr"
2495+
} else {
2496+
"$(Get-SwiftSDK $Platform.OS)\usr"
2497+
}
2498+
2499+
$SwiftFlags = if ($Static) {
2500+
@("-static-stdlib", "-Xfrontend", "-use-static-resource-dir")
2501+
} else {
2502+
@()
2503+
}
2504+
2505+
$SwiftSDK = if ($Static) {
2506+
Get-SwiftSDK $Platform.OS -Identifier "$($Platform.OS)Experimental"
2507+
} else {
2508+
Get-SwiftSDK $Platform.OS
2509+
}
2510+
24932511
Build-CMakeProject `
24942512
-Src $SourceCache\swift-corelibs-foundation `
24952513
-Bin $FoundationBinaryCache `
2496-
-InstallTo $(if ($Static) { "$(Get-SwiftSDK $Platform.OS -Identifier "$($Platform.OS)Experimental")\usr" } else { "$(Get-SwiftSDK $Platform.OS)\usr" }) `
2514+
-InstallTo $FoundationImage `
24972515
-Platform $Platform `
24982516
-UseBuiltCompilers ASM,C,CXX,Swift `
2499-
-SwiftSDK (Get-SwiftSDK $Platform.OS) `
2517+
-SwiftSDK $SwiftSDK `
25002518
-Defines @{
25012519
BUILD_SHARED_LIBS = if ($Static) { "NO" } else { "YES" };
25022520
CMAKE_FIND_PACKAGE_PREFER_CONFIG = "YES";
25032521
CMAKE_NINJA_FORCE_RESPONSE_FILE = "YES";
25042522
CMAKE_STATIC_LIBRARY_PREFIX_Swift = "lib";
2523+
CMAKE_Swift_FLAGS = $SwiftFlags;
25052524
ENABLE_TESTING = "NO";
25062525
FOUNDATION_BUILD_TOOLS = if ($Platform.OS -eq [OS]::Windows) { "YES" } else { "NO" };
25072526
CURL_DIR = "$BinaryCache\$($Platform.Triple)\usr\lib\cmake\CURL";
@@ -3337,7 +3356,6 @@ if (-not $SkipBuild) {
33373356

33383357
foreach ($Platform in $WindowsSDKPlatforms) {
33393358
Invoke-BuildStep Build-SDK $Platform
3340-
Invoke-BuildStep Build-ExperimentalSDK $Platform
33413359

33423360
Get-ChildItem "$(Get-SwiftSDK Windows)\usr\lib\swift\windows" -Filter "*.lib" -File -ErrorAction Ignore | ForEach-Object {
33433361
Write-Host -BackgroundColor DarkRed -ForegroundColor White "$($_.FullName) is not nested in an architecture directory"
@@ -3347,29 +3365,48 @@ if (-not $SkipBuild) {
33473365
Copy-Directory "$(Get-SwiftSDK Windows)\usr\bin" "$([IO.Path]::Combine((Get-InstallDir $Platform), "Runtimes", $ProductVersion, "usr"))"
33483366
}
33493367

3350-
Write-PlatformInfoPlist Windows
33513368
Install-SDK $WindowsSDKPlatforms
33523369
Write-SDKSettings Windows
3370+
3371+
foreach ($Platform in $WindowsSDKPlatforms) {
3372+
Invoke-BuildStep Build-ExperimentalSDK $Platform
3373+
Get-ChildItem "$(Get-SwiftSDK Windows -Identifier WindowsExperimental)\usr\lib\swift_static\windows" -Filter "*.lib" -File -ErrorAction Ignore | ForEach-Object {
3374+
Write-Host -BackgroundColor DarkRed -ForegroundColor White "$($_.FullName) is not nested in an architecture directory"
3375+
Move-Item $_.FullName "$(Get-SwiftSDK Windows -Identifier WindowsExperimental)\usr\lib\swift_static\windows\$($Platform.Architecture.LLVMName)\" | Out-Null
3376+
}
3377+
}
3378+
33533379
Install-SDK $WindowsSDKPlatforms -Identifier WindowsExperimental
33543380
Write-SDKSettings Windows -Identifier WindowsExperimental
33553381

3382+
Write-PlatformInfoPlist Windows
3383+
33563384
if ($Android) {
33573385
foreach ($Platform in $AndroidSDKPlatforms) {
33583386
Invoke-BuildStep Build-SDK $Platform
3359-
Invoke-BuildStep Build-ExperimentalSDK $Platform
33603387

33613388
Get-ChildItem "$(Get-SwiftSDK Android)\usr\lib\swift\android" -File | Where-Object { $_.Name -match ".a$|.so$" } | ForEach-Object {
33623389
Write-Host -BackgroundColor DarkRed -ForegroundColor White "$($_.FullName) is not nested in an architecture directory"
33633390
Move-Item $_.FullName "$(Get-SwiftSDK Android)\usr\lib\swift\android\$($Platform.Architecture.LLVMName)\" | Out-Null
33643391
}
33653392
}
33663393

3367-
Write-PlatformInfoPlist Android
33683394
Install-SDK $AndroidSDKPlatforms
33693395
Write-SDKSettings Android
3370-
Install-SDK $AndroidSDKPlatforms -Identifiers AndroidExperimental
3396+
3397+
foreach ($Platform in $AndroidSDKPlatforms) {
3398+
Invoke-BuildStep Build-ExperimentalSDK $Platform
3399+
Get-ChildItem "$(Get-SwiftSDK Android -Identifier AndroidExperimental)\usr\lib\swift_static\android" -File | Where-Object { $_.Name -match ".a$" } | ForEach-Object {
3400+
Write-Host -BackgroundColor DarkRed -ForegroundColor White "$($_.FullName) is not nested in an architecture directory"
3401+
Move-Item $_.FullName "$(Get-SwiftSDK Android -Identifier AndroidExperimental)\usr\lib\swift_static\android\$($Platform.Architecture.LLVMName)\" | Out-Null
3402+
}
3403+
}
3404+
3405+
Install-SDK $AndroidSDKPlatforms -Identifier AndroidExperimental
33713406
Write-SDKSettings Android -Identifier AndroidExperimental
33723407

3408+
Write-PlatformInfoPlist Android
3409+
33733410
# Android swift-inspect only supports 64-bit platforms.
33743411
$AndroidSDKPlatforms | Where-Object { @("arm64-v8a", "x86_64") -contains $_.Architecture.ABI } | ForEach-Object {
33753412
Invoke-BuildStep Build-Inspect $_

0 commit comments

Comments
 (0)