@@ -69,6 +69,10 @@ An array of names of projects to run tests for.
69
69
.PARAMETER Stage
70
70
The path to a directory where built msi's and the installer executable should be staged (for CI).
71
71
72
+ .PARAMETER BuildTo
73
+ The name of a build step after which the script should terminate.
74
+ For example: -BuildTo ToolsSupportCore
75
+
72
76
.PARAMETER ToBatch
73
77
When set, runs the script in a special mode which outputs a listing of command invocations
74
78
in batch file format instead of executing them.
@@ -98,6 +102,7 @@ param(
98
102
[bool] $DefaultsLLD = $true,
99
103
[string[]] $Test = @(),
100
104
[string] $Stage = "",
105
+ [string] $BuildTo = "",
101
106
[switch] $ToBatch
102
107
)
103
108
@@ -234,6 +239,13 @@ $SDKArchs = @($SDKs | ForEach-Object {
234
239
})
235
240
236
241
# Build functions
242
+ function Invoke-BuildStep([string]$Name) {
243
+ & $Name @Args
244
+ if ($Name.Replace("Build-", "") -eq $BuildTo) {
245
+ exit 0
246
+ }
247
+ }
248
+
237
249
function Get-ProjectBinaryCache($Arch, $ID) {
238
250
return "$BinaryCache\" + ($Arch.BuildID + $ID)
239
251
}
@@ -878,14 +890,14 @@ function Build-ZLib($Arch) {
878
890
879
891
Build-CMakeProject `
880
892
-Src $SourceCache\zlib `
881
- -Bin "$($Arch.BinaryCache)\zlib-1.2.11 " `
882
- -InstallTo $LibraryRoot\zlib-1.2.11 \usr `
893
+ -Bin "$($Arch.BinaryCache)\zlib-1.3 " `
894
+ -InstallTo $LibraryRoot\zlib-1.3 \usr `
883
895
-Arch $Arch `
884
896
-BuildTargets default `
885
897
-Defines @{
886
898
BUILD_SHARED_LIBS = "NO";
887
- INSTALL_BIN_DIR = "$LibraryRoot\zlib-1.2.11 \usr\bin\$ArchName";
888
- INSTALL_LIB_DIR = "$LibraryRoot\zlib-1.2.11 \usr\lib\$ArchName";
899
+ INSTALL_BIN_DIR = "$LibraryRoot\zlib-1.3 \usr\bin\$ArchName";
900
+ INSTALL_LIB_DIR = "$LibraryRoot\zlib-1.3 \usr\lib\$ArchName";
889
901
}
890
902
}
891
903
@@ -894,8 +906,8 @@ function Build-XML2($Arch) {
894
906
895
907
Build-CMakeProject `
896
908
-Src $SourceCache\libxml2 `
897
- -Bin "$($Arch.BinaryCache)\libxml2-2.9.12 " `
898
- -InstallTo "$LibraryRoot\libxml2-2.9.12 \usr" `
909
+ -Bin "$($Arch.BinaryCache)\libxml2-2.11.5 " `
910
+ -InstallTo "$LibraryRoot\libxml2-2.11.5 \usr" `
899
911
-Arch $Arch `
900
912
-BuildTargets default `
901
913
-Defines @{
@@ -946,8 +958,8 @@ function Build-CURL($Arch) {
946
958
CURL_ZLIB = "YES";
947
959
ENABLE_UNIX_SOCKETS = "NO";
948
960
ENABLE_THREADED_RESOLVER = "NO";
949
- ZLIB_ROOT = "$LibraryRoot\zlib-1.2.11 \usr";
950
- ZLIB_LIBRARY = "$LibraryRoot\zlib-1.2.11 \usr\lib\$ArchName\zlibstatic.lib";
961
+ ZLIB_ROOT = "$LibraryRoot\zlib-1.3 \usr";
962
+ ZLIB_LIBRARY = "$LibraryRoot\zlib-1.3 \usr\lib\$ArchName\zlibstatic.lib";
951
963
}
952
964
}
953
965
@@ -1076,11 +1088,11 @@ function Build-Foundation($Arch, [switch]$Test = $false) {
1076
1088
ICU_I18N_LIBRARY_RELEASE = "$LibraryRoot\icu-69.1\usr\lib\$ShortArch\sicuin69.lib";
1077
1089
ICU_ROOT = "$LibraryRoot\icu-69.1\usr";
1078
1090
ICU_UC_LIBRARY_RELEASE = "$LibraryRoot\icu-69.1\usr\lib\$ShortArch\sicuuc69.lib";
1079
- LIBXML2_LIBRARY = "$LibraryRoot\libxml2-2.9.12 \usr\lib\$ShortArch\libxml2s.lib";
1080
- LIBXML2_INCLUDE_DIR = "$LibraryRoot\libxml2-2.9.12 \usr\include\libxml2";
1091
+ LIBXML2_LIBRARY = "$LibraryRoot\libxml2-2.11.5 \usr\lib\$ShortArch\libxml2s.lib";
1092
+ LIBXML2_INCLUDE_DIR = "$LibraryRoot\libxml2-2.11.5 \usr\include\libxml2";
1081
1093
LIBXML2_DEFINITIONS = "/DLIBXML_STATIC";
1082
- ZLIB_LIBRARY = "$LibraryRoot\zlib-1.2.11 \usr\lib\$ShortArch\zlibstatic.lib";
1083
- ZLIB_INCLUDE_DIR = "$LibraryRoot\zlib-1.2.11 \usr\include";
1094
+ ZLIB_LIBRARY = "$LibraryRoot\zlib-1.3 \usr\lib\$ShortArch\zlibstatic.lib";
1095
+ ZLIB_INCLUDE_DIR = "$LibraryRoot\zlib-1.3 \usr\include";
1084
1096
dispatch_DIR = "$DispatchBinaryCache\cmake\modules";
1085
1097
} + $TestingDefines)
1086
1098
}
@@ -1189,13 +1201,13 @@ function Install-Platform($Arch) {
1189
1201
}
1190
1202
1191
1203
function Build-SQLite($Arch) {
1192
- $SrcPath = "$SourceCache\sqlite-3.36.0 "
1204
+ $SrcPath = "$SourceCache\sqlite-3.43.2 "
1193
1205
1194
1206
# Download the sources
1195
1207
if (-not (Test-Path $SrcPath)) {
1196
- $ZipPath = "$env:TEMP\sqlite-amalgamation-3360000 .zip"
1208
+ $ZipPath = "$env:TEMP\sqlite-amalgamation-3430200 .zip"
1197
1209
if (-not $ToBatch) { Remove-item $ZipPath -ErrorAction Ignore | Out-Null }
1198
- Invoke-Program curl.exe -- -sL https://sqlite.org/2021 /sqlite-amalgamation-3360000 .zip -o $ZipPath
1210
+ Invoke-Program curl.exe -- -sL https://sqlite.org/2023 /sqlite-amalgamation-3430200 .zip -o $ZipPath
1199
1211
1200
1212
if (-not $ToBatch) { New-Item -Type Directory -Path $SrcPath -ErrorAction Ignore | Out-Null }
1201
1213
Invoke-Program "$UnixToolsBinDir\unzip.exe" -- -j -o $ZipPath -d $SrcPath
@@ -1225,8 +1237,8 @@ install(FILES sqlite3.h sqlite3ext.h DESTINATION include)
1225
1237
1226
1238
Build-CMakeProject `
1227
1239
-Src $SrcPath `
1228
- -Bin "$($Arch.BinaryCache)\sqlite-3.36.0 " `
1229
- -InstallTo $LibraryRoot\sqlite-3.36.0 \usr `
1240
+ -Bin "$($Arch.BinaryCache)\sqlite-3.43.2 " `
1241
+ -InstallTo $LibraryRoot\sqlite-3.43.2 \usr `
1230
1242
-Arch $Arch `
1231
1243
-BuildTargets default `
1232
1244
-Defines @{
@@ -1297,8 +1309,8 @@ function Build-LLBuild($Arch, [switch]$Test = $false) {
1297
1309
CMAKE_INSTALL_PREFIX = "$($Arch.ToolchainInstallRoot)\usr";
1298
1310
BUILD_SHARED_LIBS = "YES";
1299
1311
LLBUILD_SUPPORT_BINDINGS = "Swift";
1300
- SQLite3_INCLUDE_DIR = "$LibraryRoot\sqlite-3.36.0 \usr\include";
1301
- SQLite3_LIBRARY = "$LibraryRoot\sqlite-3.36.0 \usr\lib\SQLite3.lib";
1312
+ SQLite3_INCLUDE_DIR = "$LibraryRoot\sqlite-3.43.2 \usr\include";
1313
+ SQLite3_LIBRARY = "$LibraryRoot\sqlite-3.43.2 \usr\lib\SQLite3.lib";
1302
1314
})
1303
1315
}
1304
1316
}
@@ -1348,8 +1360,8 @@ function Build-Driver($Arch) {
1348
1360
LLBuild_DIR = "$BinaryCache\4\cmake\modules";
1349
1361
Yams_DIR = "$BinaryCache\5\cmake\modules";
1350
1362
ArgumentParser_DIR = "$BinaryCache\6\cmake\modules";
1351
- SQLite3_INCLUDE_DIR = "$LibraryRoot\sqlite-3.36.0 \usr\include";
1352
- SQLite3_LIBRARY = "$LibraryRoot\sqlite-3.36.0 \usr\lib\SQLite3.lib";
1363
+ SQLite3_INCLUDE_DIR = "$LibraryRoot\sqlite-3.43.2 \usr\include";
1364
+ SQLite3_LIBRARY = "$LibraryRoot\sqlite-3.43.2 \usr\lib\SQLite3.lib";
1353
1365
}
1354
1366
}
1355
1367
@@ -1435,8 +1447,8 @@ function Build-PackageManager($Arch) {
1435
1447
SwiftCollections_DIR = "$BinaryCache\9\cmake\modules";
1436
1448
SwiftASN1_DIR = "$BinaryCache\10\cmake\modules";
1437
1449
SwiftCertificates_DIR = "$BinaryCache\11\cmake\modules";
1438
- SQLite3_INCLUDE_DIR = "$LibraryRoot\sqlite-3.36.0 \usr\include";
1439
- SQLite3_LIBRARY = "$LibraryRoot\sqlite-3.36.0 \usr\lib\SQLite3.lib";
1450
+ SQLite3_INCLUDE_DIR = "$LibraryRoot\sqlite-3.43.2 \usr\include";
1451
+ SQLite3_LIBRARY = "$LibraryRoot\sqlite-3.43.2 \usr\lib\SQLite3.lib";
1440
1452
}
1441
1453
}
1442
1454
@@ -1596,23 +1608,23 @@ if (-not $SkipBuild) {
1596
1608
1597
1609
if (-not $SkipBuild) {
1598
1610
Ensure-SwiftToolchain $HostArch
1599
- Build-BuildTools $HostArch
1600
- Build-Compilers $HostArch
1611
+ Invoke-BuildStep Build-BuildTools $HostArch
1612
+ Invoke-BuildStep Build-Compilers $HostArch
1601
1613
}
1602
1614
1603
1615
foreach ($Arch in $SDKArchs) {
1604
1616
if (-not $SkipBuild) {
1605
- Build-ZLib $Arch
1606
- Build-XML2 $Arch
1607
- Build-CURL $Arch
1608
- Build-ICU $Arch
1609
- Build-LLVM $Arch
1617
+ Invoke-BuildStep Build-ZLib $Arch
1618
+ Invoke-BuildStep Build-XML2 $Arch
1619
+ Invoke-BuildStep Build-CURL $Arch
1620
+ Invoke-BuildStep Build-ICU $Arch
1621
+ Invoke-BuildStep Build-LLVM $Arch
1610
1622
1611
1623
# Build platform: SDK, Redist and XCTest
1612
- Build-Runtime $Arch
1613
- Build-Dispatch $Arch
1614
- Build-Foundation $Arch
1615
- Build-XCTest $Arch
1624
+ Invoke-BuildStep Build-Runtime $Arch
1625
+ Invoke-BuildStep Build-Dispatch $Arch
1626
+ Invoke-BuildStep Build-Foundation $Arch
1627
+ Invoke-BuildStep Build-XCTest $Arch
1616
1628
}
1617
1629
}
1618
1630
@@ -1629,33 +1641,33 @@ if (-not $ToBatch) {
1629
1641
}
1630
1642
1631
1643
if (-not $SkipBuild) {
1632
- Build-SQLite $HostArch
1633
- Build-System $HostArch
1634
- Build-ToolsSupportCore $HostArch
1635
- Build-LLBuild $HostArch
1636
- Build-Yams $HostArch
1637
- Build-ArgumentParser $HostArch
1638
- Build-Driver $HostArch
1639
- Build-Crypto $HostArch
1640
- Build-Collections $HostArch
1641
- Build-ASN1 $HostArch
1642
- Build-Certificates $HostArch
1643
- Build-PackageManager $HostArch
1644
- Build-IndexStoreDB $HostArch
1645
- Build-Syntax $HostArch
1646
- Build-SourceKitLSP $HostArch
1644
+ Invoke-BuildStep Build-SQLite $HostArch
1645
+ Invoke-BuildStep Build-System $HostArch
1646
+ Invoke-BuildStep Build-ToolsSupportCore $HostArch
1647
+ Invoke-BuildStep Build-LLBuild $HostArch
1648
+ Invoke-BuildStep Build-Yams $HostArch
1649
+ Invoke-BuildStep Build-ArgumentParser $HostArch
1650
+ Invoke-BuildStep Build-Driver $HostArch
1651
+ Invoke-BuildStep Build-Crypto $HostArch
1652
+ Invoke-BuildStep Build-Collections $HostArch
1653
+ Invoke-BuildStep Build-ASN1 $HostArch
1654
+ Invoke-BuildStep Build-Certificates $HostArch
1655
+ Invoke-BuildStep Build-PackageManager $HostArch
1656
+ Invoke-BuildStep Build-IndexStoreDB $HostArch
1657
+ Invoke-BuildStep Build-Syntax $HostArch
1658
+ Invoke-BuildStep Build-SourceKitLSP $HostArch
1647
1659
}
1648
1660
1649
1661
Install-HostToolchain
1650
1662
1651
1663
if (-not $SkipBuild) {
1652
- Build-Inspect $HostArch
1653
- Build-Format $HostArch
1654
- Build-DocC $HostArch
1664
+ Invoke-BuildStep Build-Inspect $HostArch
1665
+ Invoke-BuildStep Build-Format $HostArch
1666
+ Invoke-BuildStep Build-DocC $HostArch
1655
1667
}
1656
1668
1657
1669
if (-not $SkipPackaging) {
1658
- Build-Installer
1670
+ Invoke-BuildStep Build-Installer
1659
1671
}
1660
1672
1661
1673
if ($Test -contains "swift") { Build-Compilers $HostArch -Test }
0 commit comments