diff --git a/Win32/inno_installer.iss b/Win32/inno_installer.iss deleted file mode 100644 index 67acc431..00000000 --- a/Win32/inno_installer.iss +++ /dev/null @@ -1,149 +0,0 @@ - -#define I2Pd_AppName "i2pd" -#define I2Pd_ver "0.2" - -[Setup] -AppName={#I2Pd_AppName} -AppVersion={#I2Pd_ver} -DefaultDirName={pf}\I2Pd -DefaultGroupName=I2Pd -UninstallDisplayIcon={app}\I2Pd.exe -Compression=lzma2 -SolidCompression=yes -OutputDir=. -LicenseFile=.\..\LICENSE -OutputBaseFilename=setup_{#I2Pd_AppName}_v{#I2Pd_ver} -ArchitecturesInstallIn64BitMode=x64 - - -[Files] -Source: "x64\Release\i2pd.exe"; DestDir: "{app}"; DestName: "i2pd.exe"; Check: Is64BitInstallMode -Source: "Release\i2pd.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode -Source: "..\README.md"; DestDir: "{app}"; DestName: "Readme.txt"; AfterInstall: ConvertLineEndings - -[Icons] -Name: "{group}\I2Pd"; Filename: "{app}\i2pd.exe" -Name: "{group}\Readme"; Filename: "{app}\Readme.txt" - - -[Registry] -Root: HKCU; Subkey: "Environment"; ValueName: "Path"; ValueType: "string"; ValueData: "{app};{olddata}"; Check: NotOnPathAlready(); Flags: preservestringtype; - -[Code] - -var - DefaultTop, - DefaultLeft, - DefaultHeight, - DefaultBackTop, - DefaultNextTop, - DefaultCancelTop, - DefaultBevelTop, - DefaultOuterHeight: Integer; - -const - LicenseHeight = 400; - LF = #10; - CR = #13; - CRLF = CR + LF; - -procedure ConvertLineEndings(); - var - FilePath : String; - FileContents : String; -begin - FilePath := ExpandConstant(CurrentFileName) - LoadStringFromFile(FilePath, FileContents); - StringChangeEx(FileContents, LF, CRLF, False); - SaveStringToFile(FilePath, FileContents, False); -end; - -procedure InitializeWizard(); -begin - DefaultTop := WizardForm.Top; - DefaultLeft := WizardForm.Left; - DefaultHeight := WizardForm.Height; - DefaultBackTop := WizardForm.BackButton.Top; - DefaultNextTop := WizardForm.NextButton.Top; - DefaultCancelTop := WizardForm.CancelButton.Top; - DefaultBevelTop := WizardForm.Bevel.Top; - DefaultOuterHeight := WizardForm.OuterNotebook.Height; - - WizardForm.InnerPage.Height := WizardForm.InnerPage.Height + (LicenseHeight - DefaultHeight); - WizardForm.InnerNotebook.Height := WizardForm.InnerNotebook.Height + (LicenseHeight - DefaultHeight); - WizardForm.LicensePage.Height := WizardForm.LicensePage.Height + (LicenseHeight - DefaultHeight); - WizardForm.LicenseMemo.Height := WizardForm.LicenseMemo.Height + (LicenseHeight - DefaultHeight); - WizardForm.LicenseNotAcceptedRadio.Top := WizardForm.LicenseNotAcceptedRadio.Top + (LicenseHeight - DefaultHeight); - WizardForm.LicenseAcceptedRadio.Top := WizardForm.LicenseAcceptedRadio.Top + (LicenseHeight - DefaultHeight); - -end; - -procedure CurPageChanged(CurPageID: Integer); -begin - if CurPageID = wpLicense then - begin - WizardForm.Top := DefaultTop - (LicenseHeight - DefaultHeight) div 2; - WizardForm.Height := LicenseHeight; - WizardForm.OuterNotebook.Height := WizardForm.OuterNotebook.Height + (LicenseHeight - DefaultHeight); - WizardForm.CancelButton.Top := DefaultCancelTop + (LicenseHeight - DefaultHeight); - WizardForm.NextButton.Top := DefaultNextTop + (LicenseHeight - DefaultHeight); - WizardForm.BackButton.Top := DefaultBackTop + (LicenseHeight - DefaultHeight); - WizardForm.Bevel.Top := DefaultBevelTop + (LicenseHeight - DefaultHeight); - end - else - begin - WizardForm.Top := DefaultTop; - WizardForm.Left := DefaultLeft; - WizardForm.Height := DefaultHeight; - WizardForm.OuterNotebook.Height := DefaultOuterHeight; - WizardForm.CancelButton.Top := DefaultCancelTop; - WizardForm.NextButton.Top := DefaultNextTop; - WizardForm.BackButton.Top := DefaultBackTop; - WizardForm.Bevel.Top := DefaultBevelTop; - end; -end; - -function NotOnPathAlready(): Boolean; -var - BinDir, Path: String; -begin - Log('Checking if i2pd dir is already in the %PATH%'); - if RegQueryStringValue(HKEY_CURRENT_USER, 'Environment', 'Path', Path) then - begin // Successfully read the value - Log('HKCUEnvironmentPATH = ' + Path); - BinDir := ExpandConstant('{app}'); - Log('Looking for i2pd dir in %PATH%: ' + BinDir + ' in ' + Path); - if Pos(LowerCase(BinDir), Lowercase(Path)) = 0 then - begin - Log('Did not find i2pd dir in %PATH% so I will add it'); - Result := True; - end - else - begin - Log('Found i2pd dir in %PATH% so will not add it again'); - Result := False; - end - end - else // The key probably doesn't exist - begin - Log('Could not access HKCUEnvironmentPATH so I assume that it is OK to add it'); - Result := True; - end; -end; - - -procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); -var - BinDir, Path: String; -begin - if (CurUninstallStep = usPostUninstall) - and (RegQueryStringValue(HKEY_CURRENT_USER, 'Environment', 'PATH', Path)) then - begin - BinDir := ExpandConstant('{app}'); - if Pos(LowerCase(BinDir) + ';', Lowercase(Path)) <> 0 then - begin - StringChange(Path, BinDir + ';', ''); - RegWriteStringValue(HKEY_CURRENT_USER, 'Environment', 'PATH', Path); - end; - end; -end; diff --git a/Win32/installer.iss b/Win32/installer.iss new file mode 100644 index 00000000..95c2bf42 --- /dev/null +++ b/Win32/installer.iss @@ -0,0 +1,41 @@ +#define I2Pd_AppName "i2pd" +#define I2Pd_ver "2.14.0" +#define I2Pd_Publisher "PurpleI2P" + +[Setup] +AppName={#I2Pd_AppName} +AppVersion={#I2Pd_ver} +AppPublisher={#I2Pd_Publisher} +DefaultDirName={pf}\I2Pd +DefaultGroupName=I2Pd +UninstallDisplayIcon={app}\I2Pd.exe +OutputDir=. +LicenseFile=../LICENSE +OutputBaseFilename=setup_{#I2Pd_AppName}_v{#I2Pd_ver} +SetupIconFile=mask.ico +InternalCompressLevel=ultra64 +Compression=lzma/ultra64 +SolidCompression=true +ArchitecturesInstallIn64BitMode=x64 +AppVerName={#I2Pd_AppName} +ExtraDiskSpaceRequired=15 +AppID={{621A23E0-3CF4-4BD6-97BC-4835EA5206A2} +AppPublisherURL=http://i2pd.website/ +AppSupportURL=https://github.com/PurpleI2P/i2pd/issues +AppUpdatesURL=https://github.com/PurpleI2P/i2pd/releases + +[Files] +Source: ..\i2pd_x86.exe; DestDir: {app}; DestName: i2pd.exe; Flags: ignoreversion; Check: not IsWin64 +Source: ..\i2pd_x64.exe; DestDir: {app}; DestName: i2pd.exe; Flags: ignoreversion; Check: IsWin64 +Source: ..\README.md; DestDir: {app}; DestName: Readme.txt; Flags: onlyifdoesntexist +Source: ..\contrib\i2pd.conf; DestDir: {userappdata}\i2pd; Flags: onlyifdoesntexist +Source: ..\contrib\subscriptions.txt; DestDir: {userappdata}\i2pd; Flags: onlyifdoesntexist +Source: ..\contrib\tunnels.conf; DestDir: {userappdata}\i2pd; Flags: onlyifdoesntexist +Source: ..\contrib\certificates\*; DestDir: {userappdata}\i2pd\certificates; Flags: onlyifdoesntexist recursesubdirs createallsubdirs + +[Icons] +Name: {group}\I2Pd; Filename: {app}\i2pd.exe +Name: {group}\Readme; Filename: {app}\Readme.txt + +[UninstallDelete] +Type: filesandordirs; Name: {app}