diff options
author | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
---|---|---|
committer | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
commit | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/external_dependencies/openmpt-trunk/installer/install-multi-arch.iss | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz |
Initial community commit
Diffstat (limited to 'Src/external_dependencies/openmpt-trunk/installer/install-multi-arch.iss')
-rw-r--r-- | Src/external_dependencies/openmpt-trunk/installer/install-multi-arch.iss | 357 |
1 files changed, 357 insertions, 0 deletions
diff --git a/Src/external_dependencies/openmpt-trunk/installer/install-multi-arch.iss b/Src/external_dependencies/openmpt-trunk/installer/install-multi-arch.iss new file mode 100644 index 00000000..1870f263 --- /dev/null +++ b/Src/external_dependencies/openmpt-trunk/installer/install-multi-arch.iss @@ -0,0 +1,357 @@ +; OpenMPT Install script +; https://openmpt.org/ + + + +#define BuildFolder "release\vs2019-win10-static" +#define BuildFolderLegacyx86 "release\vs2019-win7-static" +#define BuildFolderLegacyamd64 "release\vs2019-win7-static" + +#define DefaultArchName "x86" + +#define GetAppVersion GetFileProductVersion("..\bin\" + BuildFolder + "\" + DefaultArchName + "\OpenMPT.exe") +#define GetAppVersionMedium Copy(GetAppVersion, 1, 7) +#define GetAppVersionShort Copy(GetAppVersion, 1, 4) + + + +[Setup] + +AlwaysShowComponentsList=no +AppId={{40c97d3e-7763-4b88-8c6a-0901befee4af} +AppVerName=OpenMPT {#GetAppVersion} +AppVersion={#GetAppVersion} +AppName=OpenMPT +AppPublisher=OpenMPT +AppPublisherURL=https://openmpt.org/ +AppSupportURL=https://forum.openmpt.org/ +AppUpdatesURL=https://openmpt.org/ +ArchitecturesInstallIn64BitMode=x64 arm64 ia64 +ChangesAssociations=yes +Compression=lzma2/ultra64 +;DefaultDirName={autopf}\OpenMPT +DefaultDirName={code:CodeGetDefaultDirName|} +DefaultGroupName=OpenMPT +DirExistsWarning=auto +DisableDirPage=auto +AlwaysShowDirOnReadyPage=yes +DisableProgramGroupPage=yes +DisableReadyMemo=no +DisableWelcomePage=no +MinVersion=6.1sp1 +OutputDir=.\ +OutputBaseFilename=OpenMPT-{#GetAppVersion}-Setup +PrivilegesRequired=admin +PrivilegesRequiredOverridesAllowed=commandline dialog +SetupIconFile=..\mptrack\res\MPTRACK.ICO +SolidCompression=yes +TimeStampsInUTC=yes +UninstallDisplayIcon={app}\OpenMPT App Icon.ico +VersionInfoCopyright=Copyright © 2004-2022 OpenMPT Project Developers and Contributors, Copyright © 1997-2003 Olivier Lapicque +VersionInfoProductTextVersion={#GetAppVersion} +VersionInfoProductVersion={#GetAppVersion} +VersionInfoTextVersion={#GetAppVersion} +VersionInfoVersion={#GetAppVersion} +WizardImageFile=install-big.bmp +WizardSmallImageFile=install-small.bmp +WizardStyle=modern + + + +[Types] + +Name: "default"; Description: "Default installation"; Flags: iscustom + + + +[Components] + +Name: "archx86"; Description: "OpenMPT x86"; Types: default; Flags: fixed disablenouninstallwarning +Name: "archamd64"; Description: "OpenMPT amd64"; Types: default; Flags: fixed disablenouninstallwarning +Name: "archarm"; Description: "OpenMPT arm"; Types: default; Flags: fixed disablenouninstallwarning +Name: "archarm64"; Description: "OpenMPT arm64"; Types: default; Flags: fixed disablenouninstallwarning + + + +[Languages] + +Name: en; MessagesFile: compiler:Default.isl + + + +[Files] + +; note: packageTemplate\ contains files specific for the "install package". +; for files that are common with the "zip package", use ..\packageTemplate\ + +Source: ..\bin\{#BuildFolder}\x86\OpenMPT.exe; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; MinVersion: 10.0 +Source: ..\bin\{#BuildFolder}\x86\PluginBridge-x86.exe; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; MinVersion: 10.0 +Source: ..\bin\{#BuildFolder}\x86\PluginBridgeLegacy-x86.exe; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; MinVersion: 10.0 +Source: ..\bin\{#BuildFolder}\x86\openmpt-lame.dll; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; MinVersion: 10.0 +Source: ..\bin\{#BuildFolder}\x86\openmpt-mpg123.dll; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; MinVersion: 10.0 +Source: ..\bin\{#BuildFolder}\x86\openmpt-soundtouch.dll; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; MinVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyx86}\x86\OpenMPT.exe; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; OnlyBelowVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyx86}\x86\PluginBridge-x86.exe; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; OnlyBelowVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyx86}\x86\PluginBridgeLegacy-x86.exe; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; OnlyBelowVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyx86}\x86\openmpt-lame.dll; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; OnlyBelowVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyx86}\x86\openmpt-mpg123.dll; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; OnlyBelowVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyx86}\x86\openmpt-soundtouch.dll; DestDir: {app}\bin\x86; Flags: ignoreversion; Components: archx86; OnlyBelowVersion: 10.0 + +Source: ..\bin\{#BuildFolder}\amd64\OpenMPT.exe; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; MinVersion: 10.0 +Source: ..\bin\{#BuildFolder}\amd64\PluginBridge-amd64.exe; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; MinVersion: 10.0 +Source: ..\bin\{#BuildFolder}\amd64\PluginBridgeLegacy-amd64.exe; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; MinVersion: 10.0 +Source: ..\bin\{#BuildFolder}\amd64\openmpt-lame.dll; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; MinVersion: 10.0 +Source: ..\bin\{#BuildFolder}\amd64\openmpt-mpg123.dll; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; MinVersion: 10.0 +Source: ..\bin\{#BuildFolder}\amd64\openmpt-soundtouch.dll; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; MinVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyamd64}\amd64\OpenMPT.exe; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; OnlyBelowVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyamd64}\amd64\PluginBridge-amd64.exe; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; OnlyBelowVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyamd64}\amd64\PluginBridgeLegacy-amd64.exe; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; OnlyBelowVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyamd64}\amd64\openmpt-lame.dll; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; OnlyBelowVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyamd64}\amd64\openmpt-mpg123.dll; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; OnlyBelowVersion: 10.0 +Source: ..\bin\{#BuildFolderLegacyamd64}\amd64\openmpt-soundtouch.dll; DestDir: {app}\bin\amd64; Flags: ignoreversion; Components: archamd64; OnlyBelowVersion: 10.0 + +Source: ..\bin\{#BuildFolder}\arm\OpenMPT.exe; DestDir: {app}\bin\arm; Flags: ignoreversion; Components: archarm +Source: ..\bin\{#BuildFolder}\arm\PluginBridge-arm.exe; DestDir: {app}\bin\arm; Flags: ignoreversion; Components: archarm +Source: ..\bin\{#BuildFolder}\arm\PluginBridgeLegacy-arm.exe; DestDir: {app}\bin\arm; Flags: ignoreversion; Components: archarm +Source: ..\bin\{#BuildFolder}\arm\openmpt-lame.dll; DestDir: {app}\bin\arm; Flags: ignoreversion; Components: archarm +Source: ..\bin\{#BuildFolder}\arm\openmpt-mpg123.dll; DestDir: {app}\bin\arm; Flags: ignoreversion; Components: archarm +Source: ..\bin\{#BuildFolder}\arm\openmpt-soundtouch.dll; DestDir: {app}\bin\arm; Flags: ignoreversion; Components: archarm + +Source: ..\bin\{#BuildFolder}\arm64\OpenMPT.exe; DestDir: {app}\bin\arm64; Flags: ignoreversion; Components: archarm64 +Source: ..\bin\{#BuildFolder}\arm64\PluginBridge-arm64.exe; DestDir: {app}\bin\arm64; Flags: ignoreversion; Components: archarm64 +Source: ..\bin\{#BuildFolder}\arm64\PluginBridgeLegacy-arm64.exe; DestDir: {app}\bin\arm64; Flags: ignoreversion; Components: archarm64 +Source: ..\bin\{#BuildFolder}\arm64\openmpt-lame.dll; DestDir: {app}\bin\arm64; Flags: ignoreversion; Components: archarm64 +Source: ..\bin\{#BuildFolder}\arm64\openmpt-mpg123.dll; DestDir: {app}\bin\arm64; Flags: ignoreversion; Components: archarm64 +Source: ..\bin\{#BuildFolder}\arm64\openmpt-soundtouch.dll; DestDir: {app}\bin\arm64; Flags: ignoreversion; Components: archarm64 + +Source: "..\mptrack\res\MPTRACK.ICO"; DestName: "OpenMPT App Icon.ico"; DestDir: "{app}"; Flags: ignoreversion +Source: "..\packageTemplate\OpenMPT File Icon.ico"; DestName: "OpenMPT File Icon.ico"; DestDir: "{app}"; Flags: ignoreversion + +Source: ..\bin\{#BuildFolder}\{#DefaultArchName}\openmpt-wine-support.zip; DestDir: {app}; Flags: ignoreversion + +; todo: use proper folder +Source: ..\packageTemplate\ExampleSongs\*.*; DestDir: {app}\ExampleSongs\; Flags: ignoreversion recursesubdirs + +Source: packageTemplate\readme.txt; DestDir: {app}; Flags: ignoreversion +Source: ..\packageTemplate\History.txt; DestDir: {app}; Flags: ignoreversion +Source: ..\packageTemplate\OpenMPT Manual.chm; DestDir: {app}; Flags: ignoreversion + +Source: ..\packageTemplate\ReleaseNotesImages\*.*; DestDir: {app}\ReleaseNotesImages\; Flags: ignoreversion +Source: ..\packageTemplate\Release Notes.html; DestDir: {app}; Flags: ignoreversion + +Source: ..\packageTemplate\OpenMPT Support and Community Forum.url; DestDir: {app}; Flags: ignoreversion +Source: ..\packageTemplate\OpenMPT Issue Tracker.url; DestDir: {app}; Flags: ignoreversion + +Source: ..\packageTemplate\License.txt; DestDir: {app}; Flags: ignoreversion +Source: ..\packageTemplate\Licenses\*.*; DestDir: {app}\Licenses; Flags: ignoreversion + +Source: ..\packageTemplate\ExtraKeymaps\*.*; DestDir: {app}\ExtraKeymaps; Flags: ignoreversion + + + +[Icons] + +Name: {autodesktop}\OpenMPT; Filename: {app}\bin\x86\OpenMPT.exe; Check: CheckDefaultArch('x86') +Name: {autodesktop}\OpenMPT; Filename: {app}\bin\amd64\OpenMPT.exe; Check: CheckDefaultArch('amd64') +Name: {autodesktop}\OpenMPT; Filename: {app}\bin\arm\OpenMPT.exe; Check: CheckDefaultArch('arm') +Name: {autodesktop}\OpenMPT; Filename: {app}\bin\arm64\OpenMPT.exe; Check: CheckDefaultArch('arm64') + +Name: {group}\OpenMPT; Filename: {app}\bin\x86\OpenMPT.exe; Check: CheckDefaultArch('x86') +Name: {group}\OpenMPT; Filename: {app}\bin\amd64\OpenMPT.exe; Check: CheckDefaultArch('amd64') +Name: {group}\OpenMPT; Filename: {app}\bin\arm\OpenMPT.exe; Check: CheckDefaultArch('arm') +Name: {group}\OpenMPT; Filename: {app}\bin\arm64\OpenMPT.exe; Check: CheckDefaultArch('arm64') + +Name: {group}\OpenMPT (x86); Filename: {app}\bin\x86\OpenMPT.exe; Components: archx86 +Name: {group}\OpenMPT (amd64); Filename: {app}\bin\amd64\OpenMPT.exe; Components: archamd64 +Name: {group}\OpenMPT (arm); Filename: {app}\bin\arm\OpenMPT.exe; Components: archarm +Name: {group}\OpenMPT (arm64); Filename: {app}\bin\arm64\OpenMPT.exe; Components: archarm64 + +Name: {group}\Manual; Filename: {app}\OpenMPT Manual.chm +Name: {group}\Support and Community Forum; Filename: {app}\OpenMPT Support and Community Forum.url + + + +[Registry] + +#include "filetypes-multi-arch.iss" + + + +[Run] + +Filename: "{app}\Release Notes.html"; Description: "View Release Notes"; Flags: runasoriginaluser shellexec nowait postinstall skipifsilent + +Filename: {app}\bin\x86\OpenMPT.exe; Parameters: """{code:RandomExampleFile}"""; Description: {cm:LaunchProgram,OpenMPT}; Flags: runasoriginaluser nowait postinstall skipifsilent; Check: CheckDefaultArch('x86') +Filename: {app}\bin\amd64\OpenMPT.exe; Parameters: """{code:RandomExampleFile}"""; Description: {cm:LaunchProgram,OpenMPT}; Flags: runasoriginaluser nowait postinstall skipifsilent; Check: CheckDefaultArch('amd64') +Filename: {app}\bin\arm\OpenMPT.exe; Parameters: """{code:RandomExampleFile}"""; Description: {cm:LaunchProgram,OpenMPT}; Flags: runasoriginaluser nowait postinstall skipifsilent; Check: CheckDefaultArch('arm') +Filename: {app}\bin\arm64\OpenMPT.exe; Parameters: """{code:RandomExampleFile}"""; Description: {cm:LaunchProgram,OpenMPT}; Flags: runasoriginaluser nowait postinstall skipifsilent; Check: CheckDefaultArch('arm64') + + + +[InstallDelete] + +; as recommended by Inno Setup manual on [Components] + +Type: files; Name: {app}\bin\x86\OpenMPT.exe +Type: files; Name: {app}\bin\x86\PluginBridge-x86.exe +Type: files; Name: {app}\bin\x86\PluginBridgeLegacy-x86.exe +Type: files; Name: {app}\bin\x86\openmpt-lame.dll +Type: files; Name: {app}\bin\x86\openmpt-mpg123.dll +Type: files; Name: {app}\bin\x86\openmpt-soundtouch.dll + +Type: files; Name: {app}\bin\amd64\OpenMPT.exe +Type: files; Name: {app}\bin\amd64\PluginBridge-amd64.exe +Type: files; Name: {app}\bin\amd64\PluginBridgeLegacy-amd64.exe +Type: files; Name: {app}\bin\amd64\openmpt-lame.dll +Type: files; Name: {app}\bin\amd64\openmpt-mpg123.dll +Type: files; Name: {app}\bin\amd64\openmpt-soundtouch.dll + +Type: files; Name: {app}\bin\arm\OpenMPT.exe +Type: files; Name: {app}\bin\arm\PluginBridge-arm.exe +Type: files; Name: {app}\bin\arm\PluginBridgeLegacy-arm.exe +Type: files; Name: {app}\bin\arm\openmpt-lame.dll +Type: files; Name: {app}\bin\arm\openmpt-mpg123.dll +Type: files; Name: {app}\bin\arm\openmpt-soundtouch.dll + +Type: files; Name: {app}\bin\arm64\OpenMPT.exe +Type: files; Name: {app}\bin\arm64\PluginBridge-arm64.exe +Type: files; Name: {app}\bin\arm64\PluginBridgeLegacy-arm64.exe +Type: files; Name: {app}\bin\arm64\openmpt-lame.dll +Type: files; Name: {app}\bin\arm64\openmpt-mpg123.dll +Type: files; Name: {app}\bin\arm64\openmpt-soundtouch.dll + + + +#include "uninstall-single-arch.iss" + + + +[Code] + +procedure InitializeWizard(); +begin + WizardSelectComponents('archx86,!archamd64,!archarm,!archarm64'); + case ProcessorArchitecture() of + paUnknown: + begin + WizardSelectComponents('archx86,!archamd64,!archarm,!archarm64'); + end; + paX86: + begin + WizardSelectComponents('archx86,!archamd64,!archarm,!archarm64'); + end; + paX64: + begin + WizardSelectComponents('archx86,archamd64,!archarm,!archarm64'); + end; + paIA64: + begin + WizardSelectComponents('archx86,!archamd64,!archarm,!archarm64'); + end; + paARM64: + begin + WizardSelectComponents('archx86,archamd64,archarm,archarm64'); + end; + end; +end; + +function GetDefaultArch(): String; +begin + Result := 'x86'; + case ProcessorArchitecture() of + paUnknown: + begin + Result := 'x86'; + end; + paX86: + begin + Result := 'x86'; + end; + paX64: + begin + Result := 'amd64'; + end; + paIA64: + begin + Result := 'x86'; + end; + paARM64: + begin + Result := 'arm64'; + end; + end; +end; + +function CodeGetDefaultArch(Param: String): String; +begin + Result := GetDefaultArch(); +end; + +function CheckDefaultArch(Arch: String): Boolean; +begin + Result := Arch = GetDefaultArch(); +end; + +function ShouldSkipPage(PageID: Integer): Boolean; +begin + Result := False; + case PageID of + wpSelectDir: + begin + Result := IsAdmin() and HasPreviousSingleArchInstallPath(); + end; + end; + case PageID of + wpSelectComponents: + begin + Result := True; + end; + end; +end; + +procedure CurStepChanged(CurStep: TSetupStep); +begin + case CurStep of + ssInstall: + begin + if not UninstallSingleArch() then + begin + RaiseException('Uninstallation of previous OpenMPT installation failed. Please uninstall manually.'); + end; + end; + end; +end; + +// Picks a random example song file to play +Function RandomExampleFile(Dummy: String): String; +var + Files: TstringList; + FindRec: TFindRec; +begin + Result := ''; + if FindFirst(ExpandConstant('{app}\ExampleSongs\*'), FindRec) then + try + Files := TstringList.Create; + repeat + if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then + Files.Add(FindRec.Name); + until not FindNext(FindRec); + Result := ExpandConstant('{app}\ExampleSongs\') + Files[Random(Files.Count)]; + finally + FindClose(FindRec); + end; +end; + +function CodeGetDefaultDirName(Param: String): String; +begin + if IsAdmin() and HasPreviousSingleArchInstallPath() then + begin + Result := GetPreviousSingleArchInstallPath(); + end + else + begin + Result := ExpandConstant('{autopf}\OpenMPT'); + end; +end; + + |