|
@@ -0,0 +1,52 @@
|
|
|
|
+; -- 64BitThreeArch.iss --
|
|
|
|
+; Demonstrates how to install a program built for three different
|
|
|
|
+; architectures (x86, x64, ARM64) using a single installer.
|
|
|
|
+
|
|
|
|
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES!
|
|
|
|
+
|
|
|
|
+[Setup]
|
|
|
|
+AppName=My Program
|
|
|
|
+AppVersion=1.5
|
|
|
|
+DefaultDirName={autopf}\My Program
|
|
|
|
+DefaultGroupName=My Program
|
|
|
|
+UninstallDisplayIcon={app}\MyProg.exe
|
|
|
|
+Compression=lzma2
|
|
|
|
+SolidCompression=yes
|
|
|
|
+OutputDir=userdocs:Inno Setup Examples Output
|
|
|
|
+; "ArchitecturesInstallIn64BitMode=x64 arm64" requests that the install
|
|
|
|
+; be done in "64-bit mode" on x64 & ARM64, meaning it should use the
|
|
|
|
+; native 64-bit Program Files directory and the 64-bit view of the
|
|
|
|
+; registry. On all other architectures it will install in "32-bit mode".
|
|
|
|
+ArchitecturesInstallIn64BitMode=x64 arm64
|
|
|
|
+
|
|
|
|
+[Files]
|
|
|
|
+; Install MyProg-x64.exe if running on x64, MyProg-ARM64.exe if
|
|
|
|
+; running on ARM64, MyProg.exe otherwise.
|
|
|
|
+; Place all x64 files here
|
|
|
|
+Source: "MyProg-x64.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: InstallX64
|
|
|
|
+; Place all ARM64 files here, first one should be marked 'solidbreak'
|
|
|
|
+Source: "MyProg-ARM64.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: InstallARM64; Flags: solidbreak
|
|
|
|
+; Place all x86 files here, first one should be marked 'solidbreak'
|
|
|
|
+Source: "MyProg.exe"; DestDir: "{app}"; Check: InstallOtherArch; Flags: solidbreak
|
|
|
|
+; Place all common files here, first one should be marked 'solidbreak'
|
|
|
|
+Source: "MyProg.chm"; DestDir: "{app}"; Flags: solidbreak
|
|
|
|
+Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
|
|
|
|
+
|
|
|
|
+[Icons]
|
|
|
|
+Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
|
|
|
|
+
|
|
|
|
+[Code]
|
|
|
|
+function InstallX64: Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result := Is64BitInstallMode and (ProcessorArchitecture = paX64);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function InstallARM64: Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result := Is64BitInstallMode and (ProcessorArchitecture = paARM64);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function InstallOtherArch: Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result := not InstallX64 and not InstallARM64;
|
|
|
|
+end;
|