@@ -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