Initial commit

This commit is contained in:
admin1
2026-07-14 11:11:36 +08:00
commit 656499cf94
604 changed files with 119518 additions and 0 deletions
+87
View File
@@ -0,0 +1,87 @@
[CmdletBinding()]
param(
[string]$Version,
[switch]$SkipFlutterBuild
)
$ErrorActionPreference = 'Stop'
$ProjectRoot = Split-Path -Parent $PSScriptRoot
Set-Location $ProjectRoot
. (Join-Path $PSScriptRoot 'version-common.ps1')
Write-Host "==> Project root: $ProjectRoot" -ForegroundColor Cyan
if (-not $Version) {
$Version = Get-SmPlayerCurrentVersion -Platform windows -ProjectRoot $ProjectRoot
}
Write-Host "==> Version: $Version" -ForegroundColor Cyan
$IsccCandidates = @(
"$Env:ProgramFiles\Inno Setup 6\ISCC.exe",
"${Env:ProgramFiles(x86)}\Inno Setup 6\ISCC.exe",
"$Env:LOCALAPPDATA\Programs\Inno Setup 6\ISCC.exe",
"$Env:ProgramFiles\Inno Setup 5\ISCC.exe",
"${Env:ProgramFiles(x86)}\Inno Setup 5\ISCC.exe",
"$Env:LOCALAPPDATA\Programs\Inno Setup 5\ISCC.exe"
)
$Iscc = $IsccCandidates | Where-Object { Test-Path $_ } | Select-Object -First 1
if (-not $Iscc) {
$cmd = Get-Command iscc.exe -ErrorAction SilentlyContinue
if ($cmd) { $Iscc = $cmd.Source }
}
if (-not $Iscc) {
Write-Host ""
Write-Host "[X] ISCC.exe not found." -ForegroundColor Red
Write-Host " Install: https://jrsoftware.org/isdl.php" -ForegroundColor Yellow
Write-Host " Or: winget install -e --id JRSoftware.InnoSetup" -ForegroundColor Yellow
exit 1
}
Write-Host "==> ISCC: $Iscc" -ForegroundColor Cyan
if (-not $SkipFlutterBuild) {
Write-Host '==> flutter pub get' -ForegroundColor Cyan
& flutter pub get
if ($LASTEXITCODE -ne 0) { throw "flutter pub get failed (exit $LASTEXITCODE)" }
$prepareFvpScript = Join-Path $PSScriptRoot 'prepare-fvp-windows-deps.ps1'
& powershell -ExecutionPolicy Bypass -File $prepareFvpScript
if ($LASTEXITCODE -ne 0) {
throw "Failed to prepare pinned fvp Windows dependencies (exit $LASTEXITCODE)"
}
$flutterBuildArgs = @('build', 'windows', '--release', '--build-name', $Version)
$flutterBuildArgs = Add-SmPlayerVersionDartDefine -Arguments $flutterBuildArgs -Version $Version
Write-Host "==> flutter $($flutterBuildArgs -join ' ')" -ForegroundColor Cyan
$Env:FVP_DEPS_LATEST = $null
& flutter @flutterBuildArgs
if ($LASTEXITCODE -ne 0) { throw "flutter build failed (exit $LASTEXITCODE)" }
} else {
Write-Host "==> Skipping flutter build (--SkipFlutterBuild)" -ForegroundColor Yellow
}
$ReleaseDir = Join-Path $ProjectRoot "build\windows\x64\runner\Release"
$Exe = Join-Path $ReleaseDir "smplayer.exe"
if (-not (Test-Path $Exe)) {
throw "Build artifact not found: $Exe (re-run without -SkipFlutterBuild)"
}
$Iss = Join-Path $ProjectRoot "installer\sm_emby.iss"
$OutputDir = Join-Path $ProjectRoot "build\installer"
New-Item -ItemType Directory -Force -Path $OutputDir | Out-Null
Write-Host "==> Building installer" -ForegroundColor Cyan
& $Iscc "/DAppVersion=$Version" $Iss
if ($LASTEXITCODE -ne 0) { throw "ISCC failed (exit $LASTEXITCODE)" }
$Setup = Join-Path $OutputDir "smplayer-setup-$Version-x64.exe"
if (Test-Path $Setup) {
$size = (Get-Item $Setup).Length / 1MB
Write-Host ""
Write-Host "[OK] Installer generated:" -ForegroundColor Green
Write-Host " $Setup" -ForegroundColor Green
Write-Host (" Size: {0:N2} MB" -f $size) -ForegroundColor Green
} else {
Write-Host "[!] Expected artifact missing, check $OutputDir" -ForegroundColor Yellow
}