1 | #define MyAppName "C-evo"
|
---|
2 | #define MyAppTitle "C-evo: New Horizons"
|
---|
3 | #define MyAppNameShort "C-evo-nh"
|
---|
4 | #define MyAppVersion "1.4.0"
|
---|
5 | #define MyAppVersionSuffix "alfa"
|
---|
6 | #define MyAppPublisher "Chronosoft"
|
---|
7 | #define MyAppPublisherShort "Chronosoft"
|
---|
8 | #define MyAppURL "https://app.zdechov.net/c-evo"
|
---|
9 | #define MyAppExeName "C-evo.exe"
|
---|
10 | #define MyAppExeName32 "C-evo32.exe"
|
---|
11 | #define MyAppSubDir "../.."
|
---|
12 |
|
---|
13 | [Setup]
|
---|
14 | ; NOTE: The value of AppId uniquely identifies this application.
|
---|
15 | ; Do not use the same AppId value in installers for other applications.
|
---|
16 | ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
---|
17 | WizardStyle=modern
|
---|
18 | AppId={{6B40AF4D-C38C-4474-9614-8F0C4376C1CF}
|
---|
19 | AppName={#MyAppTitle}
|
---|
20 | #ifdef MyAppVersionSuffix
|
---|
21 | #define MyAppVersionSuffix "-" + MyAppVersionSuffix
|
---|
22 | #else
|
---|
23 | #define MyAppVersionSuffix ""
|
---|
24 | #endif
|
---|
25 | AppVersion={#MyAppVersion}{#MyAppVersionSuffix}
|
---|
26 | AppVerName={#MyAppName} {#MyAppVersion}{#MyAppVersionSuffix}
|
---|
27 | UninstallDisplayName={#MyAppTitle}
|
---|
28 | UninstallDisplayIcon="{app}\{#MyAppExeName}"
|
---|
29 | VersionInfoVersion={#MyAppVersion}
|
---|
30 | VersionInfoCompany={#MyAppPublisher}
|
---|
31 | AppPublisher={#MyAppPublisher}
|
---|
32 | AppPublisherURL={#MyAppURL}
|
---|
33 | AppSupportURL={#MyAppURL}
|
---|
34 | AppUpdatesURL={#MyAppURL}
|
---|
35 | DefaultDirName={commonpf}\{#MyAppName}
|
---|
36 | DefaultGroupName={#MyAppName}
|
---|
37 | AllowNoIcons=yes
|
---|
38 | OutputDir=.
|
---|
39 | Compression=lzma
|
---|
40 | SolidCompression=yes
|
---|
41 | ChangesAssociations=yes
|
---|
42 | DisableDirPage=no
|
---|
43 | ; "ArchitecturesInstallIn64BitMode=x64" requests that the install be
|
---|
44 | ; done in "64-bit mode" on x64, meaning it should use the native
|
---|
45 | ; 64-bit Program Files directory and the 64-bit view of the registry.
|
---|
46 | ; On all other architectures it will install in "32-bit mode".
|
---|
47 | ArchitecturesInstallIn64BitMode=x64
|
---|
48 | ; Note: We don't set ProcessorsAllowed because we want this
|
---|
49 | ; installation to run on all architectures (including Itanium,
|
---|
50 | ; since it's capable of running 32-bit code too).
|
---|
51 | OutputBaseFilename=Install-{#MyAppNameShort}-{#MyAppVersion}{#MyAppVersionSuffix}
|
---|
52 |
|
---|
53 | [Languages]
|
---|
54 | Name: "en"; MessagesFile: "compiler:Default.isl"
|
---|
55 | Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl"
|
---|
56 | Name: "de"; MessagesFile: "compiler:Languages\German.isl"
|
---|
57 | Name: "it"; MessagesFile: "compiler:Languages\Italian.isl"
|
---|
58 | Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"
|
---|
59 | Name: "fr"; MessagesFile: "compiler:Languages\French.isl"
|
---|
60 |
|
---|
61 | [Tasks]
|
---|
62 | Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags:
|
---|
63 |
|
---|
64 | [Registry]
|
---|
65 | Root: HKLM; Subkey: "Software\C-evo"; Flags: uninsdeletekey
|
---|
66 |
|
---|
67 | #define FileTypeName "C-evo book"
|
---|
68 | Root: HKCR; Subkey: ".cevo"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletevalue
|
---|
69 | Root: HKCR; Subkey: "{#FileTypeName}"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletekey
|
---|
70 | Root: HKCR; Subkey: "{#FileTypeName}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0"
|
---|
71 | Root: HKCR; Subkey: "{#FileTypeName}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
|
---|
72 |
|
---|
73 | #define FileTypeName "C-evo map"
|
---|
74 | Root: HKCR; Subkey: ".cevomap"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletevalue
|
---|
75 | Root: HKCR; Subkey: "{#FileTypeName}"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletekey
|
---|
76 | Root: HKCR; Subkey: "{#FileTypeName}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0"
|
---|
77 | Root: HKCR; Subkey: "{#FileTypeName}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
|
---|
78 |
|
---|
79 | [Components]
|
---|
80 | Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed
|
---|
81 | Name: "main32"; Description: "Additional 32-bit architecture"; Types: full; Check: Is64BitInstallMode
|
---|
82 | Name: "maps"; Description: "Maps"; Types: full
|
---|
83 | Name: "sounds"; Description: "Sounds"; Types: full
|
---|
84 | Name: "music"; Description: "Music"; Types: full
|
---|
85 | Name: "lang"; Description: "Language files"; Types: full
|
---|
86 | Name: "lang\cs"; Description: "Czech"; Types: full
|
---|
87 | Name: "lang\de"; Description: "German"; Types: full
|
---|
88 | Name: "lang\it"; Description: "Italian"; Types: full
|
---|
89 | Name: "lang\ru"; Description: "Russian"; Types: full
|
---|
90 | Name: "lang\fr"; Description: "French"; Types: full
|
---|
91 | Name: "lang\zhHans"; Description: "Chinese Simplified"; Types: full
|
---|
92 | Name: "lang\zhHant"; Description: "Chinese Traditional"; Types: full
|
---|
93 | Name: "ai_template"; Description: "AI template"; Types: full
|
---|
94 | Name: "ai"; Description: "AI files"; Types: full
|
---|
95 | Name: "ai\stdai"; Description: "StdAI"; Types: full
|
---|
96 | Name: "ai\ai_uo"; Description: "AI_UO"; Types: full
|
---|
97 | Name: "ai\capital_ai"; Description: "Capital AI"; Types: full
|
---|
98 | Name: "ai\aias"; Description: "AIAS"; Types: full
|
---|
99 | Name: "ai\civseed"; Description: "Civilisation Seed AI"; Types: full
|
---|
100 | Name: "ai\crystal"; Description: "Crystal"; Types: full
|
---|
101 | Name: "ai\kiai"; Description: "KIAI"; Types: full
|
---|
102 | Name: "ai\seti"; Description: "SETI"; Types: full
|
---|
103 | Name: "ai\shah"; Description: "Shah"; Types: full
|
---|
104 |
|
---|
105 | [Files]
|
---|
106 | Source: "{#MyAppSubDir}\lib\x86_64-win64-Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode
|
---|
107 | Source: "{#MyAppSubDir}\lib\i386-win32-Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode
|
---|
108 | Source: "{#MyAppSubDir}\Help\*.*"; DestDir: "{app}\Help"; Flags: ignoreversion; Components: main
|
---|
109 | Source: "{#MyAppSubDir}\Fonts.txt"; DestDir: "{app}"; Flags: ignoreversion; Components: main
|
---|
110 | Source: "{#MyAppSubDir}\Language.txt"; DestDir: "{app}"; Flags: ignoreversion; Components: main
|
---|
111 | Source: "{#MyAppSubDir}\Language2.txt"; DestDir: "{app}"; Flags: ignoreversion; Components: main
|
---|
112 | Source: "{#MyAppSubDir}\Graphics\*"; DestDir: "{app}\Graphics"; Flags: ignoreversion; Components: main
|
---|
113 | Source: "{#MyAppSubDir}\Tribes\*.*"; DestDir: "{app}\Tribes"; Flags: ignoreversion; Components: main
|
---|
114 | Source: "{#MyAppSubDir}\Saved\*.*"; DestDir: "{app}\Saved"; Flags: ignoreversion; Components: main
|
---|
115 | Source: "{#MyAppSubDir}\LibPortaudio-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode
|
---|
116 | Source: "{#MyAppSubDir}\LibPortaudio-64.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode
|
---|
117 | Source: "{#MyAppSubDir}\LibSndFile-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode
|
---|
118 | Source: "{#MyAppSubDir}\LibSndFile-64.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode
|
---|
119 | Source: "{#MyAppSubDir}\libxmp-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode
|
---|
120 | Source: "{#MyAppSubDir}\libxmp-64.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode
|
---|
121 |
|
---|
122 | Source: "{#MyAppSubDir}\lib\i386-win32-Release\{#MyAppExeName}"; DestDir: "{app}"; DestName: "{#MyAppExeName32}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode
|
---|
123 | Source: "{#MyAppSubDir}\AI\StdAI\lib\i386-win32-Release\StdAI.dll"; DestDir: "{app}\AI\StdAI"; DestName: "StdAI-win32.dll"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode
|
---|
124 | Source: "{#MyAppSubDir}\LibPortaudio-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode
|
---|
125 | Source: "{#MyAppSubDir}\LibSndFile-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode
|
---|
126 | Source: "{#MyAppSubDir}\libxmp-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode
|
---|
127 |
|
---|
128 | Source: "{#MyAppSubDir}\Sounds\*.*"; DestDir: "{app}\Sounds"; Flags: ignoreversion; Components: sounds
|
---|
129 |
|
---|
130 | Source: "{#MyAppSubDir}\Music\*.*"; DestDir: "{app}\Music"; Flags: ignoreversion recursesubdirs; Components: music
|
---|
131 |
|
---|
132 | Source: "{#MyAppSubDir}\Maps\*.*"; DestDir: "{app}\Maps"; Flags: ignoreversion; Components: maps
|
---|
133 |
|
---|
134 | Source: "{#MyAppSubDir}\Localization\cs\*.*"; DestDir: "{app}\Localization\cs"; Flags: ignoreversion recursesubdirs; Components: lang\cs
|
---|
135 | Source: "{#MyAppSubDir}\Localization\de\*.*"; DestDir: "{app}\Localization\de"; Flags: ignoreversion recursesubdirs; Components: lang\de
|
---|
136 | Source: "{#MyAppSubDir}\Localization\it\*.*"; DestDir: "{app}\Localization\it"; Flags: ignoreversion recursesubdirs; Components: lang\it
|
---|
137 | Source: "{#MyAppSubDir}\Localization\ru\*.*"; DestDir: "{app}\Localization\ru"; Flags: ignoreversion recursesubdirs; Components: lang\ru
|
---|
138 | Source: "{#MyAppSubDir}\Localization\fr\*.*"; DestDir: "{app}\Localization\fr"; Flags: ignoreversion recursesubdirs; Components: lang\fr
|
---|
139 | Source: "{#MyAppSubDir}\Localization\zh-Hans\*.*"; DestDir: "{app}\Localization\zh-Hans"; Flags: ignoreversion recursesubdirs; Components: lang\zhHans
|
---|
140 | Source: "{#MyAppSubDir}\Localization\zh-Hant\*.*"; DestDir: "{app}\Localization\zh-Hant"; Flags: ignoreversion recursesubdirs; Components: lang\zhHant
|
---|
141 | Source: "{#MyAppSubDir}\AI Template\*.*"; DestDir: "{app}\AI Template"; Flags: ignoreversion recursesubdirs; Components: ai_template
|
---|
142 |
|
---|
143 | Source: "{#MyAppSubDir}\AI\StdAI\StdAI.png"; DestDir: "{app}\AI\StdAI"; Flags: ignoreversion; Components: ai\stdai
|
---|
144 | Source: "{#MyAppSubDir}\AI\StdAI\StdAI.ai.txt"; DestDir: "{app}\AI\StdAI"; Flags: ignoreversion; Components: ai\stdai
|
---|
145 | Source: "{#MyAppSubDir}\AI\StdAI\lib\x86_64-win64-Release\StdAI.dll"; DestDir: "{app}\AI\StdAI"; DestName: "StdAI-win64.dll"; Flags: ignoreversion; Components: ai\stdai; Check: Is64BitInstallMode
|
---|
146 | Source: "{#MyAppSubDir}\AI\StdAI\lib\i386-win32-Release\StdAI.dll"; DestDir: "{app}\AI\StdAI"; DestName: "StdAI-win32.dll"; Flags: ignoreversion; Components: ai\stdai; Check: not Is64BitInstallMode
|
---|
147 |
|
---|
148 | Source: "{#MyAppSubDir}\AI\AI_UO\*.*"; DestDir: "{app}\AI\AI_UO"; Flags: ignoreversion; Components: ai\ai_uo; Check: Install32bitAI
|
---|
149 | Source: "{#MyAppSubDir}\AI\AIAS\*.*"; DestDir: "{app}\AI\AIAS"; Flags: ignoreversion; Components: ai\aias; Check: Install32bitAI
|
---|
150 | Source: "{#MyAppSubDir}\AI\Capital AI\*.*"; DestDir: "{app}\AI\Capital AI"; Flags: ignoreversion; Components: ai\capital_ai; Check: Install32bitAI
|
---|
151 | Source: "{#MyAppSubDir}\AI\Civilisation Seed AI\*.*"; DestDir: "{app}\AI\Civilisation Seed AI"; Flags: ignoreversion; Components: ai\civseed; Check: Install32bitAI
|
---|
152 | Source: "{#MyAppSubDir}\AI\Crystal\*.*"; DestDir: "{app}\AI\Crystal"; Flags: ignoreversion; Components: ai\crystal; Check: Install32bitAI
|
---|
153 | Source: "{#MyAppSubDir}\AI\KIAI\*.*"; DestDir: "{app}\AI\KIAI"; Flags: ignoreversion; Components: ai\kiai; Check: Install32bitAI
|
---|
154 | Source: "{#MyAppSubDir}\AI\SETI\*.*"; DestDir: "{app}\AI\SETI"; Flags: ignoreversion; Components: ai\seti; Check: Install32bitAI
|
---|
155 | Source: "{#MyAppSubDir}\AI\Shah\*.*"; DestDir: "{app}\AI\Shah"; Flags: ignoreversion; Components: ai\shah; Check: Install32bitAI
|
---|
156 | ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
---|
157 |
|
---|
158 | [Icons]
|
---|
159 | Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
---|
160 | Name: "{group}\{#MyAppName} (32-bit)"; Filename: "{app}\{#MyAppExeName32}"; Check: Is64BitInstallMode
|
---|
161 | Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
|
---|
162 | Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
---|
163 |
|
---|
164 | [Run]
|
---|
165 | Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent
|
---|
166 |
|
---|
167 | [Code]
|
---|
168 |
|
---|
169 | function Install32bitAI: Boolean;
|
---|
170 | var
|
---|
171 | Components: string;
|
---|
172 | begin
|
---|
173 | Components := WizardSelectedComponents(False);
|
---|
174 |
|
---|
175 | Result := not Is64BitInstallMode or (Pos('main32', Components) > 0);
|
---|
176 | end;
|
---|