setup.iss 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. ; -- Setup.iss --
  2. ; Inno Setup's own Setup script
  3. ; Inno Setup
  4. ; Copyright (C) 1997-2024 Jordan Russell. All rights reserved.
  5. ; Portions Copyright (C) 2000-2024 Martijn Laan. All rights reserved.
  6. ; For conditions of distribution and use, see LICENSE.TXT.
  7. #include "iscrypt.iss"
  8. #include "isdonateandmail.iss"
  9. #include "isportable.iss"
  10. [Setup]
  11. AppName=Inno Setup
  12. AppId={code:GetAppId|Inno Setup 6}
  13. AppVersion=6.4.0-dev
  14. AppPublisher=jrsoftware.org
  15. AppPublisherURL=https://www.innosetup.com/
  16. AppSupportURL=https://www.innosetup.com/
  17. AppUpdatesURL=https://www.innosetup.com/
  18. VersionInfoCopyright=Copyright (C) 1997-2024 Jordan Russell. Portions Copyright (C) 2000-2024 Martijn Laan.
  19. AppMutex=InnoSetupCompilerAppMutex,Global\InnoSetupCompilerAppMutex
  20. SetupMutex=InnoSetupCompilerSetupMutex,Global\InnoSetupCompilerSetupMutex
  21. WizardStyle=modern
  22. DefaultDirName={code:GetDefaultDirName|Inno Setup 6}
  23. DefaultGroupName=Inno Setup 6
  24. PrivilegesRequiredOverridesAllowed=commandline
  25. AllowNoIcons=yes
  26. Compression=lzma2/max
  27. SolidCompression=yes
  28. Uninstallable=not PortableCheck
  29. UninstallDisplayIcon={app}\Compil32.exe
  30. UsePreviousLanguage=no
  31. LicenseFile=license.txt
  32. TimeStampsInUTC=yes
  33. TouchDate=none
  34. TouchTime=00:00
  35. #ifdef SIGNTOOL
  36. SignTool=issigntool256
  37. SignedUninstaller=yes
  38. #endif
  39. #sub ProcessFoundLanguagesFile
  40. #define FileName FindGetFileName(FindHandle)
  41. #define Name LowerCase(RemoveFileExt(FileName))
  42. #define MessagesFile FindPathName + FileName
  43. //#define CustomMessagesFile FindPathName + 'Setup\' + Name + '.isl';
  44. //#if FileExists(CustomMessagesFile)
  45. // #pragma message "Generating [Languages] entry with name " + Name + ": " + MessagesFile + ' & ' + CustomMessagesFile
  46. // Name: {#Name}; MessagesFile: "{#MessagesFile},{#CustomMessagesFile}"
  47. //#else
  48. #pragma message "Generating [Languages] entry with name " + Name + ": " + MessagesFile
  49. Name: {#Name}; MessagesFile: "{#MessagesFile}"
  50. //#endif
  51. #endsub
  52. //
  53. #define FindPathName
  54. #define FindHandle
  55. #define FindResult
  56. //
  57. #sub DoFindFiles
  58. #for {FindHandle = FindResult = FindFirst(FindPathName + "*.isl", 0); FindResult; FindResult = FindNext(FindHandle)} ProcessFoundLanguagesFile
  59. #if FindHandle
  60. #expr FindClose(FindHandle)
  61. #endif
  62. #endsub
  63. //
  64. #define FindFiles(str PathName) \
  65. FindPathName = PathName, \
  66. DoFindFiles
  67. //
  68. [Languages]
  69. Name: english; MessagesFile: "files\Default.isl"
  70. // Generate [Languages] entries for all official translations
  71. #expr FindFiles("files\Languages\")
  72. [Messages]
  73. HelpTextNote=/PORTABLE=1%nEnable portable mode.%n/DOWNLOADISCRYPT=1%nEnable ISCrypt.dll download.
  74. ; Two "Setup" on the same line looks weird, so put a line break in between
  75. english.WelcomeLabel1=Welcome to the Inno Setup%nSetup Wizard
  76. [Tasks]
  77. Name: desktopicon; Description: "{cm:CreateDesktopIcon}"; Flags: unchecked; Check: not PortableCheck
  78. Name: fileassoc; Description: "{cm:AssocFileExtension,Inno Setup,.iss}"; Check: not PortableCheck
  79. [InstallDelete]
  80. ; Remove old ISPP files
  81. Type: files; Name: "{app}\ISCmplr.dls"
  82. Type: files; Name: "{app}\Builtins.iss"
  83. Type: files; Name: "{app}\ISPP.chm"
  84. ; Remove desktop icon if needed
  85. Type: files; Name: {autodesktop}\Inno Setup Compiler.lnk; Tasks: not desktopicon; Check: not PortableCheck
  86. ; Remove old FAQ file
  87. Type: files; Name: "{app}\isfaq.htm"
  88. ; Remove old .islu files
  89. Type: files; Name: "{app}\Languages\*.islu"
  90. ; Remove translations in case any got demoted
  91. Type: files; Name: "{app}\Languages\*.isl"
  92. ; Remove old ispack files
  93. Type: files; Name: "{app}\Ispack-setup.exe"
  94. Type: files; Name: "{app}\Examples\Setup.iss"
  95. Type: files; Name: "{app}\Examples\Setup.ico"
  96. Type: files; Name: "{app}\Examples\IsDonateAndMail.iss"
  97. Type: files; Name: "{app}\Examples\IsDonate.bmp"
  98. Type: files; Name: "{app}\Examples\IsMail.bmp"
  99. Type: files; Name: "{app}\Examples\IsPortable.iss"
  100. ; Removed old/renamed wizard images
  101. Type: files; Name: "{app}\WizModernImage.bmp"
  102. Type: files; Name: "{app}\WizModernImage-IS.bmp"
  103. Type: files; Name: "{app}\WizModernSmallImage.bmp"
  104. Type: files; Name: "{app}\WizModernSmallImage-IS.bmp"
  105. [Files]
  106. Source: "license.txt"; DestDir: "{app}"; Flags: ignoreversion touch
  107. Source: "files\ISetup.chm"; DestDir: "{app}"; Flags: ignoreversion touch
  108. Source: "files\ISetup-dark.chm"; DestDir: "{app}"; Flags: ignoreversion touch
  109. Source: "files\Compil32.exe"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  110. Source: "files\isscint.dll"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  111. #ifndef isccexe
  112. #define isccexe "ISCC.exe"
  113. #endif
  114. Source: "files\{#isccexe}"; DestName: "ISCC.exe"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  115. #ifndef iscmplrdll
  116. #define iscmplrdll "ISCmplr.dll"
  117. #endif
  118. Source: "files\{#iscmplrdll}"; DestName: "ISCmplr.dll"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  119. Source: "files\Setup.e32"; DestDir: "{app}"; Flags: ignoreversion touch
  120. Source: "files\SetupLdr.e32"; DestDir: "{app}"; Flags: ignoreversion touch
  121. Source: "files\Default.isl"; DestDir: "{app}"; Flags: ignoreversion touch
  122. Source: "files\Languages\*.isl"; DestDir: "{app}\Languages"; Flags: ignoreversion touch
  123. Source: "files\SetupClassicIcon.ico"; DestDir: "{app}"; Flags: ignoreversion touch
  124. Source: "files\WizClassicImage.bmp"; DestDir: "{app}"; Flags: ignoreversion touch
  125. Source: "files\WizClassicImage-IS.bmp"; DestDir: "{app}"; Flags: ignoreversion touch
  126. Source: "files\WizClassicSmallImage.bmp"; DestDir: "{app}"; Flags: ignoreversion touch
  127. Source: "files\WizClassicSmallImage-IS.bmp"; DestDir: "{app}"; Flags: ignoreversion touch
  128. Source: "files\iszlib.dll"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  129. Source: "files\isunzlib.dll"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  130. Source: "files\isbzip.dll"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  131. Source: "files\isbunzip.dll"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  132. #ifndef islzmadll
  133. #define islzmadll "islzma.dll"
  134. #endif
  135. Source: "files\{#islzmadll}"; DestName: "islzma.dll"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  136. Source: "files\islzma32.exe"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  137. Source: "files\islzma64.exe"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  138. Source: "whatsnew.htm"; DestDir: "{app}"; Flags: ignoreversion touch
  139. Source: "Examples\64Bit.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  140. Source: "Examples\64BitTwoArch.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  141. Source: "Examples\64BitThreeArch.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  142. Source: "Examples\AllPagesExample.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  143. Source: "Examples\CodeAutomation.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  144. Source: "Examples\CodeAutomation2.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  145. Source: "Examples\CodeClasses.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  146. Source: "Examples\CodeDlg.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  147. Source: "Examples\CodeDll.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  148. Source: "Examples\CodeDownloadFiles.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  149. Source: "Examples\CodeExample1.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  150. Source: "Examples\CodePrepareToInstall.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  151. Source: "Examples\Components.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  152. Source: "Examples\Example1.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  153. Source: "Examples\Example2.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  154. Source: "Examples\Example3.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  155. Source: "Examples\ISPPExample1.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  156. Source: "Examples\ISPPExample1License.txt"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  157. Source: "Examples\License.txt"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  158. Source: "Examples\Languages.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  159. Source: "Examples\MyDll.dll"; DestDir: "{app}\Examples"; Flags: ignoreversion signonce touch
  160. Source: "Examples\MyProg.chm"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  161. Source: "Examples\MyProg.exe"; DestDir: "{app}\Examples"; Flags: ignoreversion signonce touch
  162. Source: "Examples\MyProg-Arm64.exe"; DestDir: "{app}\Examples"; Flags: ignoreversion signonce touch
  163. Source: "Examples\MyProg-x64.exe"; DestDir: "{app}\Examples"; Flags: ignoreversion signonce touch
  164. Source: "Examples\PowerShell.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  165. Source: "Examples\Readme.txt"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  166. Source: "Examples\Readme-Dutch.txt"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  167. Source: "Examples\Readme-German.txt"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  168. Source: "Examples\UnicodeExample1.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  169. Source: "Examples\UninstallCodeExample1.iss"; DestDir: "{app}\Examples"; Flags: ignoreversion touch
  170. Source: "Examples\MyDll\C\MyDll.c"; DestDir: "{app}\Examples\MyDll\C"; Flags: ignoreversion touch
  171. Source: "Examples\MyDll\C\MyDll.def"; DestDir: "{app}\Examples\MyDll\C"; Flags: ignoreversion touch
  172. Source: "Examples\MyDll\C\MyDll.dsp"; DestDir: "{app}\Examples\MyDll\C"; Flags: ignoreversion touch
  173. Source: "Examples\MyDll\C#\MyDll.cs"; DestDir: "{app}\Examples\MyDll\C#"; Flags: ignoreversion touch
  174. Source: "Examples\MyDll\C#\MyDll.csproj"; DestDir: "{app}\Examples\MyDll\C#"; Flags: ignoreversion touch
  175. Source: "Examples\MyDll\C#\MyDll.sln"; DestDir: "{app}\Examples\MyDll\C#"; Flags: ignoreversion touch
  176. Source: "Examples\MyDll\C#\packages.config"; DestDir: "{app}\Examples\MyDll\C#"; Flags: ignoreversion touch
  177. Source: "Examples\MyDll\C#\Properties\AssemblyInfo.cs"; DestDir: "{app}\Examples\MyDll\C#\Properties"; Flags: ignoreversion touch
  178. Source: "Examples\MyDll\Delphi\MyDll.dpr"; DestDir: "{app}\Examples\MyDll\Delphi"; Flags: ignoreversion touch
  179. #ifndef isppdll
  180. #define isppdll "ispp.dll"
  181. #endif
  182. Source: "files\{#isppdll}"; DestName: "ISPP.dll"; DestDir: "{app}"; Flags: ignoreversion signonce touch
  183. Source: "files\ISPPBuiltins.iss"; DestDir: "{app}"; Flags: ignoreversion touch
  184. [INI]
  185. Filename: "{app}\isfaq.url"; Section: "InternetShortcut"; Key: "URL"; String: "https://jrsoftware.org/isfaq.php"
  186. [UninstallDelete]
  187. Type: files; Name: "{app}\isfaq.url"
  188. [Icons]
  189. ; All these will be automatically skipped on portable mode, either because of NoIconsCheck being checked, or because of the desktopicon task being removed
  190. Name: "{group}\Inno Setup Compiler"; Filename: "{app}\Compil32.exe"; WorkingDir: "{app}"; AppUserModelID: "JR.InnoSetup.IDE.6"
  191. Name: "{group}\Inno Setup Documentation"; Filename: "{app}\ISetup.chm"
  192. Name: "{group}\Inno Setup Documentation (Dark)"; Filename: "{app}\ISetup-dark.chm"
  193. Name: "{group}\Inno Setup Example Scripts"; Filename: "{app}\Examples\"
  194. Name: "{group}\Inno Setup FAQ"; Filename: "{app}\isfaq.url"
  195. Name: "{group}\Inno Setup Revision History"; Filename: "{app}\whatsnew.htm"
  196. Name: "{autodesktop}\Inno Setup Compiler"; Filename: "{app}\Compil32.exe"; WorkingDir: "{app}"; AppUserModelID: "JR.InnoSetup.IDE.6"; Tasks: desktopicon
  197. [Run]
  198. ; The /ASSOC line will be automatically skipped on portable mode, because of the fileassoc task being removed
  199. Filename: "{app}\Compil32.exe"; Parameters: "/ASSOC"; StatusMsg: "{cm:AssocingFileExtension,Inno Setup,.iss}"; Tasks: fileassoc
  200. Filename: "{app}\Compil32.exe"; WorkingDir: "{app}"; Description: "{cm:LaunchProgram,Inno Setup}"; Flags: nowait postinstall skipifsilent
  201. [UninstallRun]
  202. ; The /UNASSOC line will be automatically skipped on portable mode, because of Uninstallable being set to no
  203. Filename: "{app}\Compil32.exe"; Parameters: "/UNASSOC"; RunOnceId: "RemoveISSAssoc"