@@ -381,11 +381,40 @@ $KnownNDKs = @{
381
381
}
382
382
}
383
383
384
-
385
384
$IsCrossCompiling = $HostArchName -ne $BuildArchName
386
385
387
386
$TimingData = New-Object System.Collections.Generic.List[System.Object ]
388
387
388
+ function Add-TimingData {
389
+ param (
390
+ [Parameter (Mandatory )]
391
+ [string ] $Arch ,
392
+ [Parameter (Mandatory )]
393
+ [string ] $Platform ,
394
+ [Parameter (Mandatory )]
395
+ [string ] $BuildStep ,
396
+ [Parameter (Mandatory )]
397
+ [System.TimeSpan ] $ElapsedTime
398
+ )
399
+
400
+ $TimingData.Add ([PSCustomObject ]@ {
401
+ Arch = $Arch
402
+ Platform = $Platform
403
+ " Build Step" = $BuildStep
404
+ " Elapsed Time" = $ElapsedTime.ToString ()
405
+ })
406
+ }
407
+
408
+ function Write-Summary {
409
+ Write-Host " Summary:" - ForegroundColor Cyan
410
+
411
+ # Sort timing data by elapsed time (descending)
412
+ $TimingData `
413
+ | Select-Object " Build Step" , Platform, Arch, " Elapsed Time" `
414
+ | Sort-Object - Descending - Property " Elapsed Time" `
415
+ | Format-Table - AutoSize
416
+ }
417
+
389
418
function Get-AndroidNDK {
390
419
$NDK = $KnownNDKs [$AndroidNDKVersion ]
391
420
if (-not $NDK ) { throw " Unsupported Android NDK version" }
@@ -458,9 +487,20 @@ $WindowsSDKArchs = @($WindowsSDKs | ForEach-Object {
458
487
})
459
488
460
489
# Build functions
461
- function Invoke-BuildStep ([string ]$Name ) {
490
+ function Invoke-BuildStep ([string ] $Name ) {
491
+ if ($Summary ) {
492
+ $Stopwatch = [Diagnostics.Stopwatch ]::StartNew()
493
+ }
494
+
462
495
& $Name @Args
496
+
497
+ if ($Summary ) {
498
+ Add-TimingData $BuildArch.LLVMName " Windows" ($Name -replace " Build-" , " " ) $Stopwatch.Elapsed
499
+ }
463
500
if ($Name.Replace (" Build-" , " " ) -eq $BuildTo ) {
501
+ if ($Summary ) {
502
+ Write-Summary
503
+ }
464
504
exit 0
465
505
}
466
506
}
@@ -732,6 +772,7 @@ function Invoke-VsDevShell($Arch) {
732
772
}
733
773
734
774
function Get-Dependencies {
775
+ Write-Host " [$ ( [DateTime ]::Now.ToString(" yyyy-MM-dd HH:mm:ss" )) ] Fetch-Dependencies ..." - ForegroundColor Cyan
735
776
$ProgressPreference = " SilentlyContinue"
736
777
737
778
$WebClient = New-Object Net.WebClient
@@ -949,12 +990,7 @@ function Get-Dependencies {
949
990
Write-Host " "
950
991
}
951
992
if ($Summary ) {
952
- $TimingData.Add ([PSCustomObject ]@ {
953
- Arch = $BuildArch.LLVMName
954
- Platform = ' Windows'
955
- Checkout = ' Get-Dependencies'
956
- " Elapsed Time" = $Stopwatch.Elapsed.ToString ()
957
- })
993
+ Add-TimingData $BuildArch.LLVMName " Windows" " Get-Dependencies" $Stopwatch.Elapsed
958
994
}
959
995
}
960
996
@@ -1078,8 +1114,6 @@ function Build-CMakeProject {
1078
1114
Write-Host - ForegroundColor Cyan " [$ ( [DateTime ]::Now.ToString(" yyyy-MM-dd HH:mm:ss" )) ] Building '$Src ' to '$Bin ' ..."
1079
1115
}
1080
1116
1081
- $Stopwatch = [Diagnostics.Stopwatch ]::StartNew()
1082
-
1083
1117
# Enter the developer command shell early so we can resolve cmake.exe
1084
1118
# for version checks.
1085
1119
Invoke-IsolatingEnvVars {
@@ -1400,15 +1434,6 @@ function Build-CMakeProject {
1400
1434
Write-Host - ForegroundColor Cyan " [$ ( [DateTime ]::Now.ToString(" yyyy-MM-dd HH:mm:ss" )) ] Finished building '$Src ' to '$Bin ' in $ ( $Stopwatch.Elapsed ) "
1401
1435
Write-Host " "
1402
1436
}
1403
-
1404
- if ($Summary ) {
1405
- $TimingData.Add ([PSCustomObject ]@ {
1406
- Arch = $Arch.LLVMName
1407
- Platform = $Platform
1408
- Checkout = $Src.Replace ($SourceCache , ' ' )
1409
- " Elapsed Time" = $Stopwatch.Elapsed.ToString ()
1410
- })
1411
- }
1412
1437
}
1413
1438
1414
1439
enum SPMBuildAction {
@@ -1494,12 +1519,7 @@ function Build-SPMProject {
1494
1519
}
1495
1520
1496
1521
if ($Summary ) {
1497
- $TimingData.Add ([PSCustomObject ]@ {
1498
- Arch = $Arch.LLVMName
1499
- Checkout = $Src.Replace ($SourceCache , ' ' )
1500
- Platform = " Windows"
1501
- " Elapsed Time" = $Stopwatch.Elapsed.ToString ()
1502
- })
1522
+ Add-TimingData $BuildArch.LLVMName " Windows" $Src.Replace ($SourceCache , ' ' ) $Stopwatch.Elapsed
1503
1523
}
1504
1524
}
1505
1525
@@ -3352,6 +3372,6 @@ if (-not $IsCrossCompiling) {
3352
3372
exit 1
3353
3373
} finally {
3354
3374
if ($Summary ) {
3355
- $TimingData | Select-Object Platform , Arch , Checkout , " Elapsed Time " | Sort-Object - Descending - Property " Elapsed Time " | Format-Table - AutoSize
3375
+ Write-Summary
3356
3376
}
3357
3377
}
0 commit comments