@@ -238,6 +238,8 @@ $ArchX64 = @{
238
238
ToolchainInstallRoot = " $BinaryCache \x64\toolchains\$ProductVersion +Asserts" ;
239
239
}
240
240
241
+ $WindowsX64 = $ArchX64
242
+
241
243
$ArchX86 = @ {
242
244
VSName = " x86" ;
243
245
ShortName = " x86" ;
@@ -253,6 +255,8 @@ $ArchX86 = @{
253
255
SwiftTestingInstallRoot = " $BinaryCache \x86\Windows.platform\Developer\Library\Testing-development" ;
254
256
}
255
257
258
+ $WindowsX86 = $ArchX86
259
+
256
260
$ArchARM64 = @ {
257
261
VSName = " arm64" ;
258
262
ShortName = " arm64" ;
@@ -269,6 +273,8 @@ $ArchARM64 = @{
269
273
SwiftTestingInstallRoot = " $BinaryCache \arm64\Windows.platform\Developer\Library\Testing-development" ;
270
274
}
271
275
276
+ $WindowsARM64 = $ArchARM64
277
+
272
278
$AndroidARM64 = @ {
273
279
AndroidArchABI = " arm64-v8a" ;
274
280
BinaryDir = " bin64a" ;
@@ -433,7 +439,7 @@ function Get-TargetProjectBinaryCache($Arch, [TargetComponent]$Project) {
433
439
}
434
440
435
441
enum HostComponent {
436
- Compilers = 5
442
+ Compilers = 9
437
443
FoundationMacros = 10
438
444
TestingMacros
439
445
System
@@ -466,6 +472,7 @@ function Get-HostProjectCMakeModules([HostComponent]$Project) {
466
472
467
473
enum BuildComponent {
468
474
BuildTools
475
+ Driver
469
476
Compilers
470
477
FoundationMacros
471
478
TestingMacros
@@ -1182,7 +1189,7 @@ function Build-CMakeProject {
1182
1189
}
1183
1190
1184
1191
if ($UseBuiltCompilers.Contains (" Swift" )) {
1185
- $env: Path = " $ ( $BuildArch.SDKInstallRoot ) \usr\bin;$ ( Get-CMarkBinaryCache $Arch ) \src;$ ( $BuildArch.ToolchainInstallRoot ) \usr\bin;${env: Path} "
1192
+ $env: Path = " $ ( $BuildArch.SDKInstallRoot ) \usr\bin;$ ( Get-CMarkBinaryCache $BuildArch ) \src;$ ( $BuildArch.ToolchainInstallRoot ) \usr\bin;${env: Path} ; $ ( Get-PinnedToolchainRuntime ) "
1186
1193
} elseif ($UsePinnedCompilers.Contains (" Swift" )) {
1187
1194
$env: Path = " $ ( Get-PinnedToolchainRuntime ) ;${env: Path} "
1188
1195
}
@@ -1492,6 +1499,7 @@ function Build-Compilers() {
1492
1499
Python3_ROOT_DIR = " $BinaryCache \Python$ ( $Arch.CMakeName ) -$PythonVersion \tools" ;
1493
1500
SWIFT_BUILD_SWIFT_SYNTAX = " YES" ;
1494
1501
SWIFT_CLANG_LOCATION = (Get-PinnedToolchainTool );
1502
+ SWIFT_EARLY_SWIFT_DRIVER_BUILD = " $ ( Get-BuildProjectBinaryCache Driver) \$ ( $BuildArch.LLVMTarget ) \release" ;
1495
1503
SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY = " YES" ;
1496
1504
SWIFT_ENABLE_EXPERIMENTAL_CXX_INTEROP = " YES" ;
1497
1505
SWIFT_ENABLE_EXPERIMENTAL_DIFFERENTIABLE_PROGRAMMING = " YES" ;
@@ -1834,6 +1842,7 @@ function Build-Dispatch([Platform]$Platform, $Arch, [switch]$Test = $false) {
1834
1842
- Arch $Arch `
1835
1843
- Platform $Platform `
1836
1844
- UseBuiltCompilers C, CXX, Swift `
1845
+ - SwiftSDK $ ((Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot) `
1837
1846
- Defines @ {
1838
1847
ENABLE_SWIFT = " YES" ;
1839
1848
}
@@ -1876,28 +1885,17 @@ function Build-Foundation([Platform]$Platform, $Arch, [switch]$Test = $false) {
1876
1885
$ShortArch = $Arch.LLVMName
1877
1886
1878
1887
Isolate- EnvVars {
1879
- $SDKRoot = if ($Platform -eq " Windows" ) {
1880
- " "
1881
- } else {
1882
- (Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot
1883
- }
1884
-
1885
- $SDKRoot = if ($Platform -eq " Windows" ) {
1886
- " "
1887
- } else {
1888
- (Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot
1889
- }
1890
-
1891
1888
Build-CMakeProject `
1892
1889
- Src $SourceCache \swift- corelibs- foundation `
1893
1890
- Bin $FoundationBinaryCache `
1894
1891
- InstallTo " $ ( $Arch.SDKInstallRoot ) \usr" `
1895
1892
- Arch $Arch `
1896
1893
- Platform $Platform `
1897
1894
- UseBuiltCompilers ASM, C, CXX, Swift `
1898
- - SwiftSDK: $SDKRoot `
1895
+ - SwiftSDK $ (( Get-Variable " ${Platform} $ ( $Arch .ShortName ) " - ValueOnly).SDKInstallRoot) `
1899
1896
- Defines (@ {
1900
1897
ENABLE_TESTING = " NO" ;
1898
+ CMAKE_Swift_COMPILER_USE_OLD_DRIVER = " YES" ;
1901
1899
FOUNDATION_BUILD_TOOLS = if ($Platform -eq " Windows" ) { " YES" } else { " NO" };
1902
1900
CURL_DIR = " $LibraryRoot \curl-8.9.1\usr\lib\$Platform \$ShortArch \cmake\CURL" ;
1903
1901
LIBXML2_LIBRARY = if ($Platform -eq " Windows" ) {
@@ -1941,7 +1939,7 @@ function Build-FoundationMacros() {
1941
1939
Get-HostProjectBinaryCache FoundationMacros
1942
1940
}
1943
1941
1944
- $SwiftSDK = $null
1942
+ $SwiftSDK = $ (( Get-Variable " ${Platform} $ ( $Arch .ShortName ) " - ValueOnly).SDKInstallRoot)
1945
1943
if ($Build ) {
1946
1944
$SwiftSDK = $BuildArch.SDKInstallRoot
1947
1945
}
@@ -1966,7 +1964,7 @@ function Build-FoundationMacros() {
1966
1964
- Arch $Arch `
1967
1965
- Platform $Platform `
1968
1966
- UseBuiltCompilers Swift `
1969
- - SwiftSDK: $SwiftSDK `
1967
+ - SwiftSDK $SwiftSDK `
1970
1968
- BuildTargets:$Targets `
1971
1969
- Defines @ {
1972
1970
SwiftSyntax_DIR = $SwiftSyntaxCMakeModules ;
@@ -2003,6 +2001,7 @@ function Build-XCTest([Platform]$Platform, $Arch, [switch]$Test = $false) {
2003
2001
- Arch $Arch `
2004
2002
- Platform $Platform `
2005
2003
- UseBuiltCompilers Swift `
2004
+ - SwiftSDK $ ((Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot) `
2006
2005
- BuildTargets $Targets `
2007
2006
- Defines (@ {
2008
2007
CMAKE_BUILD_WITH_INSTALL_RPATH = " YES" ;
@@ -2032,6 +2031,7 @@ function Build-Testing([Platform]$Platform, $Arch, [switch]$Test = $false) {
2032
2031
- Arch $Arch `
2033
2032
- Platform $Platform `
2034
2033
- UseBuiltCompilers C, CXX, Swift `
2034
+ - SwiftSDK $ ((Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot) `
2035
2035
- Defines (@ {
2036
2036
BUILD_SHARED_LIBS = " YES" ;
2037
2037
CMAKE_BUILD_WITH_INSTALL_RPATH = " YES" ;
@@ -2257,29 +2257,79 @@ function Build-ArgumentParser($Arch) {
2257
2257
}
2258
2258
}
2259
2259
2260
- function Build-Driver ($Arch ) {
2261
- Build-CMakeProject `
2262
- - Src $SourceCache \swift- driver `
2263
- - Bin (Get-HostProjectBinaryCache Driver) `
2264
- - InstallTo " $ ( $Arch.ToolchainInstallRoot ) \usr" `
2265
- - Arch $Arch `
2266
- - Platform Windows `
2267
- - UseBuiltCompilers C, CXX, Swift `
2268
- - SwiftSDK (Get-HostSwiftSDK ) `
2269
- - Defines @ {
2270
- BUILD_SHARED_LIBS = " YES" ;
2271
- SwiftSystem_DIR = (Get-HostProjectCMakeModules System);
2272
- TSC_DIR = (Get-HostProjectCMakeModules ToolsSupportCore);
2273
- LLBuild_DIR = (Get-HostProjectCMakeModules LLBuild);
2274
- Yams_DIR = (Get-HostProjectCMakeModules Yams);
2275
- ArgumentParser_DIR = (Get-HostProjectCMakeModules ArgumentParser);
2276
- SQLite3_INCLUDE_DIR = " $LibraryRoot \sqlite-3.46.0\usr\include" ;
2277
- SQLite3_LIBRARY = " $LibraryRoot \sqlite-3.46.0\usr\lib\SQLite3.lib" ;
2278
- SWIFT_DRIVER_BUILD_TOOLS = " YES" ;
2279
- LLVM_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\llvm" ;
2280
- Clang_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\clang" ;
2281
- Swift_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \tools\swift\lib\cmake\swift" ;
2260
+ function Build-Driver () {
2261
+ [CmdletBinding (PositionalBinding = $false )]
2262
+ param
2263
+ (
2264
+ [Parameter (Position = 0 , Mandatory = $true )]
2265
+ [hashtable ]$Arch ,
2266
+ [switch ] $Build = $false
2267
+ )
2268
+
2269
+ if ($Build ) {
2270
+ $Stopwatch = [Diagnostics.Stopwatch ]::StartNew()
2271
+
2272
+ Isolate- EnvVars {
2273
+ $env: SWIFTCI_USE_LOCAL_DEPS = 1
2274
+ $env: SDKROOT = (Get-PinnedToolchainSDK )
2275
+ $env: Path = " $ ( Get-PinnedToolchainRuntime ) ;$ ( Get-PinnedToolchainTool ) ;${env: Path} "
2276
+
2277
+ $src = " $SourceCache \swift-driver"
2278
+ $dst = (Get-BuildProjectBinaryCache Driver)
2279
+
2280
+ if ($ToBatch ) {
2281
+ Write-Output " "
2282
+ Write-Output " echo Building '$src ' to '$dst ' for arch '$ ( $Arch.LLVMName ) '..."
2283
+ } else {
2284
+ Write-Host - ForegroundColor Cyan " [$ ( [DateTime ]::Now.ToString(" yyyy-MM-dd HH:mm:ss" )) ] Building '$src ' to '$dst ' for arch '$ ( $Arch.LLVMName ) '..."
2285
+ }
2286
+
2287
+ Invoke-Program `
2288
+ " $ ( Get-PinnedToolchainTool ) \swift.exe" build `
2289
+ - c release `
2290
+ -- scratch- path $dst `
2291
+ -- package- path $src `
2292
+ - Xcc - Xclang - Xcc - fno- split-cold - code `
2293
+ - Xlinker " $ ( Get-PinnedToolchainSDK ) \usr\lib\swift\windows\$ ( $BuildArch.LLVMName ) \swiftCore.lib"
2294
+
2295
+ if (-not $ToBatch ) {
2296
+ Write-Host - ForegroundColor Cyan " [$ ( [DateTime ]::Now.ToString(" yyyy-MM-dd HH:mm:ss" )) ] Finished building '$src ' to '$dst ' for arch '$ ( $Arch.LLVMName ) ' in $ ( $Stopwatch.Elapsed ) "
2297
+ Write-Host " "
2298
+ }
2299
+
2300
+ if ($Summary ) {
2301
+ $TimingData.Add ([PSCustomObject ]@ {
2302
+ Arch = $BuildArch.LLVMName
2303
+ Checkout = $src.Replace ($SourceCache , ' ' )
2304
+ Platform = " Windows"
2305
+ " Elapsed Time" = $Stopwatch.Elapsed.ToString ()
2306
+ })
2307
+ }
2282
2308
}
2309
+ } else {
2310
+ Build-CMakeProject `
2311
+ - Src $SourceCache \swift- driver `
2312
+ - Bin (Get-HostProjectBinaryCache Driver) `
2313
+ - InstallTo " $ ( $Arch.ToolchainInstallRoot ) \usr" `
2314
+ - Arch $Arch `
2315
+ - Platform Windows `
2316
+ - UseBuiltCompilers C, CXX, Swift `
2317
+ - SwiftSDK (Get-HostSwiftSDK ) `
2318
+ - Defines @ {
2319
+ BUILD_SHARED_LIBS = " YES" ;
2320
+ SwiftSystem_DIR = (Get-HostProjectCMakeModules System);
2321
+ TSC_DIR = (Get-HostProjectCMakeModules ToolsSupportCore);
2322
+ LLBuild_DIR = (Get-HostProjectCMakeModules LLBuild);
2323
+ Yams_DIR = (Get-HostProjectCMakeModules Yams);
2324
+ ArgumentParser_DIR = (Get-HostProjectCMakeModules ArgumentParser);
2325
+ SQLite3_INCLUDE_DIR = " $LibraryRoot \sqlite-3.46.0\usr\include" ;
2326
+ SQLite3_LIBRARY = " $LibraryRoot \sqlite-3.46.0\usr\lib\SQLite3.lib" ;
2327
+ SWIFT_DRIVER_BUILD_TOOLS = " YES" ;
2328
+ LLVM_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\llvm" ;
2329
+ Clang_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\clang" ;
2330
+ Swift_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \tools\swift\lib\cmake\swift" ;
2331
+ }
2332
+ }
2283
2333
}
2284
2334
2285
2335
function Build-Crypto ($Arch ) {
@@ -2577,7 +2627,7 @@ function Build-TestingMacros() {
2577
2627
Get-HostProjectBinaryCache TestingMacros
2578
2628
}
2579
2629
2580
- $SwiftSDK = $null
2630
+ $SwiftSDK = $ (( Get-Variable " ${Platform} $ ( $Arch .ShortName ) " - ValueOnly).SDKInstallRoot)
2581
2631
if ($Build ) {
2582
2632
$SwiftSDK = $BuildArch.SDKInstallRoot
2583
2633
}
@@ -2608,7 +2658,7 @@ function Build-TestingMacros() {
2608
2658
- Arch $Arch `
2609
2659
- Platform $Platform `
2610
2660
- UseBuiltCompilers Swift `
2611
- - SwiftSDK: $SwiftSDK `
2661
+ - SwiftSDK $SwiftSDK `
2612
2662
- BuildTargets:$Targets `
2613
2663
- Defines @ {
2614
2664
SwiftSyntax_DIR = $SwiftSyntaxCMakeModules ;
@@ -2747,6 +2797,7 @@ Fetch-Dependencies
2747
2797
if (-not $SkipBuild ) {
2748
2798
Invoke-BuildStep Build-CMark $BuildArch
2749
2799
Invoke-BuildStep Build-BuildTools $BuildArch
2800
+ Invoke-BuildStep Build-Driver - Build $BuildArch
2750
2801
if ($IsCrossCompiling ) {
2751
2802
Invoke-BuildStep Build-Compilers - Build $BuildArch
2752
2803
}
0 commit comments