Clone
ixen <ixen@copyhandler.com>
committed
on 13 Jul 14
Updated installer script for 1.40 (CH-113)
LoggerImprovements + 5 more
scripts/setup.iss (+30 -33)
4 4 #include "../src/common/version.h"
5 5 #define MyAppName PRODUCT_NAME
6 6 #define MyAppVerName PRODUCT_NAME + " " + PRODUCT_VERSION
7 7 #define MyAppPublisher "JĂłzef Starosczyk"
8 8 #define MyAppURL "http://www.copyhandler.com"
9 9
10 10 #define InstallerFilename "chsetup-" + PRODUCT_VERSION
11 11
12 12 #define ExeFilename32 "ch.exe"
13 13 #define ExeFilename64 "ch64.exe"
14 14 #define ShellExtFilename32 "chext.dll"
15 15 #define ShellExtFilename64 "chext64.dll"
16 16 #define LibicpfFilename32 "libicpf32u.dll"
17 17 #define LibicpfFilename64 "libicpf64u.dll"
18 18 #define LibCHCoreFilename32 "libchcore32u.dll"
19 19 #define LibCHCoreFilename64 "libchcore64u.dll"
20 20 #define LibictranslateFilename32 "libictranslate32u.dll"
21 21 #define LibictranslateFilename64 "libictranslate64u.dll"
22 22 #define ICTranslateFilename32 "ictranslate.exe"
23 23 #define ICTranslateFilename64 "ictranslate64.exe"
  24 #define SQLite32 "sqlite3_32.dll"
  25 #define SQLite64 "sqlite3_64.dll"
24 26 #define MSRedistDir32 "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86"
25 27 #define MSRedistDir64 "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\amd64"
26 28 #define DbgHelp32 "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86"
27 29 #define DbgHelp64 "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x64"
28 30
29 31 [Setup]
30 32 AppName={#MyAppName}
31 33 AppVerName={#MyAppVerName}
32 34 AppPublisher={#MyAppPublisher}
33 35 AppPublisherURL={#MyAppURL}
34 36 AppSupportURL={#MyAppURL}
35 37 AppUpdatesURL={#MyAppURL}
36 38 DefaultDirName={pf}\{#MyAppName}
37 39 DefaultGroupName={#MyAppName}
38 40 AllowNoIcons=true
39 41 LicenseFile=..\License.txt
40 42 OutputDir=.\
41 43 OutputBaseFilename={#InstallerFilename}
42 44 Compression=lzma/ultra
43 45 SolidCompression=true
44 46 AppMutex=_Copy handler_ instance
45 47 ShowLanguageDialog=auto
46 48 AppID={{9CF6A157-F0E8-4216-B229-C0CA8204BE2C}
47 49 InternalCompressLevel=ultra
48 50 AppCopyright={#COPYRIGHT_INFO}
49 51 AppVersion={#PRODUCT_VERSION}
50 52 UninstallDisplayIcon={app}\{#ExeFilename32}
51 53 AppContact=ixen(at)copyhandler(dot)com
52 54 VersionInfoVersion=
53 55 VersionInfoTextVersion={#PRODUCT_VERSION}
54 56 VersionInfoCopyright={#COPYRIGHT_INFO}
55 57 ChangesEnvironment=true
56   ArchitecturesInstallIn64BitMode=x64 ia64
  58 ArchitecturesInstallIn64BitMode=x64
57 59
58 60 [Languages]
59 61 Name: "english"; MessagesFile: "compiler:Default.isl"
60 62 Name: "brazilianportuguese"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
61 63 Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl"
62 64 Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
63 65 Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl"
64 66 Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"
65 67 Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl"
66 68 Name: "french"; MessagesFile: "compiler:Languages\French.isl"
67 69 Name: "german"; MessagesFile: "compiler:Languages\German.isl"
68 70 Name: "greek"; MessagesFile: "compiler:Languages\Greek.isl"
69 71 Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl"
70 72 Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl"
71 73 Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
72 74 Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
73 75 Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl"
74 76 Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
75 77 Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl"
76 78 Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
77 79 Name: "serbiancyrillic"; MessagesFile: "compiler:Languages\SerbianCyrillic.isl"
78 80 Name: "serbianlatin"; MessagesFile: "compiler:Languages\SerbianLatin.isl"
79 81 Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl"
80 82 Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
81 83 Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"
82 84
83 85 [Tasks]
84 86 Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
85 87 Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
86 88 Name: startatboot; Description: {cm:StartAtBoot}; Flags: unchecked
87 89
88 90 [Files]
89   Source: ..\bin\release\help\*; DestDir: {app}\help; Flags: ignoreversion recursesubdirs createallsubdirs
90   Source: ..\bin\release\langs\*; DestDir: {app}\langs; Flags: ignoreversion recursesubdirs createallsubdirs
91   Source: ..\License.txt; DestDir: {app}; Flags: ignoreversion
  91 Source: "C:\projects\ch-rw\bin\release\help\*.chm"; DestDir: "{app}\help"; Flags: ignoreversion recursesubdirs createallsubdirs
  92 Source: "C:\projects\ch-rw\bin\release\langs\*.lng"; DestDir: "{app}\langs"; Flags: ignoreversion recursesubdirs createallsubdirs
  93 Source: "..\License.txt"; DestDir: "{app}"; Flags: ignoreversion
92 94
93   Source: ..\bin\release\{#ExeFilename32}; DestDir: {app}; Flags: ignoreversion; Check: not Is64BitInstallMode
94   Source: ..\bin\release\{#ExeFilename64}; DestDir: {app}; Flags: ignoreversion; Check: Is64BitInstallMode
95   Source: ..\bin\release\{#ShellExtFilename32}; DestDir: {app}; Flags: restartreplace uninsrestartdelete regserver replacesameversion; Check: not Is64BitInstallMode
96   Source: ..\bin\release\{#ShellExtFilename64}; DestDir: {app}; Flags: restartreplace uninsrestartdelete regserver replacesameversion; Check: Is64BitInstallMode
97   Source: ..\bin\release\{#LibicpfFilename32}; DestDir: {app}; Flags: ignoreversion; Check: not Is64BitInstallMode
98   Source: ..\bin\release\{#LibicpfFilename64}; DestDir: {app}; Flags: ignoreversion; Check: Is64BitInstallMode
99   Source: ..\bin\release\{#LibCHCoreFilename32}; DestDir: {app}; Flags: ignoreversion; Check: not Is64BitInstallMode
100   Source: ..\bin\release\{#LibCHCoreFilename64}; DestDir: {app}; Flags: ignoreversion; Check: Is64BitInstallMode
101   Source: ..\bin\release\{#LibictranslateFilename32}; DestDir: {app}; Flags: ignoreversion; Check: not Is64BitInstallMode
102   Source: ..\bin\release\{#LibictranslateFilename64}; DestDir: {app}; Flags: ignoreversion; Check: Is64BitInstallMode
103   Source: ..\bin\release\{#ICTranslateFilename32}; DestDir: {app}; Flags: ignoreversion; Check: not Is64BitInstallMode
104   Source: ..\bin\release\{#ICTranslateFilename64}; DestDir: {app}; Flags: ignoreversion; Check: Is64BitInstallMode
  95 Source: "..\bin\release\{#ExeFilename32}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode
  96 Source: "..\bin\release\{#ExeFilename64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode
  97 Source: "..\bin\release\{#ShellExtFilename32}"; DestDir: "{app}"; Flags: restartreplace uninsrestartdelete regserver replacesameversion; Check: not Is64BitInstallMode
  98 Source: "..\bin\release\{#ShellExtFilename64}"; DestDir: "{app}"; Flags: restartreplace uninsrestartdelete regserver replacesameversion; Check: Is64BitInstallMode
  99 Source: "..\bin\release\{#LibicpfFilename32}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode
  100 Source: "..\bin\release\{#LibicpfFilename64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode
  101 Source: "..\bin\release\{#LibCHCoreFilename32}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode
  102 Source: "..\bin\release\{#LibCHCoreFilename64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode
  103 Source: "..\bin\release\{#LibictranslateFilename32}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode
  104 Source: "..\bin\release\{#LibictranslateFilename64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode
  105 Source: "..\bin\release\{#ICTranslateFilename32}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode
  106 Source: "..\bin\release\{#ICTranslateFilename64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode
  107 Source: "..\bin\release\{#SQLite64}"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode
  108 Source: "..\bin\release\{#SQLite64}"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode
105 109
106   Source: {#MSRedistDir32}\Microsoft.VC90.CRT\*; DestDir: {app}; Flags: ignoreversion; Check: not Is64BitInstallMode
107   Source: {#MSRedistDir64}\Microsoft.VC90.CRT\*; DestDir: {app}; Flags: ignoreversion; Check: Is64BitInstallMode
108   Source: {#MSRedistDir32}\Microsoft.VC90.MFC\*; DestDir: {app}; Flags: ignoreversion; Check: not Is64BitInstallMode
109   Source: {#MSRedistDir64}\Microsoft.VC90.MFC\*; DestDir: {app}; Flags: ignoreversion; Check: Is64BitInstallMode
110   Source: {#DbgHelp32}\dbghelp.dll; DestDir: {app}; Flags: ignoreversion; Check: not Is64BitInstallMode
111   Source: {#DbgHelp64}\dbghelp.dll; DestDir: {app}; Flags: ignoreversion; Check: Is64BitInstallMode
  110 Source: "{#MSRedistDir32}\Microsoft.VC90.CRT\*"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode
  111 Source: "{#MSRedistDir64}\Microsoft.VC90.CRT\*"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode
  112 Source: "{#MSRedistDir32}\Microsoft.VC90.MFC\*"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode
  113 Source: "{#MSRedistDir64}\Microsoft.VC90.MFC\*"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode
  114 Source: "{#DbgHelp32}\dbghelp.dll"; DestDir: "{app}"; Flags: ignoreversion; Check: not Is64BitInstallMode
  115 Source: "{#DbgHelp64}\dbghelp.dll"; DestDir: "{app}"; Flags: ignoreversion; Check: Is64BitInstallMode
112 116
113 117 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
114 118
115 119 [Icons]
116 120 Name: {group}\{#MyAppName}; Filename: {app}\{code:ExpandArch|ExeFilename}; WorkingDir: {app}
117 121 Name: {group}\{cm:TranslateCopyHandler}; Filename: {app}\{code:ExpandArch|ICTranslateFilename}; Parameters: """{app}\langs\english.lng"""; WorkingDir: {app}\lang
118 122 Name: {group}\{cm:UninstallCopyHandler}; Filename: {uninstallexe}; WorkingDir: {app}
119 123 Name: {userdesktop}\{#MyAppName}; Filename: {app}\{code:ExpandArch|ExeFilename}; Tasks: desktopicon; WorkingDir: {app}
120 124 Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}; Filename: {app}\{code:ExpandArch|ExeFilename}; Tasks: quicklaunchicon; WorkingDir: {app}
121 125
122 126 [Run]
123   Filename: {app}\{code:ExpandArch|ExeFilename}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent 32bit
  127 Filename: "{app}\{code:ExpandArch|ExeFilename}"; Flags: nowait postinstall skipifsilent; Description: "{cm:LaunchProgram,{#MyAppName}}"
124 128
125 129 [Registry]
126 130
127 131 Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: Copy Handler; Flags: dontcreatekey deletevalue
128 132 Root: HKCU; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: Copy Handler; Tasks: startatboot; ValueData: {app}\{code:ExpandArch|ExeFilename}; Flags: uninsdeletevalue
129 133
130 134 [Dirs]
131 135 Name: {app}\help; Flags: uninsalwaysuninstall
132 136 Name: {app}\langs; Flags: uninsalwaysuninstall
133 137
134   [_ISTool]
135   UseAbsolutePaths=false
136  
137 138 [CustomMessages]
138 139 TranslateCopyHandler=Translate Copy Handler
139 140 polish.TranslateCopyHandler=Przetłumacz program Copy Handler
140 141 UninstallCopyHandler=Uninstall Copy Handler
141 142 polish.UninstallCopyHandler=Odinstaluj program Copy Handler
142 143 StartAtBoot=Run program at system startup
143 144 polish.StartAtBoot=Uruchom program przy starcie systemu
144 145
145   [ThirdPartySettings]
  146 [ThirdParty]
146 147 CompileLogMethod=append
147 148
148 149 [Code]
149 150 function ExpandArch(ConstantStr: String): String;
150 151 begin
151 152         if Is64BitInstallMode then
152 153         begin
153 154                 case ConstantStr of
154 155                         'ExeFilename': Result := '{#ExeFilename64}';
155 156                         'ICTranslateFilename': Result := '{#ICTranslateFilename64}';
156 157                 end;
157 158         end
158 159         else
159 160         begin
160 161                 case ConstantStr of
161 162                         'ExeFilename': Result := '{#ExeFilename32}';
162 163                         'ICTranslateFilename': Result := '{#ICTranslateFilename32}';
163 164                 end;
164 165         end;
165 166 end;
166  
167   [InnoIDE_Settings]
168   LogFileOverwrite=false
169