[Windows] Rework flutter build helper

This commit is contained in:
2026-03-25 18:21:17 +01:00
parent ce44343b46
commit 5311174a4e
3 changed files with 78 additions and 2 deletions
+2 -1
View File
@@ -49,4 +49,5 @@ android/key.properties
windows/installer/* windows/installer/*
bugreport* bugreport*
!downloads/* !downloads/*
android/builds.json android/builds.json
windows/busylight-buddy-windows-installer-builder.iss
+14 -1
View File
@@ -3,7 +3,20 @@ $buildNumber = "$(Get-Date -Format 'yyyyMMddHHmmss')"
cd $PSScriptRoot cd $PSScriptRoot
# Define the file path and the new version value
$issTplFile = "./busylight-buddy-windows-installer-builder.iss.tpl"
$issFile = "./busylight-buddy-windows-installer-builder.iss"
# Read the content of the 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 the file
$updatedContent | Set-Content -Path $issFile
# Build the Windows application using Flutter # Build the Windows application using Flutter
flutter build windows --build-name=$buildName --build-number=$buildNumber flutter build windows --build-name=$buildName --build-number=$buildNumber
# Build the Windows installer using Inno Setup Compiler (ISCC.exe) # Build the Windows installer using Inno Setup Compiler (ISCC.exe)
ISCC.exe ./busylight-buddy-windows-installer-builder.iss ISCC.exe $issFile
@@ -0,0 +1,62 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
; Non-commercial use only
#define MyAppName "BusyLight Buddy"
;#define MyAppVersion "0.0.1"
#define MyAppVersion "%%MyAppVersion%%"
#define MyAppPublisher "iGoX"
#define MyAppURL "https://github.com/igox/busylight-buddy"
#define MyAppExeName "busylight_buddy.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{0E33DC67-F87E-4363-917F-B4FE941C7677}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
UninstallDisplayIcon={app}\{#MyAppExeName}
; "ArchitecturesAllowed=x64compatible" specifies that Setup cannot run
; on anything but x64 and Windows 11 on Arm.
ArchitecturesAllowed=x64compatible
; "ArchitecturesInstallIn64BitMode=x64compatible" requests that the
; install be done in "64-bit mode" on x64 or Windows 11 on Arm,
; meaning it should use the native 64-bit Program Files directory and
; the 64-bit view of the registry.
ArchitecturesInstallIn64BitMode=x64compatible
DisableProgramGroupPage=yes
LicenseFile="..\LICENSE"
; Uncomment the following line to run in non administrative install mode (install for current user only).
;PrivilegesRequired=lowest
PrivilegesRequiredOverridesAllowed=dialog
OutputDir="installer"
OutputBaseFilename=BusyLight-Buddy-Installer
SetupIconFile="runner\resources\app_icon.ico"
SolidCompression=yes
WizardStyle=modern dynamic
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "..\build\windows\x64\runner\Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\build\windows\x64\runner\Release\flutter_windows.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\build\windows\x64\runner\Release\data\*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent