kopia lustrzana https://github.com/inkstitch/inkstitch
131 wiersze
4.9 KiB
Plaintext
Executable File
131 wiersze
4.9 KiB
Plaintext
Executable File
#define PROGRAMNAME "Ink/Stitch"
|
|
;inkstitch-version
|
|
#define AppId "org.inkstitch.app"
|
|
#define MyAppPublisher "Inkstitch Open Source Community"
|
|
#define URL "https://inkstitch.org/"
|
|
;inkstitch-year
|
|
#define PATHTODIST "..\dist"
|
|
#define INXPATH "..\inx"
|
|
[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.)
|
|
|
|
LanguageDetectionMethod=uilanguage
|
|
;AppId={{C78E6C6F-C47E-4319-AF5A-E71387AE2D4E}
|
|
AppId={#AppId}
|
|
AppName={#PROGRAMNAME}
|
|
AppVersion={#VERSION}
|
|
;AppVerName={#MyAppName} {#MyAppVersion}
|
|
AppPublisherURL={#URL}
|
|
AppSupportURL={#URL}
|
|
AppUpdatesURL={#URL}
|
|
DefaultDirName={userappdata}\inkscape\extensions\
|
|
DefaultGroupName={#PROGRAMNAME}
|
|
; Remove the following line to run in administrative install mode (install for all users.)
|
|
ArchitecturesAllowed=x64 x86
|
|
PrivilegesRequired=lowest
|
|
OutputBaseFilename=inkstitch
|
|
OutputDir=.
|
|
Compression=lzma
|
|
SolidCompression=yes
|
|
VersionInfoCompany={#URL}
|
|
VersionInfoCopyright=Copyright (C) {#COPYRIGHT}
|
|
VersionInfoDescription=An open-source machine embroidery design platform based on Inkscape.
|
|
VersionInfoTextVersion={#VERSION}
|
|
VersionInfoVersion=1.0
|
|
WizardStyle=modern
|
|
ShowLanguageDialog=no
|
|
|
|
[Languages]
|
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
|
Name: "armenian"; MessagesFile: "compiler:Languages\Armenian.isl"
|
|
Name: "brazilian"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"
|
|
Name: "catalan"; MessagesFile: "compiler:Languages\Catalan.isl"
|
|
Name: "corsican"; MessagesFile: "compiler:Languages\Corsican.isl"
|
|
Name: "czech"; MessagesFile: "compiler:Languages\Czech.isl"
|
|
Name: "danish"; MessagesFile: "compiler:Languages\Danish.isl"
|
|
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
|
|
Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl"
|
|
Name: "icelandic"; MessagesFile: "compiler:Languages\Icelandic.isl"
|
|
Name: "norwegian"; MessagesFile: "compiler:Languages\Norwegian.isl"
|
|
Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl"
|
|
Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl"
|
|
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
|
|
Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl"
|
|
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
|
|
Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
|
|
Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
|
|
Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl"
|
|
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
|
|
Name: "slovak"; MessagesFile: "compiler:Languages\Slovak.isl"
|
|
Name: "slovenian"; MessagesFile: "compiler:Languages\Slovenian.isl"
|
|
Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl"
|
|
Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl"
|
|
|
|
[Types]
|
|
Name: "English"; Description: "English";
|
|
|
|
[Files]
|
|
Source: "{#PATHTODIST}\inkstitch\*"; DestDir: "{app}\inkstitch\inkstitch"; Flags: ignoreversion recursesubdirs createallsubdirs
|
|
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
|
[Code]
|
|
// SOURCE: https://stackoverflow.com/questions/2000296/inno-setup-how-to-automatically-uninstall-previous-installed-version
|
|
{ ///////////////////////////////////////////////////////////////////// }
|
|
function GetUninstallString(): String;
|
|
var
|
|
sUnInstPath: String;
|
|
sUnInstallString: String;
|
|
begin
|
|
sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppId")}_is1');
|
|
sUnInstallString := '';
|
|
if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
|
|
RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString);
|
|
Result := sUnInstallString;
|
|
end;
|
|
|
|
|
|
{ ///////////////////////////////////////////////////////////////////// }
|
|
function IsUpgrade(): Boolean;
|
|
begin
|
|
Result := (GetUninstallString() <> '');
|
|
end;
|
|
|
|
|
|
{ ///////////////////////////////////////////////////////////////////// }
|
|
function UnInstallOldVersion(): Integer;
|
|
var
|
|
sUnInstallString: String;
|
|
iResultCode: Integer;
|
|
begin
|
|
{ Return Values: }
|
|
{ 1 - uninstall string is empty }
|
|
{ 2 - error executing the UnInstallString }
|
|
{ 3 - successfully executed the UnInstallString }
|
|
|
|
{ default return value }
|
|
Result := 0;
|
|
|
|
{ get the uninstall string of the old app }
|
|
sUnInstallString := GetUninstallString();
|
|
if sUnInstallString <> '' then begin
|
|
sUnInstallString := RemoveQuotes(sUnInstallString);
|
|
if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
|
|
Result := 3
|
|
else
|
|
Result := 2;
|
|
end else
|
|
Result := 1;
|
|
end;
|
|
|
|
{ ///////////////////////////////////////////////////////////////////// }
|
|
procedure CurStepChanged(CurStep: TSetupStep);
|
|
begin
|
|
if (CurStep=ssInstall) then
|
|
begin
|
|
if (IsUpgrade()) then
|
|
begin
|
|
UnInstallOldVersion();
|
|
end;
|
|
end;
|
|
end;
|