; cppcheck InnoSetup installer script
; Copyright (C) 2007-2009 Daniel Marjamäki and Cppcheck team.

; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, either version 3 of the License, or
; (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program.  If not, see <http://www.gnu.org/licenses/

; To create an installer, get the latest InnoSetup installer creation
; program from: http://www.jrsoftware.org/


#define MyAppName "cppcheck"
#define AppVersion "1.32"
#define MyAppURL "http://cppcheck.wiki.sourceforge.net/"
#define MyAppExeName "cppcheck.exe"
#define QTGuiExe "gui.exe"
#define QTGuiName "cppcheck GUI"

; Set this macro to point to folder where VS and QT runtimes are
; Runtime files are not included in repository so you need to
; get them from elsewhere. VS runtimes come with VS installation. QT runtimes
; you must compile yourself.
#define RuntimesFolder "..\..\Runtimes"

[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={{48254FD9-669B-4A53-A060-D56EB50DDF72}
AppName={#MyAppName}
AppVersion={#AppVersion}
AppVerName={#MyAppName} {#AppVersion}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}

; This is for the installer file
VersionInfoVersion={#AppVersion}
VersionInfoDescription=cppcheck installer

DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=true
LicenseFile=..\COPYING

OutputBaseFilename={#MyAppName}-{#AppVersion}-setup

ChangesEnvironment=true
OutputDir=..\Build

Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=true

; Installer graphics
WizardImageFile=.\LargeLogo.bmp
WizardSmallImageFile=.\icon.bmp
WizardImageStretch=false

[Languages]
Name: english; MessagesFile: compiler:Default.isl

[Types]
Name: full; Description: Full installation
Name: compact; Description: Compact installation
Name: custom; Description: Custom installation; Flags: iscustom

; We have two components:
; - Core contains all C-runtimes, command line executable and basic documents
; - QTGui contains QT libraries and QT-based GUI
[Components]
Name: Core; Description: Core files (command line executable); Types: full custom compact; Flags: fixed
Name: QTGui; Description: QT-based GUI [Experimental]; Types: full

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: modifypath; Description: &Add {#MyAppName} folder to your system path; Flags: unchecked

[InstallDelete]
; Name was changed to COPYING.txt so remove the old file.
Type: files; Name: {app}\COPYING

[Files]
Source: ..\Build\Release\cppcheck.exe; DestDir: {app}; Flags: ignoreversion; Components: Core
Source: ..\gui\Release\gui.exe; DestDir: {app}; Flags: ignoreversion; Components: QTGui
Source: ..\COPYING; DestDir: {app}; DestName: COPYING.txt; Flags: ignoreversion; Components: Core
Source: ..\readme.txt; DestDir: {app}; Flags: ignoreversion; Components: Core
Source: ..\AUTHORS; DestDir: {app}; DestName: AUTHORS.txt; Flags: ignoreversion; Components: Core
; VS runtimes
Source: {#RuntimesFolder}\Microsoft.VC90.CRT.manifest; DestDir: {app}; Components: Core
Source: {#RuntimesFolder}\msvcp90.dll; DestDir: {app}; Components: Core
Source: {#RuntimesFolder}\msvcr90.dll; DestDir: {app}; Components: Core
; QT runtimes
Source: {#RuntimesFolder}\QtCore4.dll; DestDir: {app}; Components: QTGui
Source: {#RuntimesFolder}\QtGui4.dll; DestDir: {app}; Components: QTGui

[Icons]
; As cppcheck is a program run from command prompt, make icons to open
; command prompt in install folder
Name: {group}\{#MyAppName}; Filename: {sys}\cmd.exe; WorkingDir: {app}; Components: Core
Name: {group}\{#QTGuiName}; Filename: {app}\{#QTGuiExe}; WorkingDir: {app}; Components: QTGui
Name: {group}\{cm:ProgramOnTheWeb,{#MyAppName}}; Filename: {#MyAppURL}; Components: Core
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}; Components: Core
; Desktop icon
Name: {commondesktop}\{#MyAppName}; Filename: {sys}\cmd.exe; WorkingDir: {app}; Tasks: desktopicon; Components: Core
; Doc icons
Name: {group}\Authors; Filename: {app}\AUTHORS.txt; IconFileName: {win}\NOTEPAD.EXE; Components: Core
Name: {group}\Copying; Filename: {app}\COPYING.txt; IconFileName: {win}\NOTEPAD.EXE; Components: Core

[Code]
function ModPathDir(): TArrayOfString;
var
	Dir: TArrayOfString;
begin
	setArrayLength(Dir, 1)
	Dir[0] := ExpandConstant('{app}');
	Result := Dir;
end;
#include "modpath.iss"