; A script for packaging botan with InnoSetup

[Setup]
AppName=Botan
AppVerName=Botan %{version}

AppPublisher=Jack Lloyd
AppPublisherURL=http://botan.randombit.net/
AppVersion=%{version}

VersionInfoCopyright=Copyright (C) 1999-2010 Jack Lloyd and others
VersionInfoVersion=%{version_major}.%{version_minor}.%{version_patch}.0

; Require at least Windows 98 or 2000
MinVersion=4.1,5.0

; Uncomment for 64 bit builds
;ArchitecturesAllowed = x64
;ArchitecturesInstallIn64BitMode = x64

DefaultDirName={pf}\botan
DefaultGroupName=botan

SolidCompression=yes

OutputDir=.
OutputBaseFilename=botan-%{version}

[Types]
Name: "user"; Description: "User"
Name: "devel"; Description: "Developer"
Name: "custom"; Description: "Custom"; Flags: iscustom

[Components]
name: "dll"; Description: "Runtime DLLs"; Types: user devel custom; Flags: fixed
name: "implib"; Description: "Import Library"; Types: devel
name: "includes"; Description: "Include Files"; Types: devel
name: "docs"; Description: "Developer Documentation"; Types: devel

[Files]
; DLL and license file is always included
Source: "..\doc\license.txt"; DestDir: "{app}"; Components: dll; AfterInstall: ConvertLineEndings
Source: "..\botan.dll"; DestDir: "{app}"; Components: dll
Source: "..\botan.dll.manifest"; DestDir: "{app}"; Components: dll

Source: "include\botan\*"; DestDir: "{app}\include\botan"; Components: includes; AfterInstall: ConvertLineEndings

Source: "..\readme.txt"; DestDir: "{app}\doc"; Components: docs; AfterInstall: ConvertLineEndings
Source: "..\doc\log.txt"; DestDir: "{app}\doc"; Components: docs; AfterInstall: ConvertLineEndings

Source: "..\doc\examples\*.cpp"; DestDir: "{app}\doc\examples"; Components: docs; AfterInstall: ConvertLineEndings

Source: "..\botan.exp"; DestDir: "{app}"; Components: implib
Source: "..\botan.lib"; DestDir: "{app}"; Components: implib

Source: "..\doc\api.pdf"; DestDir: "{app}\doc"; Components: docs; Flags: skipifsourcedoesntexist
Source: "..\doc\tutorial.pdf"; DestDir: "{app}\doc"; Components: docs; Flags: skipifsourcedoesntexist

[Code]
const
   LF = #10;
   CR = #13;
   CRLF = CR + LF;

procedure ConvertLineEndings();
  var
     FilePath : String;
     FileContents : String;
begin
   FilePath := ExpandConstant(CurrentFileName)

   if ExtractFileName(CurrentFileName) <> 'build.h' then
   begin
      LoadStringFromFile(FilePath, FileContents);
      StringChangeEx(FileContents, LF, CRLF, False);
      SaveStringToFile(FilePath, FileContents, False);
   end;
end;
