source: branches/zoom/Install/win/C-evo.iss

Last change on this file was 698, checked in by chronos, 4 weeks ago
  • Fixed: Missing 32-bit StdAI in Windows installer for 64-bit Windows.
File size: 11.3 KB
Line 
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.)
17WizardStyle=modern
18AppId={{6B40AF4D-C38C-4474-9614-8F0C4376C1CF}
19AppName={#MyAppTitle}
20#ifdef MyAppVersionSuffix
21#define MyAppVersionSuffix "-" + MyAppVersionSuffix
22#else
23#define MyAppVersionSuffix ""
24#endif
25AppVersion={#MyAppVersion}{#MyAppVersionSuffix}
26AppVerName={#MyAppName} {#MyAppVersion}{#MyAppVersionSuffix}
27UninstallDisplayName={#MyAppTitle}
28UninstallDisplayIcon="{app}\{#MyAppExeName}"
29VersionInfoVersion={#MyAppVersion}
30VersionInfoCompany={#MyAppPublisher}
31AppPublisher={#MyAppPublisher}
32AppPublisherURL={#MyAppURL}
33AppSupportURL={#MyAppURL}
34AppUpdatesURL={#MyAppURL}
35DefaultDirName={commonpf}\{#MyAppName}
36DefaultGroupName={#MyAppName}
37AllowNoIcons=yes
38OutputDir=.
39Compression=lzma
40SolidCompression=yes
41ChangesAssociations=yes
42DisableDirPage=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".
47ArchitecturesInstallIn64BitMode=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).
51OutputBaseFilename=Install-{#MyAppNameShort}-{#MyAppVersion}{#MyAppVersionSuffix}
52
53[Languages]
54Name: "en"; MessagesFile: "compiler:Default.isl"
55Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl"
56Name: "de"; MessagesFile: "compiler:Languages\German.isl"
57Name: "it"; MessagesFile: "compiler:Languages\Italian.isl"
58Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"
59Name: "fr"; MessagesFile: "compiler:Languages\French.isl"
60
61[Tasks]
62Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags:
63
64[Registry]
65Root: HKLM; Subkey: "Software\C-evo"; Flags: uninsdeletekey
66
67#define FileTypeName "C-evo book"
68Root: HKCR; Subkey: ".cevo"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletevalue
69Root: HKCR; Subkey: "{#FileTypeName}"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletekey
70Root: HKCR; Subkey: "{#FileTypeName}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0"
71Root: HKCR; Subkey: "{#FileTypeName}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
72
73#define FileTypeName "C-evo map"
74Root: HKCR; Subkey: ".cevomap"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletevalue
75Root: HKCR; Subkey: "{#FileTypeName}"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletekey
76Root: HKCR; Subkey: "{#FileTypeName}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0"
77Root: HKCR; Subkey: "{#FileTypeName}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
78
79[Components]
80Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed
81Name: "main32"; Description: "Additional 32-bit architecture"; Types: full; Check: Is64BitInstallMode
82Name: "maps"; Description: "Maps"; Types: full
83Name: "sounds"; Description: "Sounds"; Types: full
84Name: "music"; Description: "Music"; Types: full
85Name: "lang"; Description: "Language files"; Types: full
86Name: "lang\cs"; Description: "Czech"; Types: full
87Name: "lang\de"; Description: "German"; Types: full
88Name: "lang\it"; Description: "Italian"; Types: full
89Name: "lang\ru"; Description: "Russian"; Types: full
90Name: "lang\fr"; Description: "French"; Types: full
91Name: "lang\zhHans"; Description: "Chinese Simplified"; Types: full
92Name: "lang\zhHant"; Description: "Chinese Traditional"; Types: full
93Name: "ai_template"; Description: "AI template"; Types: full
94Name: "ai"; Description: "AI files"; Types: full
95Name: "ai\stdai"; Description: "StdAI"; Types: full
96Name: "ai\ai_uo"; Description: "AI_UO"; Types: full
97Name: "ai\capital_ai"; Description: "Capital AI"; Types: full
98Name: "ai\aias"; Description: "AIAS"; Types: full
99Name: "ai\civseed"; Description: "Civilisation Seed AI"; Types: full
100Name: "ai\crystal"; Description: "Crystal"; Types: full
101Name: "ai\kiai"; Description: "KIAI"; Types: full
102Name: "ai\seti"; Description: "SETI"; Types: full
103Name: "ai\shah"; Description: "Shah"; Types: full
104
105[Files]
106Source: "{#MyAppSubDir}\lib\x86_64-win64-Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode
107Source: "{#MyAppSubDir}\lib\i386-win32-Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode
108Source: "{#MyAppSubDir}\Help\*.*"; DestDir: "{app}\Help"; Flags: ignoreversion; Components: main
109Source: "{#MyAppSubDir}\Fonts.txt"; DestDir: "{app}"; Flags: ignoreversion; Components: main
110Source: "{#MyAppSubDir}\Language.txt"; DestDir: "{app}"; Flags: ignoreversion; Components: main
111Source: "{#MyAppSubDir}\Language2.txt"; DestDir: "{app}"; Flags: ignoreversion; Components: main
112Source: "{#MyAppSubDir}\Graphics\*"; DestDir: "{app}\Graphics"; Flags: ignoreversion; Components: main
113Source: "{#MyAppSubDir}\Tribes\*.*"; DestDir: "{app}\Tribes"; Flags: ignoreversion; Components: main
114Source: "{#MyAppSubDir}\Saved\*.*"; DestDir: "{app}\Saved"; Flags: ignoreversion; Components: main
115Source: "{#MyAppSubDir}\LibPortaudio-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode
116Source: "{#MyAppSubDir}\LibPortaudio-64.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode
117Source: "{#MyAppSubDir}\LibSndFile-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode
118Source: "{#MyAppSubDir}\LibSndFile-64.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode
119Source: "{#MyAppSubDir}\libxmp-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode
120Source: "{#MyAppSubDir}\libxmp-64.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode
121
122Source: "{#MyAppSubDir}\lib\i386-win32-Release\{#MyAppExeName}"; DestDir: "{app}"; DestName: "{#MyAppExeName32}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode
123Source: "{#MyAppSubDir}\AI\StdAI\lib\i386-win32-Release\StdAI.dll"; DestDir: "{app}\AI\StdAI"; DestName: "StdAI-win32.dll"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode
124Source: "{#MyAppSubDir}\LibPortaudio-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode
125Source: "{#MyAppSubDir}\LibSndFile-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode
126Source: "{#MyAppSubDir}\libxmp-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode
127
128Source: "{#MyAppSubDir}\Sounds\*.*"; DestDir: "{app}\Sounds"; Flags: ignoreversion; Components: sounds
129
130Source: "{#MyAppSubDir}\Music\*.*"; DestDir: "{app}\Music"; Flags: ignoreversion recursesubdirs; Components: music
131
132Source: "{#MyAppSubDir}\Maps\*.*"; DestDir: "{app}\Maps"; Flags: ignoreversion; Components: maps
133
134Source: "{#MyAppSubDir}\Localization\cs\*.*"; DestDir: "{app}\Localization\cs"; Flags: ignoreversion recursesubdirs; Components: lang\cs
135Source: "{#MyAppSubDir}\Localization\de\*.*"; DestDir: "{app}\Localization\de"; Flags: ignoreversion recursesubdirs; Components: lang\de
136Source: "{#MyAppSubDir}\Localization\it\*.*"; DestDir: "{app}\Localization\it"; Flags: ignoreversion recursesubdirs; Components: lang\it
137Source: "{#MyAppSubDir}\Localization\ru\*.*"; DestDir: "{app}\Localization\ru"; Flags: ignoreversion recursesubdirs; Components: lang\ru
138Source: "{#MyAppSubDir}\Localization\fr\*.*"; DestDir: "{app}\Localization\fr"; Flags: ignoreversion recursesubdirs; Components: lang\fr
139Source: "{#MyAppSubDir}\Localization\zh-Hans\*.*"; DestDir: "{app}\Localization\zh-Hans"; Flags: ignoreversion recursesubdirs; Components: lang\zhHans
140Source: "{#MyAppSubDir}\Localization\zh-Hant\*.*"; DestDir: "{app}\Localization\zh-Hant"; Flags: ignoreversion recursesubdirs; Components: lang\zhHant
141Source: "{#MyAppSubDir}\AI Template\*.*"; DestDir: "{app}\AI Template"; Flags: ignoreversion recursesubdirs; Components: ai_template
142
143Source: "{#MyAppSubDir}\AI\StdAI\StdAI.png"; DestDir: "{app}\AI\StdAI"; Flags: ignoreversion; Components: ai\stdai
144Source: "{#MyAppSubDir}\AI\StdAI\StdAI.ai.txt"; DestDir: "{app}\AI\StdAI"; Flags: ignoreversion; Components: ai\stdai
145Source: "{#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
146Source: "{#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
148Source: "{#MyAppSubDir}\AI\AI_UO\*.*"; DestDir: "{app}\AI\AI_UO"; Flags: ignoreversion; Components: ai\ai_uo; Check: Install32bitAI
149Source: "{#MyAppSubDir}\AI\AIAS\*.*"; DestDir: "{app}\AI\AIAS"; Flags: ignoreversion; Components: ai\aias; Check: Install32bitAI
150Source: "{#MyAppSubDir}\AI\Capital AI\*.*"; DestDir: "{app}\AI\Capital AI"; Flags: ignoreversion; Components: ai\capital_ai; Check: Install32bitAI
151Source: "{#MyAppSubDir}\AI\Civilisation Seed AI\*.*"; DestDir: "{app}\AI\Civilisation Seed AI"; Flags: ignoreversion; Components: ai\civseed; Check: Install32bitAI
152Source: "{#MyAppSubDir}\AI\Crystal\*.*"; DestDir: "{app}\AI\Crystal"; Flags: ignoreversion; Components: ai\crystal; Check: Install32bitAI
153Source: "{#MyAppSubDir}\AI\KIAI\*.*"; DestDir: "{app}\AI\KIAI"; Flags: ignoreversion; Components: ai\kiai; Check: Install32bitAI
154Source: "{#MyAppSubDir}\AI\SETI\*.*"; DestDir: "{app}\AI\SETI"; Flags: ignoreversion; Components: ai\seti; Check: Install32bitAI
155Source: "{#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]
159Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
160Name: "{group}\{#MyAppName} (32-bit)"; Filename: "{app}\{#MyAppExeName32}"; Check: Is64BitInstallMode
161Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
162Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
163
164[Run]
165Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent
166
167[Code]
168
169function Install32bitAI: Boolean;
170var
171 Components: string;
172begin
173 Components := WizardSelectedComponents(False);
174
175 Result := not Is64BitInstallMode or (Pos('main32', Components) > 0);
176end;
Note: See TracBrowser for help on using the repository browser.