blob: e2278bd53c121aa3ce1a0c533daace843794df5d [file] [log] [blame]
; @@@ START COPYRIGHT @@@
; Licensed to the Apache Software Foundation (ASF) under one
; or more contributor license agreements. See the NOTICE file
; distributed with this work for additional information
; regarding copyright ownership. The ASF licenses this file
; to you under the Apache License, Version 2.0 (the
; "License"); you may not use this file except in compliance
; with the License. You may obtain a copy of the License at
; http://www.apache.org/licenses/LICENSE-2.0
; Unless required by applicable law or agreed to in writing,
; software distributed under the License is distributed on an
; "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
; KIND, either express or implied. See the License for the
; specific language governing permissions and limitations
; under the License.
; @@@ END COPYRIGHT @@@
;
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Trafodion ODB 2.2"
#define MyAppVersion "2.2.0"
#define MyAppPublisher "Apache Trafodion"
#define MyAppURL "http://trafodion.apache.org/"
#define MyAppExeName "odb.exe"
#define BUILDDIR GetEnv('BUILDDIR')
[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.)
AppId={{01D799A9-AA76-4CE2-8D9D-D0C88B3EA241}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={pf}\Trafodion\{#MyAppName}
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=TRAFODB-{#MyAppVersion}
Compression=lzma
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64
UninstallDisplayName={#MyAppName}
ArchitecturesAllowed=x64
SetupLogging=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Files]
Source: "{#BUILDDIR}\odb\x64\Release\odb.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
[UninstallDelete]
Type: filesandordirs; Name: "{app}"
[Code]
function GetUninstallString(): string;
var
sUnInstPath: string;
sUnInstPath_is1: string;
sUnInstallString: String;
sAppId: String;
sAppId_is1: String;
begin
Result := '';
sAppId := ExpandConstant('{#emit SetupSetting("AppId")}');
sAppId_is1 := ExpandConstant('{#emit SetupSetting("AppId")}_is1');
sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\') + sAppId;
sUnInstPath_is1 := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\') + sAppId_is1;
sUnInstallString := '';
if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
if not RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString) then
if not RegQueryStringValue(HKLM, sUnInstPath_is1, 'UninstallString', sUnInstallString) then
RegQueryStringValue(HKCU, sUnInstPath_is1, 'UninstallString', sUnInstallString);
Result := sUnInstallString;
end;
function IsUpgrade: Boolean;
begin
Result := (GetUninstallString() <> '');
end;
function InitializeSetup: Boolean;
var
V: Integer;
iResultCode: Integer;
sUnInstallString: string;
sAppId: String;
sAppId_is1: String;
sAppName: String;
begin
Result := True; // in case when no previous version is found
sAppId := ExpandConstant('{#emit SetupSetting("AppId")}');
sAppId_is1 := ExpandConstant('{#emit SetupSetting("AppId")}_is1');
sAppName := ExpandConstant('{#emit SetupSetting("AppName")}');
sUnInstallString := GetUninstallString();
if (sUnInstallString <> '') then //Your App GUID/ID
begin
V := MsgBox(ExpandConstant('An existing install of '+ sAppName + ' was detected.' + #13#10#13#10 +'The installer will now uninstall the old version and install the new version.' + #13#10#13#10 +'Do you want to continue?'), mbInformation, MB_YESNO); //Custom Message if App installed
if V = IDYES then
begin
sUnInstallString := RemoveQuotes(sUnInstallString);
if (Pos('msiexec',Lowercase(sUnInstallString)) <> 0) then
begin
if not Exec('msiexec.exe', '/X'+sAppId+' /qn', '', SW_SHOW, ewWaitUntilTerminated, iResultCode) then
begin
MsgBox('Failed to uninstall existing files.' + #13#10 + ' ' + SysErrorMessage(iResultCode), mbError, MB_OK);
Result := False;
end
end
else
begin
if not Exec(sUnInstallString, '/SILENT', '', SW_SHOW, ewWaitUntilTerminated, iResultCode) then
begin
MsgBox('Failed to uninstall existing files.' + #13#10 + ' ' + SysErrorMessage(iResultCode), mbError, MB_OK);
Result := False;
end
else
Result := True; //if you want to proceed after uninstall
//Exit; //if you want to quit after uninstall
end
end
else
Result := False; //when older version present and not uninstalled
end;
end;