Files
panopainter/scripts/automation/platform-build.ps1

141 lines
4.2 KiB
PowerShell

[CmdletBinding()]
param(
[string[]]$Presets = @("android-arm64", "android-x64", "android-quest-arm64", "android-focus-arm64"),
[string[]]$Targets = @(
"pp_foundation",
"pp_assets",
"pp_paint",
"pp_document",
"pp_renderer_api",
"pp_renderer_gl",
"pp_paint_renderer",
"pp_ui_core",
"pp_platform_api",
"pp_app_core",
"pano_cli",
"pp_foundation_binary_stream_tests",
"pp_foundation_event_tests",
"pp_foundation_log_tests",
"pp_foundation_parse_tests",
"pp_foundation_task_queue_tests",
"pp_foundation_trace_tests",
"pp_assets_brush_package_tests",
"pp_assets_image_format_tests",
"pp_assets_image_metadata_tests",
"pp_assets_image_pixels_tests",
"pp_assets_ppi_header_tests",
"pp_assets_settings_document_tests",
"pp_paint_brush_tests",
"pp_paint_blend_tests",
"pp_paint_stroke_tests",
"pp_paint_stroke_script_tests",
"pp_document_tests",
"pp_document_ppi_import_tests",
"pp_document_ppi_export_tests",
"pp_renderer_api_tests",
"pp_renderer_gl_capabilities_tests",
"pp_renderer_gl_command_plan_tests",
"pp_paint_renderer_compositor_tests",
"pp_platform_api_tests",
"pp_ui_core_color_tests",
"pp_ui_core_layout_value_tests",
"pp_ui_core_layout_xml_tests",
"pp_app_core_about_menu_tests",
"pp_app_core_app_preferences_tests",
"pp_app_core_app_frame_tests",
"pp_app_core_app_shutdown_tests",
"pp_app_core_app_startup_tests",
"pp_app_core_app_status_tests",
"pp_app_core_brush_package_export_tests",
"pp_app_core_brush_package_import_tests",
"pp_app_core_brush_ui_tests",
"pp_app_core_canvas_hotkey_tests",
"pp_app_core_canvas_tool_ui_tests",
"pp_app_core_canvas_view_tests",
"pp_app_core_document_animation_tests",
"pp_app_core_document_canvas_tests",
"pp_app_core_document_cloud_tests",
"pp_app_core_document_export_tests",
"pp_app_core_document_import_tests",
"pp_app_core_document_layer_tests",
"pp_app_core_document_platform_io_tests",
"pp_app_core_document_recording_tests",
"pp_app_core_document_resize_tests",
"pp_app_core_document_route_tests",
"pp_app_core_document_sharing_tests",
"pp_app_core_document_session_tests",
"pp_app_core_file_menu_tests",
"pp_app_core_grid_ui_tests",
"pp_app_core_history_ui_tests",
"pp_app_core_main_toolbar_tests",
"pp_app_core_quick_ui_tests",
"pp_app_core_tools_menu_tests"
)
)
$ErrorActionPreference = "Stop"
function Expand-ArgumentList {
param([string[]]$Values)
$expanded = @()
foreach ($value in $Values) {
foreach ($part in ($value -split ",")) {
$trimmed = $part.Trim()
if ($trimmed.Length -gt 0) {
$expanded += $trimmed
}
}
}
return $expanded
}
$Presets = @(Expand-ArgumentList -Values $Presets)
$Targets = @(Expand-ArgumentList -Values $Targets)
$started = Get-Date
$results = @()
$overallExitCode = 0
foreach ($preset in $Presets) {
& cmake --preset $preset
$configureExitCode = $LASTEXITCODE
if ($configureExitCode -ne 0) {
$overallExitCode = $configureExitCode
$results += [ordered]@{
preset = $preset
stage = "configure"
exitCode = $configureExitCode
}
continue
}
$buildArgs = @("--build", "--preset", $preset)
foreach ($target in $Targets) {
$buildArgs += @("--target", $target)
}
& cmake @buildArgs
$buildExitCode = $LASTEXITCODE
if ($buildExitCode -ne 0 -and $overallExitCode -eq 0) {
$overallExitCode = $buildExitCode
}
$results += [ordered]@{
preset = $preset
stage = "build"
targets = $Targets
exitCode = $buildExitCode
}
}
$elapsed = [int]((Get-Date) - $started).TotalMilliseconds
[ordered]@{
command = "platform-build"
exitCode = $overallExitCode
elapsedMs = $elapsed
results = $results
} | ConvertTo-Json -Compress -Depth 6
exit $overallExitCode