Files
panopainter/scripts/automation/android-legacy-package-build.ps1

104 lines
2.5 KiB
PowerShell

[CmdletBinding()]
param(
[string[]]$Packages = @("standard"),
[switch]$ConfigureOnly
)
$ErrorActionPreference = "Stop"
. "$PSScriptRoot\android-sdk-env.ps1"
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
}
$Packages = @(Expand-ArgumentList -Values $Packages)
$toolchain = Set-AndroidSdkToolchainEnvironment
$packageMap = @{
standard = "android/android"
quest = "android/quest"
focus = "android/focus"
}
$started = Get-Date
$results = @()
$overallExitCode = 0
foreach ($package in $Packages) {
if (!$packageMap.ContainsKey($package)) {
throw "Unknown Android package '$package'. Expected one of: standard, quest, focus."
}
$sourceDir = $packageMap[$package]
$buildDir = "out/build/android-legacy-$package-arm64"
$toolchainFile = Join-Path $toolchain.ndkPath "build\cmake\android.toolchain.cmake"
$configureArgs = @(
"-S", $sourceDir,
"-B", $buildDir,
"-G", "Ninja",
"-DCMAKE_TOOLCHAIN_FILE=$toolchainFile",
"-DANDROID_ABI=arm64-v8a",
"-DANDROID_PLATFORM=android-23"
)
& $toolchain.cmakeCommand @configureArgs
$configureExitCode = $LASTEXITCODE
if ($configureExitCode -ne 0) {
if ($overallExitCode -eq 0) {
$overallExitCode = $configureExitCode
}
$results += [ordered]@{
package = $package
stage = "configure"
exitCode = $configureExitCode
}
continue
}
if ($ConfigureOnly) {
$results += [ordered]@{
package = $package
stage = "configure"
exitCode = 0
}
continue
}
& $toolchain.cmakeCommand --build $buildDir --target native-lib
$buildExitCode = $LASTEXITCODE
if ($buildExitCode -ne 0 -and $overallExitCode -eq 0) {
$overallExitCode = $buildExitCode
}
$results += [ordered]@{
package = $package
stage = "build"
target = "native-lib"
exitCode = $buildExitCode
}
}
$elapsed = [int]((Get-Date) - $started).TotalMilliseconds
[ordered]@{
command = "android-legacy-package-build"
exitCode = $overallExitCode
elapsedMs = $elapsed
androidToolchain = $toolchain
results = $results
} | ConvertTo-Json -Compress -Depth 6
exit $overallExitCode