@@ -219,6 +219,7 @@ $ArchX64 = @{
219
219
BinaryCache = " $BinaryCache \x64" ;
220
220
PlatformInstallRoot = " $BinaryCache \x64\Windows.platform" ;
221
221
SDKInstallRoot = " $BinaryCache \x64\Windows.platform\Developer\SDKs\Windows.sdk" ;
222
+ ExperimentalSDKInstallRoot = " $BinaryCache \x64\Windows.platform\Developer\SDKs\WindowsExperimental.sdk" ;
222
223
XCTestInstallRoot = " $BinaryCache \x64\Windows.platform\Developer\Library\XCTest-development" ;
223
224
SwiftTestingInstallRoot = " $BinaryCache \x64\Windows.platform\Developer\Library\Testing-development" ;
224
225
ToolchainInstallRoot = " $BinaryCache \x64\toolchains\$ProductVersion +Asserts" ;
@@ -236,6 +237,7 @@ $ArchX86 = @{
236
237
BinaryCache = " $BinaryCache \x86" ;
237
238
PlatformInstallRoot = " $BinaryCache \x86\Windows.platform" ;
238
239
SDKInstallRoot = " $BinaryCache \x86\Windows.platform\Developer\SDKs\Windows.sdk" ;
240
+ ExperimentalSDKInstallRoot = " $BinaryCache \x86\Windows.platform\Developer\SDKs\WindowsExperimental.sdk" ;
239
241
XCTestInstallRoot = " $BinaryCache \x86\Windows.platform\Developer\Library\XCTest-development" ;
240
242
SwiftTestingInstallRoot = " $BinaryCache \x86\Windows.platform\Developer\Library\Testing-development" ;
241
243
Cache = @ {};
@@ -252,6 +254,7 @@ $ArchARM64 = @{
252
254
BinaryCache = " $BinaryCache \arm64" ;
253
255
PlatformInstallRoot = " $BinaryCache \arm64\Windows.platform" ;
254
256
SDKInstallRoot = " $BinaryCache \arm64\Windows.platform\Developer\SDKs\Windows.sdk" ;
257
+ ExperimentalSDKInstallRoot = " $BinaryCache \arm64\Windows.platform\Developer\SDKs\WindowsExperimental.sdk" ;
255
258
XCTestInstallRoot = " $BinaryCache \arm64\Windows.platform\Developer\Library\XCTest-development" ;
256
259
ToolchainInstallRoot = " $BinaryCache \arm64\toolchains\$ProductVersion +Asserts" ;
257
260
SwiftTestingInstallRoot = " $BinaryCache \arm64\Windows.platform\Developer\Library\Testing-development" ;
@@ -269,6 +272,7 @@ $AndroidARM64 = @{
269
272
BinaryCache = " $BinaryCache \aarch64" ;
270
273
PlatformInstallRoot = " $BinaryCache \arm64\Android.platform" ;
271
274
SDKInstallRoot = " $BinaryCache \arm64\Android.platform\Developer\SDKs\Android.sdk" ;
275
+ ExperimentalSDKInstallRoot = " $BinaryCache \arm64\Android.platform\Developer\SDKs\AndroidExperimental.sdk" ;
272
276
XCTestInstallRoot = " $BinaryCache \arm64\Android.platform\Developer\Library\XCTest-development" ;
273
277
SwiftTestingInstallRoot = " $BinaryCache \arm64\Android.platform\Developer\Library\Testing-development" ;
274
278
Cache = @ {};
@@ -285,6 +289,7 @@ $AndroidARMv7 = @{
285
289
BinaryCache = " $BinaryCache \armv7" ;
286
290
PlatformInstallRoot = " $BinaryCache \armv7\Android.platform" ;
287
291
SDKInstallRoot = " $BinaryCache \armv7\Android.platform\Developer\SDKs\Android.sdk" ;
292
+ ExperimentalSDKInstallRoot = " $BinaryCache \arm64\Android.platform\Developer\SDKs\AndroidExperimental.sdk" ;
288
293
XCTestInstallRoot = " $BinaryCache \armv7\Android.platform\Developer\Library\XCTest-development" ;
289
294
SwiftTestingInstallRoot = " $BinaryCache \armv7\Android.platform\Developer\Library\Testing-development" ;
290
295
Cache = @ {};
@@ -301,6 +306,7 @@ $AndroidX86 = @{
301
306
BinaryCache = " $BinaryCache \i686" ;
302
307
PlatformInstallRoot = " $BinaryCache \x86\Android.platform" ;
303
308
SDKInstallRoot = " $BinaryCache \x86\Android.platform\Developer\SDKs\Android.sdk" ;
309
+ ExperimentalSDKInstallRoot = " $BinaryCache \arm64\Android.platform\Developer\SDKs\AndroidExperimental.sdk" ;
304
310
XCTestInstallRoot = " $BinaryCache \x86\Android.platform\Developer\Library\XCTest-development" ;
305
311
SwiftTestingInstallRoot = " $BinaryCache \x86\Android.platform\Developer\Library\Testing-development" ;
306
312
Cache = @ {};
@@ -317,6 +323,7 @@ $AndroidX64 = @{
317
323
BinaryCache = " $BinaryCache \x86_64" ;
318
324
PlatformInstallRoot = " $BinaryCache \x64\Android.platform" ;
319
325
SDKInstallRoot = " $BinaryCache \x64\Android.platform\Developer\SDKs\Android.sdk" ;
326
+ ExperimentalSDKInstallRoot = " $BinaryCache \arm64\Android.platform\Developer\SDKs\AndroidExperimental.sdk" ;
320
327
XCTestInstallRoot = " $BinaryCache \x64\Android.platform\Developer\Library\XCTest-development" ;
321
328
SwiftTestingInstallRoot = " $BinaryCache \x64\Android.platform\Developer\Library\Testing-development" ;
322
329
Cache = @ {};
@@ -425,6 +432,7 @@ enum TargetComponent {
425
432
Testing
426
433
ClangBuiltins
427
434
ClangRuntime
435
+ ExperimentalRuntime
428
436
}
429
437
430
438
function Get-TargetProjectBinaryCache ($Arch , [TargetComponent ]$Project ) {
@@ -2047,6 +2055,40 @@ function Build-Runtime([Platform]$Platform, $Arch) {
2047
2055
}
2048
2056
}
2049
2057
2058
+ function Build-ExperimentalRuntime {
2059
+ [CmdletBinding (PositionalBinding = $false )]
2060
+ param
2061
+ (
2062
+ [Parameter (Position = 0 , Mandatory = $true )]
2063
+ [Platform ] $Platform ,
2064
+ [Parameter (Position = 1 , Mandatory = $true )]
2065
+ [hashtable ] $Arch ,
2066
+ [switch ] $Static = $false
2067
+ )
2068
+
2069
+ Isolate- EnvVars {
2070
+ $env: Path = " $ ( Get-CMarkBinaryCache $Arch ) \src;$ ( Get-PinnedToolchainRuntime ) ;${env: Path} "
2071
+
2072
+ $CompilersBinaryCache = if ($IsCrossCompiling ) {
2073
+ Get-BuildProjectBinaryCache Compilers
2074
+ } else {
2075
+ Get-HostProjectBinaryCache Compilers
2076
+ }
2077
+
2078
+ Build-CMakeProject `
2079
+ - Src $SourceCache \swift\Runtimes\Core `
2080
+ - Bin (Get-TargetProjectBinaryCache $Arch ExperimentalRuntime) `
2081
+ - InstallTo " $ ( $Arch.ExperimentalSDKInstallRoot ) \usr" `
2082
+ - Arch $Arch `
2083
+ - Platform $Platform `
2084
+ - UseBuiltCompilers C, CXX, Swift `
2085
+ - UseGNUDriver `
2086
+ - Defines @ {
2087
+ BUILD_SHARED_LIBS = if ($Static ) { " NO" } else { " YES" };
2088
+ }
2089
+ }
2090
+ }
2091
+
2050
2092
function Write-SDKSettingsPlist ([Platform ]$Platform , $Arch ) {
2051
2093
if ($Platform -eq [Platform ]::Windows) {
2052
2094
Invoke-Program " $ ( Get-PythonExecutable ) " - c " import plistlib; print(str(plistlib.dumps({ 'DefaultProperties': { 'DEFAULT_USE_RUNTIME': 'MD' } }), encoding='utf-8'))" `
@@ -3035,6 +3077,8 @@ if (-not $SkipBuild) {
3035
3077
Invoke-BuildStep Build-Testing Windows $Arch
3036
3078
Invoke-BuildStep Write-SDKSettingsPlist Windows $Arch
3037
3079
Invoke-BuildStep Write-PlatformInfoPlist $Arch
3080
+
3081
+ Invoke-BuildStep Build-ExperimentalRuntime - Static Windows $Arch
3038
3082
}
3039
3083
3040
3084
foreach ($Arch in $AndroidSDKArchs ) {
@@ -3055,6 +3099,8 @@ if (-not $SkipBuild) {
3055
3099
Invoke-BuildStep Build-Testing Android $Arch
3056
3100
Invoke-BuildStep Write-SDKSettingsPlist Android $Arch
3057
3101
Invoke-BuildStep Write-PlatformInfoPlist $Arch
3102
+
3103
+ Invoke-BuildStep Build-ExperimentalRuntime - Static Android $Arch
3058
3104
}
3059
3105
3060
3106
# Build Macros for distribution
0 commit comments