@@ -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
@@ -1175,7 +1182,7 @@ function Build-CMakeProject {
1175
1182
}
1176
1183
1177
1184
if ($UseBuiltCompilers.Contains (" Swift" )) {
1178
- $env: Path = " $ ( $BuildArch.SDKInstallRoot ) \usr\bin;$ ( $BuildArch.BinaryCache ) \cmark-gfm-0.29.0.gfm.13\src;$ ( $BuildArch.ToolchainInstallRoot ) \usr\bin;${env: Path} "
1185
+ $env: Path = " $ ( $BuildArch.SDKInstallRoot ) \usr\bin;$ ( $BuildArch.BinaryCache ) \cmark-gfm-0.29.0.gfm.13\src;$ ( $BuildArch.ToolchainInstallRoot ) \usr\bin;$ ( Get-PinnedToolchainRuntime ) ; $ {env: Path}"
1179
1186
} elseif ($UsePinnedCompilers.Contains (" Swift" )) {
1180
1187
$env: Path = " $ ( Get-PinnedToolchainRuntime ) ;${env: Path} "
1181
1188
}
@@ -1454,6 +1461,7 @@ function Build-Compilers() {
1454
1461
Python3_ROOT_DIR = " $BinaryCache \Python$ ( $Arch.CMakeName ) -$PythonVersion \tools" ;
1455
1462
SWIFT_BUILD_SWIFT_SYNTAX = " YES" ;
1456
1463
SWIFT_CLANG_LOCATION = (Get-PinnedToolchainTool );
1464
+ SWIFT_EARLY_SWIFT_DRIVER_BUILD = " $ ( Get-BuildProjectBinaryCache Driver) \$ ( $BuildArch.LLVMTarget ) \release" ;
1457
1465
SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY = " YES" ;
1458
1466
SWIFT_ENABLE_EXPERIMENTAL_CXX_INTEROP = " YES" ;
1459
1467
SWIFT_ENABLE_EXPERIMENTAL_DIFFERENTIABLE_PROGRAMMING = " YES" ;
@@ -1794,6 +1802,7 @@ function Build-Dispatch([Platform]$Platform, $Arch, [switch]$Test = $false) {
1794
1802
- Arch $Arch `
1795
1803
- Platform $Platform `
1796
1804
- UseBuiltCompilers C, CXX, Swift `
1805
+ - SwiftSDK $ ((Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot) `
1797
1806
- Defines @ {
1798
1807
ENABLE_SWIFT = " YES" ;
1799
1808
}
@@ -1836,28 +1845,17 @@ function Build-Foundation([Platform]$Platform, $Arch, [switch]$Test = $false) {
1836
1845
$ShortArch = $Arch.LLVMName
1837
1846
1838
1847
Isolate- EnvVars {
1839
- $SDKRoot = if ($Platform -eq " Windows" ) {
1840
- " "
1841
- } else {
1842
- (Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot
1843
- }
1844
-
1845
- $SDKRoot = if ($Platform -eq " Windows" ) {
1846
- " "
1847
- } else {
1848
- (Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot
1849
- }
1850
-
1851
1848
Build-CMakeProject `
1852
1849
- Src $SourceCache \swift- corelibs- foundation `
1853
1850
- Bin $FoundationBinaryCache `
1854
1851
- InstallTo " $ ( $Arch.SDKInstallRoot ) \usr" `
1855
1852
- Arch $Arch `
1856
1853
- Platform $Platform `
1857
1854
- UseBuiltCompilers ASM, C, CXX, Swift `
1858
- - SwiftSDK: $SDKRoot `
1855
+ - SwiftSDK $ (( Get-Variable " ${Platform} $ ( $Arch .ShortName ) " - ValueOnly).SDKInstallRoot) `
1859
1856
- Defines (@ {
1860
1857
ENABLE_TESTING = " NO" ;
1858
+ CMAKE_Swift_COMPILER_USE_OLD_DRIVER = " YES" ;
1861
1859
FOUNDATION_BUILD_TOOLS = if ($Platform -eq " Windows" ) { " YES" } else { " NO" };
1862
1860
CURL_DIR = " $LibraryRoot \curl-8.9.1\usr\lib\$Platform \$ShortArch \cmake\CURL" ;
1863
1861
LIBXML2_LIBRARY = if ($Platform -eq " Windows" ) {
@@ -1901,7 +1899,7 @@ function Build-FoundationMacros() {
1901
1899
Get-HostProjectBinaryCache FoundationMacros
1902
1900
}
1903
1901
1904
- $SwiftSDK = $null
1902
+ $SwiftSDK = $ (( Get-Variable " ${Platform} $ ( $Arch .ShortName ) " - ValueOnly).SDKInstallRoot)
1905
1903
if ($Build ) {
1906
1904
$SwiftSDK = $BuildArch.SDKInstallRoot
1907
1905
}
@@ -1926,7 +1924,7 @@ function Build-FoundationMacros() {
1926
1924
- Arch $Arch `
1927
1925
- Platform $Platform `
1928
1926
- UseBuiltCompilers Swift `
1929
- - SwiftSDK: $SwiftSDK `
1927
+ - SwiftSDK $SwiftSDK `
1930
1928
- BuildTargets:$Targets `
1931
1929
- Defines @ {
1932
1930
SwiftSyntax_DIR = $SwiftSyntaxCMakeModules ;
@@ -1963,6 +1961,7 @@ function Build-XCTest([Platform]$Platform, $Arch, [switch]$Test = $false) {
1963
1961
- Arch $Arch `
1964
1962
- Platform $Platform `
1965
1963
- UseBuiltCompilers Swift `
1964
+ - SwiftSDK $ ((Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot) `
1966
1965
- BuildTargets $Targets `
1967
1966
- Defines (@ {
1968
1967
CMAKE_BUILD_WITH_INSTALL_RPATH = " YES" ;
@@ -1992,6 +1991,7 @@ function Build-Testing([Platform]$Platform, $Arch, [switch]$Test = $false) {
1992
1991
- Arch $Arch `
1993
1992
- Platform $Platform `
1994
1993
- UseBuiltCompilers C, CXX, Swift `
1994
+ - SwiftSDK $ ((Get-Variable " ${Platform} $ ( $Arch.ShortName ) " - ValueOnly).SDKInstallRoot) `
1995
1995
- Defines (@ {
1996
1996
BUILD_SHARED_LIBS = " YES" ;
1997
1997
CMAKE_BUILD_WITH_INSTALL_RPATH = " YES" ;
@@ -2217,29 +2217,79 @@ function Build-ArgumentParser($Arch) {
2217
2217
}
2218
2218
}
2219
2219
2220
- function Build-Driver ($Arch ) {
2221
- Build-CMakeProject `
2222
- - Src $SourceCache \swift- driver `
2223
- - Bin (Get-HostProjectBinaryCache Driver) `
2224
- - InstallTo " $ ( $Arch.ToolchainInstallRoot ) \usr" `
2225
- - Arch $Arch `
2226
- - Platform Windows `
2227
- - UseBuiltCompilers C, CXX, Swift `
2228
- - SwiftSDK (Get-HostSwiftSDK ) `
2229
- - Defines @ {
2230
- BUILD_SHARED_LIBS = " YES" ;
2231
- SwiftSystem_DIR = (Get-HostProjectCMakeModules System);
2232
- TSC_DIR = (Get-HostProjectCMakeModules ToolsSupportCore);
2233
- LLBuild_DIR = (Get-HostProjectCMakeModules LLBuild);
2234
- Yams_DIR = (Get-HostProjectCMakeModules Yams);
2235
- ArgumentParser_DIR = (Get-HostProjectCMakeModules ArgumentParser);
2236
- SQLite3_INCLUDE_DIR = " $LibraryRoot \sqlite-3.46.0\usr\include" ;
2237
- SQLite3_LIBRARY = " $LibraryRoot \sqlite-3.46.0\usr\lib\SQLite3.lib" ;
2238
- SWIFT_DRIVER_BUILD_TOOLS = " YES" ;
2239
- LLVM_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\llvm" ;
2240
- Clang_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\clang" ;
2241
- Swift_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \tools\swift\lib\cmake\swift" ;
2220
+ function Build-Driver () {
2221
+ [CmdletBinding (PositionalBinding = $false )]
2222
+ param
2223
+ (
2224
+ [Parameter (Position = 0 , Mandatory = $true )]
2225
+ [hashtable ]$Arch ,
2226
+ [switch ] $Build = $false
2227
+ )
2228
+
2229
+ if ($Build ) {
2230
+ $Stopwatch = [Diagnostics.Stopwatch ]::StartNew()
2231
+
2232
+ Isolate- EnvVars {
2233
+ $env: SWIFTCI_USE_LOCAL_DEPS = 1
2234
+ $env: SDKROOT = (Get-PinnedToolchainSDK )
2235
+ $env: Path = " $ ( Get-PinnedToolchainRuntime ) ;$ ( Get-PinnedToolchainTool ) ;${env: Path} "
2236
+
2237
+ $src = " $SourceCache \swift-driver"
2238
+ $dst = (Get-BuildProjectBinaryCache Driver)
2239
+
2240
+ if ($ToBatch ) {
2241
+ Write-Output " "
2242
+ Write-Output " echo Building '$src ' to '$dst ' for arch '$ ( $Arch.LLVMName ) '..."
2243
+ } else {
2244
+ Write-Host - ForegroundColor Cyan " [$ ( [DateTime ]::Now.ToString(" yyyy-MM-dd HH:mm:ss" )) ] Building '$src ' to '$dst ' for arch '$ ( $Arch.LLVMName ) '..."
2245
+ }
2246
+
2247
+ Invoke-Program `
2248
+ " $ ( Get-PinnedToolchainTool ) \swift.exe" build `
2249
+ - c release `
2250
+ -- scratch- path $dst `
2251
+ -- package- path $src `
2252
+ - Xcc - Xclang - Xcc - fno- split-cold - code `
2253
+ - Xlinker " $ ( Get-PinnedToolchainSDK ) \usr\lib\swift\windows\$ ( $BuildArch.LLVMName ) \swiftCore.lib"
2254
+
2255
+ if (-not $ToBatch ) {
2256
+ 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 ) "
2257
+ Write-Host " "
2258
+ }
2259
+
2260
+ if ($Summary ) {
2261
+ $TimingData.Add ([PSCustomObject ]@ {
2262
+ Arch = $BuildArch.LLVMName
2263
+ Checkout = $src.Replace ($SourceCache , ' ' )
2264
+ Platform = " Windows"
2265
+ " Elapsed Time" = $Stopwatch.Elapsed.ToString ()
2266
+ })
2267
+ }
2242
2268
}
2269
+ } else {
2270
+ Build-CMakeProject `
2271
+ - Src $SourceCache \swift- driver `
2272
+ - Bin (Get-HostProjectBinaryCache Driver) `
2273
+ - InstallTo " $ ( $Arch.ToolchainInstallRoot ) \usr" `
2274
+ - Arch $Arch `
2275
+ - Platform Windows `
2276
+ - UseBuiltCompilers C, CXX, Swift `
2277
+ - SwiftSDK (Get-HostSwiftSDK ) `
2278
+ - Defines @ {
2279
+ BUILD_SHARED_LIBS = " YES" ;
2280
+ SwiftSystem_DIR = (Get-HostProjectCMakeModules System);
2281
+ TSC_DIR = (Get-HostProjectCMakeModules ToolsSupportCore);
2282
+ LLBuild_DIR = (Get-HostProjectCMakeModules LLBuild);
2283
+ Yams_DIR = (Get-HostProjectCMakeModules Yams);
2284
+ ArgumentParser_DIR = (Get-HostProjectCMakeModules ArgumentParser);
2285
+ SQLite3_INCLUDE_DIR = " $LibraryRoot \sqlite-3.46.0\usr\include" ;
2286
+ SQLite3_LIBRARY = " $LibraryRoot \sqlite-3.46.0\usr\lib\SQLite3.lib" ;
2287
+ SWIFT_DRIVER_BUILD_TOOLS = " YES" ;
2288
+ LLVM_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\llvm" ;
2289
+ Clang_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \lib\cmake\clang" ;
2290
+ Swift_DIR = " $ ( Get-HostProjectBinaryCache Compilers) \tools\swift\lib\cmake\swift" ;
2291
+ }
2292
+ }
2243
2293
}
2244
2294
2245
2295
function Build-Crypto ($Arch ) {
@@ -2424,7 +2474,7 @@ function Build-TestingMacros() {
2424
2474
Get-HostProjectBinaryCache TestingMacros
2425
2475
}
2426
2476
2427
- $SwiftSDK = $null
2477
+ $SwiftSDK = $ (( Get-Variable " ${Platform} $ ( $Arch .ShortName ) " - ValueOnly).SDKInstallRoot)
2428
2478
if ($Build ) {
2429
2479
$SwiftSDK = $BuildArch.SDKInstallRoot
2430
2480
}
@@ -2455,7 +2505,7 @@ function Build-TestingMacros() {
2455
2505
- Arch $Arch `
2456
2506
- Platform $Platform `
2457
2507
- UseBuiltCompilers Swift `
2458
- - SwiftSDK: $SwiftSDK `
2508
+ - SwiftSDK $SwiftSDK `
2459
2509
- BuildTargets:$Targets `
2460
2510
- Defines @ {
2461
2511
SwiftSyntax_DIR = $SwiftSyntaxCMakeModules ;
@@ -2593,6 +2643,7 @@ Fetch-Dependencies
2593
2643
if (-not $SkipBuild ) {
2594
2644
Invoke-BuildStep Build-CMark $BuildArch
2595
2645
Invoke-BuildStep Build-BuildTools $BuildArch
2646
+ Invoke-BuildStep Build-Driver - Build $BuildArch
2596
2647
if ($IsCrossCompiling ) {
2597
2648
Invoke-BuildStep Build-Compilers - Build $BuildArch
2598
2649
}
0 commit comments