@@ -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
@@ -1486,6 +1493,7 @@ function Build-Compilers() {
1486
1493
Python3_ROOT_DIR = " $BinaryCache \Python$ ( $Arch.CMakeName ) -$PythonVersion \tools" ;
1487
1494
SWIFT_BUILD_SWIFT_SYNTAX = " YES" ;
1488
1495
SWIFT_CLANG_LOCATION = (Get-PinnedToolchainTool );
1496
+ SWIFT_EARLY_SWIFT_DRIVER_BUILD = " $ ( Get-BuildProjectBinaryCache Driver) \$ ( $BuildArch.LLVMTarget ) \release" ;
1489
1497
SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY = " YES" ;
1490
1498
SWIFT_ENABLE_EXPERIMENTAL_CXX_INTEROP = " YES" ;
1491
1499
SWIFT_ENABLE_EXPERIMENTAL_DIFFERENTIABLE_PROGRAMMING = " YES" ;
@@ -1828,6 +1836,7 @@ function Build-Dispatch([Platform]$Platform, $Arch, [switch]$Test = $false) {
1828
1836
- Arch $Arch `
1829
1837
- Platform $Platform `
1830
1838
- UseBuiltCompilers C, CXX, Swift `
1839
+ - SwiftSDK $ ((Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot) `
1831
1840
- Defines @ {
1832
1841
ENABLE_SWIFT = " YES" ;
1833
1842
}
@@ -1870,28 +1879,17 @@ function Build-Foundation([Platform]$Platform, $Arch, [switch]$Test = $false) {
1870
1879
$ShortArch = $Arch.LLVMName
1871
1880
1872
1881
Isolate- EnvVars {
1873
- $SDKRoot = if ($Platform -eq " Windows" ) {
1874
- " "
1875
- } else {
1876
- (Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot
1877
- }
1878
-
1879
- $SDKRoot = if ($Platform -eq " Windows" ) {
1880
- " "
1881
- } else {
1882
- (Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot
1883
- }
1884
-
1885
1882
Build-CMakeProject `
1886
1883
- Src $SourceCache \swift- corelibs- foundation `
1887
1884
- Bin $FoundationBinaryCache `
1888
1885
- InstallTo " $ ( $Arch.SDKInstallRoot ) \usr" `
1889
1886
- Arch $Arch `
1890
1887
- Platform $Platform `
1891
1888
- UseBuiltCompilers ASM, C, CXX, Swift `
1892
- - SwiftSDK: $SDKRoot `
1889
+ - SwiftSDK $ (( Get-Variable " ${Platform} $ ( $Arch .ShortName ) " - ValueOnly).SDKInstallRoot) `
1893
1890
- Defines (@ {
1894
1891
ENABLE_TESTING = " NO" ;
1892
+ CMAKE_Swift_COMPILER_USE_OLD_DRIVER = " YES" ;
1895
1893
FOUNDATION_BUILD_TOOLS = if ($Platform -eq " Windows" ) { " YES" } else { " NO" };
1896
1894
CURL_DIR = " $LibraryRoot \curl-8.9.1\usr\lib\$Platform \$ShortArch \cmake\CURL" ;
1897
1895
LIBXML2_LIBRARY = if ($Platform -eq " Windows" ) {
@@ -1935,7 +1933,7 @@ function Build-FoundationMacros() {
1935
1933
Get-HostProjectBinaryCache FoundationMacros
1936
1934
}
1937
1935
1938
- $SwiftSDK = $null
1936
+ $SwiftSDK = $ (( Get-Variable " ${Platform} $ ( $Arch .ShortName ) " - ValueOnly).SDKInstallRoot)
1939
1937
if ($Build ) {
1940
1938
$SwiftSDK = $BuildArch.SDKInstallRoot
1941
1939
}
@@ -1960,7 +1958,7 @@ function Build-FoundationMacros() {
1960
1958
- Arch $Arch `
1961
1959
- Platform $Platform `
1962
1960
- UseBuiltCompilers Swift `
1963
- - SwiftSDK: $SwiftSDK `
1961
+ - SwiftSDK $SwiftSDK `
1964
1962
- BuildTargets:$Targets `
1965
1963
- Defines @ {
1966
1964
SwiftSyntax_DIR = $SwiftSyntaxCMakeModules ;
@@ -1997,6 +1995,7 @@ function Build-XCTest([Platform]$Platform, $Arch, [switch]$Test = $false) {
1997
1995
- Arch $Arch `
1998
1996
- Platform $Platform `
1999
1997
- UseBuiltCompilers Swift `
1998
+ - SwiftSDK $ ((Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot) `
2000
1999
- BuildTargets $Targets `
2001
2000
- Defines (@ {
2002
2001
CMAKE_BUILD_WITH_INSTALL_RPATH = " YES" ;
@@ -2026,6 +2025,7 @@ function Build-Testing([Platform]$Platform, $Arch, [switch]$Test = $false) {
2026
2025
- Arch $Arch `
2027
2026
- Platform $Platform `
2028
2027
- UseBuiltCompilers C, CXX, Swift `
2028
+ - SwiftSDK $ ((Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot) `
2029
2029
- Defines (@ {
2030
2030
BUILD_SHARED_LIBS = " YES" ;
2031
2031
CMAKE_BUILD_WITH_INSTALL_RPATH = " YES" ;
@@ -2251,29 +2251,79 @@ function Build-ArgumentParser($Arch) {
2251
2251
}
2252
2252
}
2253
2253
2254
- function Build-Driver ($Arch ) {
2255
- Build-CMakeProject `
2256
- - Src $SourceCache \swift- driver `
2257
- - Bin (Get-HostProjectBinaryCache Driver) `
2258
- - InstallTo " $ ( $Arch.ToolchainInstallRoot ) \usr" `
2259
- - Arch $Arch `
2260
- - Platform Windows `
2261
- - UseBuiltCompilers C, CXX, Swift `
2262
- - SwiftSDK (Get-HostSwiftSDK ) `
2263
- - Defines @ {
2264
- BUILD_SHARED_LIBS = " YES" ;
2265
- SwiftSystem_DIR = (Get-HostProjectCMakeModules System);
2266
- TSC_DIR = (Get-HostProjectCMakeModules ToolsSupportCore);
2267
- LLBuild_DIR = (Get-HostProjectCMakeModules LLBuild);
2268
- Yams_DIR = (Get-HostProjectCMakeModules Yams);
2269
- ArgumentParser_DIR = (Get-HostProjectCMakeModules ArgumentParser);
2270
- SQLite3_INCLUDE_DIR = " $LibraryRoot \sqlite-3.46.0\usr\include" ;
2271
- SQLite3_LIBRARY = " $LibraryRoot \sqlite-3.46.0\usr\lib\SQLite3.lib" ;
2272
- SWIFT_DRIVER_BUILD_TOOLS = " YES" ;
2273
- LLVM_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\llvm" ;
2274
- Clang_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\clang" ;
2275
- Swift_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \tools\swift\lib\cmake\swift" ;
2254
+ function Build-Driver () {
2255
+ [CmdletBinding (PositionalBinding = $false )]
2256
+ param
2257
+ (
2258
+ [Parameter (Position = 0 , Mandatory = $true )]
2259
+ [hashtable ]$Arch ,
2260
+ [switch ] $Build = $false
2261
+ )
2262
+
2263
+ if ($Build ) {
2264
+ $Stopwatch = [Diagnostics.Stopwatch ]::StartNew()
2265
+
2266
+ Isolate- EnvVars {
2267
+ $env: SWIFTCI_USE_LOCAL_DEPS = 1
2268
+ $env: SDKROOT = (Get-PinnedToolchainSDK )
2269
+ $env: Path = " $ ( Get-PinnedToolchainRuntime ) ;$ ( Get-PinnedToolchainTool ) ;${env: Path} "
2270
+
2271
+ $src = " $SourceCache \swift-driver"
2272
+ $dst = (Get-BuildProjectBinaryCache Driver)
2273
+
2274
+ if ($ToBatch ) {
2275
+ Write-Output " "
2276
+ Write-Output " echo Building '$src ' to '$dst ' for arch '$ ( $Arch.LLVMName ) '..."
2277
+ } else {
2278
+ Write-Host - ForegroundColor Cyan " [$ ( [DateTime ]::Now.ToString(" yyyy-MM-dd HH:mm:ss" )) ] Building '$src ' to '$dst ' for arch '$ ( $Arch.LLVMName ) '..."
2279
+ }
2280
+
2281
+ Invoke-Program `
2282
+ " $ ( Get-PinnedToolchainTool ) \swift.exe" build `
2283
+ - c release `
2284
+ -- scratch- path $dst `
2285
+ -- package- path $src `
2286
+ - Xcc - Xclang - Xcc - fno- split-cold - code `
2287
+ - Xlinker " $ ( Get-PinnedToolchainSDK ) \usr\lib\swift\windows\$ ( $BuildArch.LLVMName ) \swiftCore.lib"
2288
+
2289
+ if (-not $ToBatch ) {
2290
+ 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 ) "
2291
+ Write-Host " "
2292
+ }
2293
+
2294
+ if ($Summary ) {
2295
+ $TimingData.Add ([PSCustomObject ]@ {
2296
+ Arch = $BuildArch.LLVMName
2297
+ Checkout = $src.Replace ($SourceCache , ' ' )
2298
+ Platform = " Windows"
2299
+ " Elapsed Time" = $Stopwatch.Elapsed.ToString ()
2300
+ })
2301
+ }
2276
2302
}
2303
+ } else {
2304
+ Build-CMakeProject `
2305
+ - Src $SourceCache \swift- driver `
2306
+ - Bin (Get-HostProjectBinaryCache Driver) `
2307
+ - InstallTo " $ ( $Arch.ToolchainInstallRoot ) \usr" `
2308
+ - Arch $Arch `
2309
+ - Platform Windows `
2310
+ - UseBuiltCompilers C, CXX, Swift `
2311
+ - SwiftSDK (Get-HostSwiftSDK ) `
2312
+ - Defines @ {
2313
+ BUILD_SHARED_LIBS = " YES" ;
2314
+ SwiftSystem_DIR = (Get-HostProjectCMakeModules System);
2315
+ TSC_DIR = (Get-HostProjectCMakeModules ToolsSupportCore);
2316
+ LLBuild_DIR = (Get-HostProjectCMakeModules LLBuild);
2317
+ Yams_DIR = (Get-HostProjectCMakeModules Yams);
2318
+ ArgumentParser_DIR = (Get-HostProjectCMakeModules ArgumentParser);
2319
+ SQLite3_INCLUDE_DIR = " $LibraryRoot \sqlite-3.46.0\usr\include" ;
2320
+ SQLite3_LIBRARY = " $LibraryRoot \sqlite-3.46.0\usr\lib\SQLite3.lib" ;
2321
+ SWIFT_DRIVER_BUILD_TOOLS = " YES" ;
2322
+ LLVM_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\llvm" ;
2323
+ Clang_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\clang" ;
2324
+ Swift_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \tools\swift\lib\cmake\swift" ;
2325
+ }
2326
+ }
2277
2327
}
2278
2328
2279
2329
function Build-Crypto ($Arch ) {
@@ -2571,7 +2621,7 @@ function Build-TestingMacros() {
2571
2621
Get-HostProjectBinaryCache TestingMacros
2572
2622
}
2573
2623
2574
- $SwiftSDK = $null
2624
+ $SwiftSDK = $ (( Get-Variable " ${Platform} $ ( $Arch .ShortName ) " - ValueOnly).SDKInstallRoot)
2575
2625
if ($Build ) {
2576
2626
$SwiftSDK = $BuildArch.SDKInstallRoot
2577
2627
}
@@ -2602,7 +2652,7 @@ function Build-TestingMacros() {
2602
2652
- Arch $Arch `
2603
2653
- Platform $Platform `
2604
2654
- UseBuiltCompilers Swift `
2605
- - SwiftSDK: $SwiftSDK `
2655
+ - SwiftSDK $SwiftSDK `
2606
2656
- BuildTargets:$Targets `
2607
2657
- Defines @ {
2608
2658
SwiftSyntax_DIR = $SwiftSyntaxCMakeModules ;
@@ -2742,6 +2792,7 @@ Fetch-Dependencies
2742
2792
if (-not $SkipBuild ) {
2743
2793
Invoke-BuildStep Build-CMark $BuildArch
2744
2794
Invoke-BuildStep Build-BuildTools $BuildArch
2795
+ Invoke-BuildStep Build-Driver - Build $BuildArch
2745
2796
if ($IsCrossCompiling ) {
2746
2797
Invoke-BuildStep Build-Compilers - Build $BuildArch
2747
2798
}
0 commit comments