Files

72 lines
2.0 KiB
PowerShell
Raw Permalink Normal View History

2026-07-14 11:11:36 +08:00
$script:SmPlayerProjectRoot = Split-Path -Parent $PSScriptRoot
$script:SmPlayerVersionCli = Join-Path $PSScriptRoot 'version.dart'
function Get-SmPlayerCurrentVersion {
param(
[Parameter(Mandatory = $true)][string]$Platform,
[string]$ProjectRoot = $script:SmPlayerProjectRoot
)
return (& dart $script:SmPlayerVersionCli current $Platform --project-root $ProjectRoot)
}
function ConvertTo-SmPlayerBuildNumber {
param([Parameter(Mandatory = $true)][string]$Version)
return [int](& dart $script:SmPlayerVersionCli build-number $Version)
}
function Test-SmPlayerFlutterOptionPresent {
param(
[string[]]$Arguments = @(),
[Parameter(Mandatory = $true)][string]$OptionName
)
foreach ($argument in @($Arguments)) {
if ($argument -eq $OptionName -or $argument.StartsWith("$OptionName=")) { return $true }
}
return $false
}
function Test-SmPlayerDartDefinePresent {
param(
[string[]]$Arguments = @(),
[Parameter(Mandatory = $true)][string]$DefineName
)
$previousArgument = ''
foreach ($argument in @($Arguments)) {
if ($argument -like "--dart-define=$DefineName=*") { return $true }
if ($previousArgument -eq '--dart-define' -and $argument -like "$DefineName=*") { return $true }
$previousArgument = $argument
}
return $false
}
function Add-SmPlayerVersionDartDefine {
param(
[string[]]$Arguments = @(),
[Parameter(Mandatory = $true)][string]$Version
)
$result = @($Arguments)
if (-not (Test-SmPlayerDartDefinePresent -Arguments $result -DefineName 'SMPLAYER_VERSION')) {
$result += "--dart-define=SMPLAYER_VERSION=$Version"
}
return $result
}
function Add-SmPlayerBuildName {
param(
[string[]]$Arguments = @(),
[Parameter(Mandatory = $true)][string]$Version
)
$result = @($Arguments)
if (-not (Test-SmPlayerFlutterOptionPresent -Arguments $result -OptionName '--build-name')) {
$result += @('--build-name', $Version)
}
return $result
}