gajim.iss 2.67 KB
Newer Older
1 2
[Setup]
AppName=Gajim
3
AppVerName=Gajim version 0.10.1-1
4 5
DefaultDirName={pf}\Gajim
DefaultGroupName=Gajim
6
UninstallDisplayIcon={app}\src\Gajim.exe
7 8
Compression=lzma
SolidCompression=yes
9
SetupIconFile=data\pixmaps\gajim.ico
10 11 12 13 14 15

[Components]
Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed

[Tasks]
Name: desktopicon; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; Components: main
nkour's avatar
typo  
nkour committed
16
Name: removeprevious; Description: "Remove previously installed version"; GroupDescription: "Previous install:"; Components: main; Check: IsAlreadyInstalled('Gajim');
17 18

[Files]
19 20 21
Source: "dist\*.pyd"; DestDir: "{app}\src"
Source: "dist\*.dll"; DestDir: "{app}\src"
Source: "dist\*.zip"; DestDir: "{app}\src"
22
Source: "COPYING"; DestDir: "{app}"
23
Source: "THANKS"; DestDir: "{app}"
24
Source: "dist\gajim.exe"; DestDir: "{app}\src"; components: main
25
Source: "dist\history_manager.exe"; DestDir: "{app}\src"; components: main
26
Source: "data\*"; DestDir: "{app}\data"; Flags: recursesubdirs
27
Source: "po\*.mo"; DestDir: "{app}\po"; Flags: recursesubdirs
28 29

[Icons]
30
Name: "{group}\Gajim"; Filename: "{app}\src\Gajim.exe"; WorkingDir: "{app}\src"
Yann Leboulanger's avatar
Yann Leboulanger committed
31
Name: "{group}\History Manager"; Filename: "{app}\src\history_manager.exe"; WorkingDir: "{app}\src"
32
Name: "{group}\Uninstall Gajim"; Filename: "{app}\unins000.exe"; WorkingDir: "{app}"
Yann Leboulanger's avatar
Yann Leboulanger committed
33
Name: "{userdesktop}\Gajim"; Filename: "{app}\src\gajim.exe"; WorkingDir: "{app}\src"; IconFilename: "{app}\data\pixmaps\gajim.ico"; Components: main; Tasks: desktopicon
34 35

[Run]
36
Filename: "{app}\src\gajim.exe"; Description: "Launch application"; Flags: postinstall nowait skipifsilent
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84

[Code]

function GetUninstallPath( AppID: String ): String;
var
   sPrevPath: String;
begin
  sPrevPath := '';
  if not RegQueryStringValue( HKLM,
    'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1',
    'UninstallString', sPrevpath) then
    RegQueryStringValue( HKCU, 'Software\Microsoft\Windows\CurrentVersion\Uninstall\'+AppID+'_is1' ,
      'UninstallString', sPrevpath);

  Result := sPrevPath;
end;

function IsAlreadyInstalled( AppID: String ): Boolean;
var
	sPrevPath: String;
begin
  sPrevPath := GetUninstallPath( AppID );


  if ( Length(sPrevPath) > 0 ) then
    Result:=true
  else
    Result:=false;
 end;

procedure CurStepChanged(CurStep: TSetupStep);
var
	sUninstPath: String;
	sPrevID: String;
	ResultCode: Integer;
begin
  if CurStep = ssInstall then
  begin
    sPrevID := 'Gajim';
    sUninstPath := GetUninstallPath( sprevID );

    if ( Length(sUninstPath) > 0 ) then
    begin
      sUninstPath := RemoveQuotes(sUninstPath);
      Exec( RemoveQuotes(sUninstPath), '/silent', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
    end;
  end;
end;