From 5311174a4e54c1259085d6c97c1f5e1148451413 Mon Sep 17 00:00:00 2001 From: iGoX Date: Wed, 25 Mar 2026 18:21:17 +0100 Subject: [PATCH] [Windows] Rework flutter build helper --- .gitignore | 3 +- windows/build-installer.ps1 | 15 ++++- ...ht-buddy-windows-installer-builder.iss.tpl | 62 +++++++++++++++++++ 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 windows/busylight-buddy-windows-installer-builder.iss.tpl diff --git a/.gitignore b/.gitignore index 73448e6..189846c 100644 --- a/.gitignore +++ b/.gitignore @@ -49,4 +49,5 @@ android/key.properties windows/installer/* bugreport* !downloads/* -android/builds.json \ No newline at end of file +android/builds.json +windows/busylight-buddy-windows-installer-builder.iss \ No newline at end of file diff --git a/windows/build-installer.ps1 b/windows/build-installer.ps1 index 097d019..fbd600b 100644 --- a/windows/build-installer.ps1 +++ b/windows/build-installer.ps1 @@ -3,7 +3,20 @@ $buildNumber = "$(Get-Date -Format 'yyyyMMddHHmmss')" 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 flutter build windows --build-name=$buildName --build-number=$buildNumber # Build the Windows installer using Inno Setup Compiler (ISCC.exe) -ISCC.exe ./busylight-buddy-windows-installer-builder.iss \ No newline at end of file +ISCC.exe $issFile \ No newline at end of file diff --git a/windows/busylight-buddy-windows-installer-builder.iss.tpl b/windows/busylight-buddy-windows-installer-builder.iss.tpl new file mode 100644 index 0000000..83373fa --- /dev/null +++ b/windows/busylight-buddy-windows-installer-builder.iss.tpl @@ -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 +