55 lines
1.6 KiB
PowerShell
55 lines
1.6 KiB
PowerShell
|
|
<#
|
||
|
|
.SYNOPSIS
|
||
|
|
Builds a Flutter Windows installer with versioning support.
|
||
|
|
|
||
|
|
.DESCRIPTION
|
||
|
|
This script builds a Flutter Windows application and creates an installer using Inno Setup.
|
||
|
|
|
||
|
|
.PARAMETER buildType
|
||
|
|
The build type (release or debug). Default is "release".
|
||
|
|
|
||
|
|
.PARAMETER buildName
|
||
|
|
The build name (version). Default is "0.0.0".
|
||
|
|
|
||
|
|
.EXAMPLE
|
||
|
|
.\build-windows-installer.ps1 -buildType debug -buildName 1.0.0
|
||
|
|
Builds a debug Windows application with version 1.0.0.
|
||
|
|
#>
|
||
|
|
|
||
|
|
[CmdletBinding()]
|
||
|
|
param (
|
||
|
|
[string]$buildType = "release", # Default value is "release"
|
||
|
|
[string]$buildName = "0.0.0" # Default value is "0.0.0"
|
||
|
|
)
|
||
|
|
|
||
|
|
$buildNumber = "$(Get-Date -Format 'yyyyMMddHHmmss')"
|
||
|
|
|
||
|
|
# Define the file path and the new version value
|
||
|
|
$issTplFile = "./busylight-buddy-windows-installer-builder.iss.tpl"
|
||
|
|
$issFile = "./busylight-buddy-windows-installer-builder.iss"
|
||
|
|
|
||
|
|
cd $PSScriptRoot
|
||
|
|
|
||
|
|
# Build an array for arguments
|
||
|
|
$flutterArgs = @(
|
||
|
|
"--$buildType",
|
||
|
|
"--build-name=$buildName",
|
||
|
|
"--build-number=$buildNumber"
|
||
|
|
)
|
||
|
|
|
||
|
|
Write-Output "Building Windows application with arguments: $($flutterArgs -join ' ')"
|
||
|
|
|
||
|
|
# Build the Windows application using Flutter
|
||
|
|
flutter build windows @flutterArgs
|
||
|
|
|
||
|
|
# Build the Windows installer using Inno Setup Compiler (ISCC.exe)
|
||
|
|
# Read the content of Inno Setup template file
|
||
|
|
$content = Get-Content -Path $issTplFile -Raw
|
||
|
|
|
||
|
|
# Replace the placeholder with the new version value
|
||
|
|
$updatedContent = $content -replace '%%MyAppVersion%%', $buildName
|
||
|
|
|
||
|
|
# Write the updated content back to Inno Setup file
|
||
|
|
$updatedContent | Set-Content -Path $issFile
|
||
|
|
|
||
|
|
ISCC.exe $issFile
|