#define MyAppName "C-evo" #define MyAppTitle "C-evo: New Horizons" #define MyAppNameShort "C-evo-nh" #define MyAppVersion "1.3.8" ;#define MyAppVersionSuffix "alfa" #define MyAppPublisher "Chronosoft" #define MyAppPublisherShort "Chronosoft" #define MyAppURL "https://app.zdechov.net/c-evo" #define MyAppExeName "C-evo.exe" #define MyAppExeName32 "C-evo32.exe" #define MyAppSubDir "../.." [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) WizardStyle=modern AppId={{6B40AF4D-C38C-4474-9614-8F0C4376C1CF} AppName={#MyAppTitle} #ifdef MyAppVersionSuffix #define MyAppVersionSuffix "-" + MyAppVersionSuffix #else #define MyAppVersionSuffix "" #endif AppVersion={#MyAppVersion}{#MyAppVersionSuffix} AppVerName={#MyAppName} {#MyAppVersion}{#MyAppVersionSuffix} UninstallDisplayName={#MyAppTitle} UninstallDisplayIcon="{app}\{#MyAppExeName}" VersionInfoVersion={#MyAppVersion} VersionInfoCompany={#MyAppPublisher} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={commonpf}\{#MyAppName} DefaultGroupName={#MyAppName} AllowNoIcons=yes OutputDir=. Compression=lzma SolidCompression=yes ChangesAssociations=yes DisableDirPage=no ; "ArchitecturesInstallIn64BitMode=x64" requests that the install be ; done in "64-bit mode" on x64, 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 ; Note: We don't set ProcessorsAllowed because we want this ; installation to run on all architectures (including Itanium, ; since it's capable of running 32-bit code too). OutputBaseFilename=Install-{#MyAppNameShort}-{#MyAppVersion}{#MyAppVersionSuffix} [Languages] Name: "en"; MessagesFile: "compiler:Default.isl" Name: "cs"; MessagesFile: "compiler:Languages\Czech.isl" Name: "de"; MessagesFile: "compiler:Languages\German.isl" Name: "it"; MessagesFile: "compiler:Languages\Italian.isl" Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl" Name: "fr"; MessagesFile: "compiler:Languages\French.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: [Registry] Root: HKLM; Subkey: "Software\C-evo"; Flags: uninsdeletekey #define FileTypeName "C-evo book" Root: HKCR; Subkey: ".cevo"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletevalue Root: HKCR; Subkey: "{#FileTypeName}"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletekey Root: HKCR; Subkey: "{#FileTypeName}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0" Root: HKCR; Subkey: "{#FileTypeName}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1""" #define FileTypeName "C-evo map" Root: HKCR; Subkey: ".cevomap"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletevalue Root: HKCR; Subkey: "{#FileTypeName}"; ValueType: string; ValueName: ""; ValueData: "{#FileTypeName}"; Flags: uninsdeletekey Root: HKCR; Subkey: "{#FileTypeName}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0" Root: HKCR; Subkey: "{#FileTypeName}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1""" [Components] Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed Name: "main32"; Description: "Additional 32-bit architecture"; Types: full; Check: Is64BitInstallMode Name: "maps"; Description: "Maps"; Types: full Name: "sounds"; Description: "Sounds"; Types: full Name: "music"; Description: "Music"; Types: full Name: "lang"; Description: "Language files"; Types: full Name: "lang\cs"; Description: "Czech"; Types: full Name: "lang\de"; Description: "German"; Types: full Name: "lang\it"; Description: "Italian"; Types: full Name: "lang\ru"; Description: "Russian"; Types: full Name: "lang\fr"; Description: "French"; Types: full Name: "lang\zhHans"; Description: "Chinese Simplified"; Types: full Name: "lang\zhHant"; Description: "Chinese Traditional"; Types: full Name: "ai_template"; Description: "AI template"; Types: full Name: "ai"; Description: "AI files"; Types: full Name: "ai\stdai"; Description: "StdAI"; Types: full Name: "ai\ai_uo"; Description: "AI_UO"; Types: full Name: "ai\capital_ai"; Description: "Capital AI"; Types: full Name: "ai\aias"; Description: "AIAS"; Types: full Name: "ai\civseed"; Description: "Civilisation Seed AI"; Types: full Name: "ai\crystal"; Description: "Crystal"; Types: full Name: "ai\kiai"; Description: "KIAI"; Types: full Name: "ai\seti"; Description: "SETI"; Types: full Name: "ai\shah"; Description: "Shah"; Types: full [Files] Source: "{#MyAppSubDir}\lib\x86_64-win64-Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode Source: "{#MyAppSubDir}\lib\i386-win32-Release\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode Source: "{#MyAppSubDir}\Help\*.*"; DestDir: "{app}\Help"; Flags: ignoreversion; Components: main Source: "{#MyAppSubDir}\Fonts.txt"; DestDir: "{app}"; Flags: ignoreversion; Components: main Source: "{#MyAppSubDir}\Language.txt"; DestDir: "{app}"; Flags: ignoreversion; Components: main Source: "{#MyAppSubDir}\Language2.txt"; DestDir: "{app}"; Flags: ignoreversion; Components: main Source: "{#MyAppSubDir}\Graphics\*"; DestDir: "{app}\Graphics"; Flags: ignoreversion; Components: main Source: "{#MyAppSubDir}\Tribes\*.*"; DestDir: "{app}\Tribes"; Flags: ignoreversion; Components: main Source: "{#MyAppSubDir}\Saved\*.*"; DestDir: "{app}\Saved"; Flags: ignoreversion; Components: main Source: "{#MyAppSubDir}\LibPortaudio-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode Source: "{#MyAppSubDir}\LibPortaudio-64.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode Source: "{#MyAppSubDir}\LibSndFile-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode Source: "{#MyAppSubDir}\LibSndFile-64.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode Source: "{#MyAppSubDir}\libxmp-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: not Is64BitInstallMode Source: "{#MyAppSubDir}\libxmp-64.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main; Check: Is64BitInstallMode Source: "{#MyAppSubDir}\lib\i386-win32-Release\{#MyAppExeName}"; DestDir: "{app}"; DestName: "{#MyAppExeName32}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode Source: "{#MyAppSubDir}\AI\StdAI\lib\i386-win32-Release\StdAI.dll"; DestDir: "{app}\AI\StdAI"; DestName: "StdAI-win32.dll"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode Source: "{#MyAppSubDir}\LibPortaudio-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode Source: "{#MyAppSubDir}\LibSndFile-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode Source: "{#MyAppSubDir}\libxmp-32.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: main32; Check: Is64BitInstallMode Source: "{#MyAppSubDir}\Sounds\*.*"; DestDir: "{app}\Sounds"; Flags: ignoreversion; Components: sounds Source: "{#MyAppSubDir}\Music\*.*"; DestDir: "{app}\Music"; Flags: ignoreversion recursesubdirs; Components: music Source: "{#MyAppSubDir}\Maps\*.*"; DestDir: "{app}\Maps"; Flags: ignoreversion; Components: maps Source: "{#MyAppSubDir}\Localization\cs\*.*"; DestDir: "{app}\Localization\cs"; Flags: ignoreversion recursesubdirs; Components: lang\cs Source: "{#MyAppSubDir}\Localization\de\*.*"; DestDir: "{app}\Localization\de"; Flags: ignoreversion recursesubdirs; Components: lang\de Source: "{#MyAppSubDir}\Localization\it\*.*"; DestDir: "{app}\Localization\it"; Flags: ignoreversion recursesubdirs; Components: lang\it Source: "{#MyAppSubDir}\Localization\ru\*.*"; DestDir: "{app}\Localization\ru"; Flags: ignoreversion recursesubdirs; Components: lang\ru Source: "{#MyAppSubDir}\Localization\fr\*.*"; DestDir: "{app}\Localization\fr"; Flags: ignoreversion recursesubdirs; Components: lang\fr Source: "{#MyAppSubDir}\Localization\zh-Hans\*.*"; DestDir: "{app}\Localization\zh-Hans"; Flags: ignoreversion recursesubdirs; Components: lang\zhHans Source: "{#MyAppSubDir}\Localization\zh-Hant\*.*"; DestDir: "{app}\Localization\zh-Hant"; Flags: ignoreversion recursesubdirs; Components: lang\zhHant Source: "{#MyAppSubDir}\AI Template\*.*"; DestDir: "{app}\AI Template"; Flags: ignoreversion recursesubdirs; Components: ai_template Source: "{#MyAppSubDir}\AI\StdAI\StdAI.png"; DestDir: "{app}\AI\StdAI"; Flags: ignoreversion; Components: ai\stdai Source: "{#MyAppSubDir}\AI\StdAI\StdAI.ai.txt"; DestDir: "{app}\AI\StdAI"; Flags: ignoreversion; Components: ai\stdai 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 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 Source: "{#MyAppSubDir}\AI\AI_UO\*.*"; DestDir: "{app}\AI\AI_UO"; Flags: ignoreversion; Components: ai\ai_uo; Check: Install32bitAI Source: "{#MyAppSubDir}\AI\AIAS\*.*"; DestDir: "{app}\AI\AIAS"; Flags: ignoreversion; Components: ai\aias; Check: Install32bitAI Source: "{#MyAppSubDir}\AI\Capital AI\*.*"; DestDir: "{app}\AI\Capital AI"; Flags: ignoreversion; Components: ai\capital_ai; Check: Install32bitAI Source: "{#MyAppSubDir}\AI\Civilisation Seed AI\*.*"; DestDir: "{app}\AI\Civilisation Seed AI"; Flags: ignoreversion; Components: ai\civseed; Check: Install32bitAI Source: "{#MyAppSubDir}\AI\Crystal\*.*"; DestDir: "{app}\AI\Crystal"; Flags: ignoreversion; Components: ai\crystal; Check: Install32bitAI Source: "{#MyAppSubDir}\AI\KIAI\*.*"; DestDir: "{app}\AI\KIAI"; Flags: ignoreversion; Components: ai\kiai; Check: Install32bitAI Source: "{#MyAppSubDir}\AI\SETI\*.*"; DestDir: "{app}\AI\SETI"; Flags: ignoreversion; Components: ai\seti; Check: Install32bitAI Source: "{#MyAppSubDir}\AI\Shah\*.*"; DestDir: "{app}\AI\Shah"; Flags: ignoreversion; Components: ai\shah; Check: Install32bitAI ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{group}\{#MyAppName} (32-bit)"; Filename: "{app}\{#MyAppExeName32}"; Check: Is64BitInstallMode Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent [Code] function Install32bitAI: Boolean; var Components: string; begin Components := WizardSelectedComponents(False); Result := not Is64BitInstallMode or (Pos('main32', Components) > 0); end;