|
| 1 | +; CI-compatible Inno Setup script. |
| 2 | +; Run locally: iscc setup.iss |
| 3 | +; Run in CI: iscc /DMyAppVersion=1.4.3 /DMyOutputDir=C:\path\setup_output setup.iss |
| 4 | + |
| 5 | +#define MyAppName "PyMacroRecord" |
| 6 | +#ifndef MyAppVersion |
| 7 | + #define MyAppVersion "1.4.3" |
| 8 | +#endif |
| 9 | +#define MyAppPublisher "LOUDO" |
| 10 | +#define MyAppURL "https://www.pymacrorecord.com/" |
| 11 | +#define MyAppExeName "PyMacroRecord.exe" |
| 12 | +#define MyAppAssocName MyAppName + " File" |
| 13 | +#define MyAppAssocExt ".pmr" |
| 14 | +#define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt |
| 15 | + |
| 16 | +; Paths resolved relative to this .iss file (repo root) |
| 17 | +#ifndef MyDistDir |
| 18 | + #define MyDistDir SourcePath + "dist\PyMacroRecord" |
| 19 | +#endif |
| 20 | +#ifndef MySetupBuilderDir |
| 21 | + #define MySetupBuilderDir SourcePath + "setup builder" |
| 22 | +#endif |
| 23 | +#ifndef MyOutputDir |
| 24 | + #define MyOutputDir SourcePath + "setup_output" |
| 25 | +#endif |
| 26 | + |
| 27 | +[Setup] |
| 28 | +AppId={{AD24EE86-03F0-4209-A794-57AFBC461017} |
| 29 | +AppName={#MyAppName} |
| 30 | +AppVersion={#MyAppVersion} |
| 31 | +AppPublisher={#MyAppPublisher} |
| 32 | +AppPublisherURL={#MyAppURL} |
| 33 | +AppSupportURL={#MyAppURL} |
| 34 | +AppUpdatesURL={#MyAppURL} |
| 35 | +DefaultDirName={autopf}\{#MyAppName} |
| 36 | +UninstallDisplayIcon={app}\{#MyAppExeName} |
| 37 | +UninstallDisplayName={#MyAppName} |
| 38 | +ChangesAssociations=yes |
| 39 | +DisableProgramGroupPage=yes |
| 40 | +LicenseFile={#SourcePath}LICENSE.md |
| 41 | +PrivilegesRequired=lowest |
| 42 | +OutputDir={#MyOutputDir} |
| 43 | +OutputBaseFilename=PyMacroRecord_{#MyAppVersion}_Setup |
| 44 | +SetupIconFile={#SourcePath}src\assets\logo.ico |
| 45 | +Compression=lzma |
| 46 | +SolidCompression=yes |
| 47 | +WizardStyle=modern |
| 48 | + |
| 49 | +[Languages] |
| 50 | +Name: "english"; MessagesFile: "compiler:Default.isl" |
| 51 | +Name: "armenian"; MessagesFile: "compiler:Languages\Armenian.isl" |
| 52 | +Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl" |
| 53 | +Name: "bulgarian"; MessagesFile: "compiler:Languages\Bulgarian.isl" |
| 54 | +Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl" |
| 55 | +Name: "corsican"; MessagesFile: "compiler:Languages\Corsican.isl" |
| 56 | +Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl" |
| 57 | +Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl" |
| 58 | +Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl" |
| 59 | +Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl" |
| 60 | +Name: "french"; MessagesFile: "compiler:Languages\French.isl" |
| 61 | +Name: "german"; MessagesFile: "compiler:Languages\German.isl" |
| 62 | +Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl" |
| 63 | +Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl" |
| 64 | +Name: "icelandic"; MessagesFile: "compiler:Languages\Icelandic.isl" |
| 65 | +Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl" |
| 66 | +Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl" |
| 67 | +Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl" |
| 68 | +Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl" |
| 69 | +Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl" |
| 70 | +Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" |
| 71 | +Name: "slovak"; MessagesFile: "compiler:Languages\Slovak.isl" |
| 72 | +Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl" |
| 73 | +Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl" |
| 74 | +Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl" |
| 75 | +Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl" |
| 76 | + |
| 77 | +[Tasks] |
| 78 | +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked |
| 79 | + |
| 80 | +[Files] |
| 81 | +Source: "{#MyDistDir}\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion |
| 82 | +Source: "{#MyDistDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs |
| 83 | + |
| 84 | +[Registry] |
| 85 | +Root: HKA; Subkey: "Software\Classes\{#MyAppAssocExt}\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocKey}"; ValueData: ""; Flags: uninsdeletevalue |
| 86 | +Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}"; ValueType: string; ValueName: ""; ValueData: "{#MyAppAssocName}"; Flags: uninsdeletekey |
| 87 | +Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0" |
| 88 | +Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1""" |
| 89 | +Root: HKA; Subkey: "Software\Classes\Applications\{#MyAppExeName}\SupportedTypes"; ValueType: string; ValueName: ".myp"; ValueData: "" |
| 90 | + |
| 91 | +[Icons] |
| 92 | +Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" |
| 93 | +Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon |
| 94 | + |
| 95 | +[Run] |
| 96 | +Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent |
0 commit comments