From b4f5cff06552e3e9a68c93d93bbed9aa972a23d1 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Wed, 23 Nov 2011 01:35:45 +0100 Subject: [PATCH] separate x86 and x64 inno setup installers --- build/bitmaps/wizardimage.bmp | Bin 461814 -> 52062 bytes build/bitmaps/wizardsmallimage.bmp | Bin 85894 -> 9798 bytes build/build-x64.bat | 20 +-- build/build-x86.bat | 20 +-- build/release-x64.bat | 1 + build/release-x86.bat | 1 + build/version.c | 16 ++- build/xchat-wdk-x64.skel.iss | 207 +++++++++++++++++++++++++++++ build/xchat-wdk-x86.skel.iss | 206 ++++++++++++++++++++++++++++ 9 files changed, 449 insertions(+), 22 deletions(-) create mode 100644 build/xchat-wdk-x64.skel.iss create mode 100644 build/xchat-wdk-x86.skel.iss diff --git a/build/bitmaps/wizardimage.bmp b/build/bitmaps/wizardimage.bmp index 628eb31365d588e9f59ca67d8effe0d551fbb487..9f5a4c9052bf63f9dd61c39ff479d4dfe105d0ef 100644 GIT binary patch literal 52062 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 J!8Q|-OaQIArW*hN delta 2627 zcmd^>u}cC`9LMj(J9~Dfm8Mpw1_|L(Ee%cP(vo;M29515Ed^n9dLS7dUkGdo9D|mi z{)5~Kacz&5YLB4aS+ji`ql0(Hai90)-S2&W-@EQc{aniyiuIDJc*lwy3vxWm+f{j0 zm4rMiid9nG><#ih3>&W1P!%luI>VsvXU+dgx|WW0zm1CKr%H9A>3IDGUkwPHX$Pc! z3)O&ug3j_y$%pWyA2IsU4-yB5I>?TkvgjR;?g(1d4AST=i#AXhr79r%qA6K{dBb7K zAo&)$hMe=WkzC8cc8GjA8^N(Qr)uMhM>oT?sxLyL7d%=Xr&Zs0v@=1fIw($3Ti_+6 zYlRVs?lIf&g&Vkz?z1@ZaRXa1n)fp6BgSXed(6P)6fG~c1eVg42|}Aba$3ib!u3o(<~-?I zs?JCcV$S22($qJ{>xRM7AJSD)AGl8&sAYJ+X3_$=Io7YTnFabh?%DS5{2hG)0Md-Y diff --git a/build/build-x64.bat b/build/build-x64.bat index 97ec4712..6b400512 100644 --- a/build/build-x64.bat +++ b/build/build-x64.bat @@ -7,19 +7,19 @@ set DEV_64=%cd%\..\dep-x64 set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin\amd64;%PROGRAMFILES(X86)%\Microsoft SDKs\Windows\v7.0A\Bin\x64;%DEV_64%\bin set PERL_512=c:\mozilla-build\perl-5.12-x64\perl set PERL_514=c:\mozilla-build\perl-5.14-x64 -echo [Setup] > xchat-wdk.iss -echo WizardImageFile=%cd%\bitmaps\wizardimage.bmp >> xchat-wdk.iss -echo WizardSmallImageFile=%cd%\bitmaps\wizardsmallimage.bmp >> xchat-wdk.iss +echo [Setup] > xchat-wdk-x64.iss +echo WizardImageFile=%cd%\bitmaps\wizardimage.bmp >> xchat-wdk-x64.iss +echo WizardSmallImageFile=%cd%\bitmaps\wizardsmallimage.bmp >> xchat-wdk-x64.iss del version.exe cl /nologo version.c -version -a >> xchat-wdk.iss -version -v >> xchat-wdk.iss -version -i >> xchat-wdk.iss -version -o >> xchat-wdk.iss +version -a64 >> xchat-wdk-x64.iss +version -v >> xchat-wdk-x64.iss +version -i >> xchat-wdk-x64.iss +version -o64 >> xchat-wdk-x64.iss cd .. build\version -r > resource.h -echo SetupIconFile=%cd%\xchat.ico >> build\xchat-wdk.iss -type build\xchat-wdk.skel.iss >> build\xchat-wdk.iss +echo SetupIconFile=%cd%\xchat.ico >> build\xchat-wdk-x64.iss +type build\xchat-wdk.skel.iss >> build\xchat-wdk-x64.iss cd src echo DEV = %DEV_64% > makeinc.mak echo X64 = YES >> makeinc.mak @@ -41,4 +41,6 @@ cd ..\..\build call compile-po-files.bat set PATH=%OPATH% call release-x64.bat +set PATH=%PROGRAMFILES(X86)%\Inno Setup 5 +compil32 /cc xchat-wdk-x64.iss pause diff --git a/build/build-x86.bat b/build/build-x86.bat index fb811920..08f1413a 100644 --- a/build/build-x86.bat +++ b/build/build-x86.bat @@ -7,19 +7,19 @@ set DEV_32=%cd%\..\dep-x86 set PATH=%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\VC\bin;%PROGRAMFILES(X86)%\Microsoft Visual Studio 10.0\Common7\IDE;%PROGRAMFILES(X86)%\Microsoft SDKs\Windows\v7.0A\Bin;%DEV_32%\bin set PERL_512=c:\mozilla-build\perl-5.12-x86\perl set PERL_514=c:\mozilla-build\perl-5.14-x86 -echo [Setup] > xchat-wdk.iss -echo WizardImageFile=%cd%\bitmaps\wizardimage.bmp >> xchat-wdk.iss -echo WizardSmallImageFile=%cd%\bitmaps\wizardsmallimage.bmp >> xchat-wdk.iss +echo [Setup] > xchat-wdk-x86.iss +echo WizardImageFile=%cd%\bitmaps\wizardimage.bmp >> xchat-wdk-x86.iss +echo WizardSmallImageFile=%cd%\bitmaps\wizardsmallimage.bmp >> xchat-wdk-x86.iss del version.exe cl /nologo version.c -version -a >> xchat-wdk.iss -version -v >> xchat-wdk.iss -version -i >> xchat-wdk.iss -version -o >> xchat-wdk.iss +version -a32 >> xchat-wdk-x86.iss +version -v >> xchat-wdk-x86.iss +version -i >> xchat-wdk-x86.iss +version -o32 >> xchat-wdk-x86.iss cd .. build\version -r > resource.h -echo SetupIconFile=%cd%\xchat.ico >> build\xchat-wdk.iss -type build\xchat-wdk.skel.iss >> build\xchat-wdk.iss +echo SetupIconFile=%cd%\xchat.ico >> build\xchat-wdk-x86.iss +type build\xchat-wdk-x86.skel.iss >> build\xchat-wdk-x86.iss cd src echo DEV = %DEV_32% > makeinc.mak type makeinc.skel.mak >> makeinc.mak @@ -40,4 +40,6 @@ cd ..\..\build call compile-po-files.bat set PATH=%OPATH% call release-x86.bat +set PATH=%PROGRAMFILES(X86)%\Inno Setup 5 +compil32 /cc xchat-wdk-x86.iss pause diff --git a/build/release-x64.bat b/build/release-x64.bat index da9d9930..688473de 100644 --- a/build/release-x64.bat +++ b/build/release-x64.bat @@ -39,6 +39,7 @@ copy %DEPS_ROOT%\share\gettext\intl\COPYING.LIB-2.0 %XCHAT_DEST%\LICENSE.GTK copy %DEPS_ROOT%\share\gettext\intl\COPYING.LIB-2.1 %XCHAT_DEST%\LICENSE.CAIRO copy %DEPS_ROOT%\LICENSE.LUA %XCHAT_DEST% copy %DEPS_ROOT%\LICENSE.ENCHANT %XCHAT_DEST% +copy %DEPS_ROOT%\LICENSE.LIBXML %XCHAT_DEST% copy %DEPS_ROOT%\bin\libeay32.dll %XCHAT_DEST% copy %DEPS_ROOT%\bin\ssleay32.dll %XCHAT_DEST% copy %DEPS_ROOT%\bin\zlib1.dll %XCHAT_DEST% diff --git a/build/release-x86.bat b/build/release-x86.bat index 23f9cea0..4f2ee107 100644 --- a/build/release-x86.bat +++ b/build/release-x86.bat @@ -39,6 +39,7 @@ copy %DEPS_ROOT%\share\gettext\intl\COPYING.LIB-2.0 %XCHAT_DEST%\LICENSE.GTK copy %DEPS_ROOT%\share\gettext\intl\COPYING.LIB-2.1 %XCHAT_DEST%\LICENSE.CAIRO copy %DEPS_ROOT%\LICENSE.LUA %XCHAT_DEST% copy %DEPS_ROOT%\LICENSE.ENCHANT %XCHAT_DEST% +copy %DEPS_ROOT%\LICENSE.LIBXML %XCHAT_DEST% copy %DEPS_ROOT%\bin\libeay32.dll %XCHAT_DEST% copy %DEPS_ROOT%\bin\ssleay32.dll %XCHAT_DEST% copy %DEPS_ROOT%\bin\zlib1.dll %XCHAT_DEST% diff --git a/build/version.c b/build/version.c index baa5cb46..0201d298 100644 --- a/build/version.c +++ b/build/version.c @@ -76,9 +76,13 @@ main (int argc, char *argv[]) { printf ("#define COMMA_VERSION %s\n", comma ()); } - else if (!strcmp (argv[1], "-a")) /* xchat-wdk.iss/AppVerName */ + else if (!strcmp (argv[1], "-a32")) /* xchat-wdk.iss/AppVerName */ { - printf ("AppVerName=XChat-WDK %s\n", PACKAGE_VERSION); + printf ("AppVerName=XChat-WDK %s (x86)\n", PACKAGE_VERSION); + } + else if (!strcmp (argv[1], "-a64")) /* xchat-wdk.iss/AppVerName */ + { + printf ("AppVerName=XChat-WDK %s (x64)\n", PACKAGE_VERSION); } else if (!strcmp (argv[1], "-v")) /* xchat-wdk.iss/AppVersion */ { @@ -88,9 +92,13 @@ main (int argc, char *argv[]) { printf ("VersionInfoVersion=%s\n", point ()); } - else if (!strcmp (argv[1], "-o")) /* xchat-wdk.iss/OutputBaseFilename */ + else if (!strcmp (argv[1], "-o32")) /* xchat-wdk.iss/OutputBaseFilename */ { - printf ("OutputBaseFilename=XChat-WDK %s\n", PACKAGE_VERSION); + printf ("OutputBaseFilename=XChat-WDK %s x86\n", PACKAGE_VERSION); + } + else if (!strcmp (argv[1], "-o64")) /* xchat-wdk.iss/OutputBaseFilename */ + { + printf ("OutputBaseFilename=XChat-WDK %s x64\n", PACKAGE_VERSION); } else if (!strcmp (argv[1], "-v")) /* version.txt */ { diff --git a/build/xchat-wdk-x64.skel.iss b/build/xchat-wdk-x64.skel.iss new file mode 100644 index 00000000..940b537c --- /dev/null +++ b/build/xchat-wdk-x64.skel.iss @@ -0,0 +1,207 @@ +AppName=XChat-WDK (x64) +AppPublisher=XChat-WDK +AppPublisherURL=http://code.google.com/p/xchat-wdk/ +AppCopyright=Copyright (C) 1998-2010 Peter Zelezny +AppSupportURL=http://code.google.com/p/xchat-wdk/issues/list +AppUpdatesURL=http://www.xchat-wdk.org/home/downloads +LicenseFile=COPYING +UninstallDisplayIcon={app}\xchat.exe +UninstallDisplayName=XChat-WDK (x64) +DefaultDirName={pf}\XChat-WDK +DefaultGroupName=XChat-WDK (x64) +DisableProgramGroupPage=yes +SolidCompression=yes +SourceDir=..\dist-x64 +OutputDir=..\build +FlatComponentsList=no +PrivilegesRequired=none +ShowComponentSizes=no +CreateUninstallRegKey=not IsTaskSelected('portable') +Uninstallable=not IsTaskSelected('portable') +ArchitecturesAllowed=x86 x64 +ArchitecturesInstallIn64BitMode=x64 + +[Types] +Name: "normal"; Description: "Normal Installation" +Name: "full"; Description: "Full Installation" +Name: "minimal"; Description: "Minimal Installation" +Name: "custom"; Description: "Custom Installation"; Flags: iscustom + +[Components] +Name: "libs"; Description: "XChat-WDK"; Types: normal full minimal custom; Flags: fixed +Name: "xctext"; Description: "XChat-Text"; Types: full custom; Flags: disablenouninstallwarning +Name: "translations"; Description: "Translations"; Types: normal full custom; Flags: disablenouninstallwarning +;Name: "spelling"; Description: "Spelling Dictionaries"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins"; Description: "Plugins"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\checksum"; Description: "Checksum"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\doat"; Description: "Do At"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\mpcinfo"; Description: "mpcInfo"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\upd"; Description: "Update Checker"; Types: normal full custom; Flags: disablenouninstallwarning +Name: "plugins\winamp"; Description: "Winamp"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\wmpa"; Description: "Windows Media Player Announcer"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\xtray"; Description: "X-Tray"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs"; Description: "Language Interfaces"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua"; Description: "Lua"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua\luawdk"; Description: "Lua-WDK"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\perl"; Description: "Perl"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\python"; Description: "Python"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\tcl"; Description: "Tcl"; Types: full custom; Flags: disablenouninstallwarning + +[Tasks] +Name: portable; Description: "Yes"; GroupDescription: "Portable Install (no Registry entries, no Start Menu icons, no uninstaller):"; Flags: unchecked + +Name: perl512; Description: "5.12"; GroupDescription: "Perl version:"; Flags: exclusive; Components: langs\perl +Name: perl514; Description: "5.14"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl + +[Registry] +Root: HKCR; Subkey: "irc"; ValueType: none; ValueName: ""; ValueData: ""; Flags: deletekey uninsdeletekey; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: ""; ValueData: "URL:IRC Protocol"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe,0"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell"; ValueType: string; ValueName: ""; ValueData: "open"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe --url=""%1"""; Flags: uninsdeletevalue; Tasks: not portable + +[Run] +Filename: "{app}\xchat.exe"; Description: "Run XChat-WDK after closing the Wizard"; Flags: nowait postinstall skipifsilent + +[Files] +Source: "portable-mode"; DestDir: "{app}"; Tasks: portable + +Source: "cert.pem"; DestDir: "{app}"; Components: libs +Source: "COPYING"; DestDir: "{app}"; Components: libs +Source: "LICENSE.OPENSSL"; DestDir: "{app}"; Components: libs +Source: "LICENSE.ZLIB"; DestDir: "{app}"; Components: libs +Source: "LICENSE.GTK"; DestDir: "{app}"; Components: libs +Source: "LICENSE.CAIRO"; DestDir: "{app}"; Components: libs +Source: "LICENSE.LUA"; DestDir: "{app}"; Components: libs +Source: "LICENSE.ENCHANT"; DestDir: "{app}"; Components: libs +Source: "LICENSE.LIBXML"; DestDir: "{app}"; Components: libs +Source: "etc\*"; DestDir: "{app}\etc"; Flags: createallsubdirs recursesubdirs; Components: libs +Source: "share\xml\*"; DestDir: "{app}\share\xml"; Flags: createallsubdirs recursesubdirs; Components: libs +Source: "locale\*"; DestDir: "{app}\locale"; Flags: createallsubdirs recursesubdirs; Components: translations +Source: "share\locale\*"; DestDir: "{app}\share\locale"; Flags: createallsubdirs recursesubdirs; Components: translations +;Source: "share\myspell\*"; DestDir: "{app}\share\myspell"; Flags: createallsubdirs recursesubdirs; Components: spelling + +Source: "freetype6.dll"; DestDir: "{app}"; Components: libs +Source: "intl.dll"; DestDir: "{app}"; Components: libs + +Source: "libatk-1.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libcairo-2.dll"; DestDir: "{app}"; Components: libs +Source: "libeay32.dll"; DestDir: "{app}"; Components: libs +Source: "libexpat-1.dll"; DestDir: "{app}"; Components: libs +Source: "libfontconfig-1.dll"; DestDir: "{app}"; Components: libs +Source: "libgdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgdk-win32-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgio-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libglib-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgmodule-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgobject-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgthread-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgtk-win32-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libpango-1.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libpangocairo-1.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libpangoft2-1.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libpangowin32-1.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libpng14-14.dll"; DestDir: "{app}"; Components: libs +Source: "lua51.dll"; DestDir: "{app}"; Components: libs +Source: "ssleay32.dll"; DestDir: "{app}"; Components: libs +Source: "zlib1.dll"; DestDir: "{app}"; Components: libs +Source: "libxml2.dll"; DestDir: "{app}"; Components: libs +Source: "libenchant.dll"; DestDir: "{app}"; Components: libs + +Source: "lib\enchant\libenchant_myspell.dll"; DestDir: "{app}\lib\enchant"; Components: libs + +Source: "lib\gtk-2.0\2.10.0\engines\libpixmap.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Components: libs +Source: "lib\gtk-2.0\2.10.0\engines\libwimp.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Components: libs +Source: "lib\gtk-2.0\modules\libgail.dll"; DestDir: "{app}\lib\gtk-2.0\modules"; Components: libs + +Source: "plugins\xcchecksum.dll"; DestDir: "{app}\plugins"; Components: plugins\checksum +Source: "plugins\xcdoat.dll"; DestDir: "{app}\plugins"; Components: plugins\doat +Source: "plugins\xcmpcinfo.dll"; DestDir: "{app}\plugins"; Components: plugins\mpcinfo +Source: "plugins\xcupd.dll"; DestDir: "{app}\plugins"; Components: plugins\upd +Source: "plugins\xcwinamp.dll"; DestDir: "{app}\plugins"; Components: plugins\winamp +Source: "plugins\xtray.dll"; DestDir: "{app}\plugins"; Components: plugins\xtray +Source: "plugins\xcwmpa.dll"; DestDir: "{app}\plugins"; Components: plugins\wmpa + +Source: "plugins\xclua.dll"; DestDir: "{app}\plugins"; Components: langs\lua +Source: "plugins\xcpython.dll"; DestDir: "{app}\plugins"; Components: langs\python +Source: "plugins\xctcl.dll"; DestDir: "{app}\plugins"; Components: langs\tcl + +Source: "plugins\xcperl-512.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: perl512 +Source: "plugins\xcperl-514.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: perl514 + +Source: "xchat.exe"; DestDir: "{app}"; Components: libs +Source: "xchat-text.exe"; DestDir: "{app}"; Components: xctext + +[Icons] +Name: "{group}\XChat-WDK (x64)"; Filename: "{app}\xchat.exe"; Tasks: not portable +Name: "{group}\XChat-Text (x64)"; Filename: "{app}\xchat-text.exe"; Components: xctext; Tasks: not portable +Name: "{group}\Uninstall XChat-WDK (x64)"; Filename: "{uninstallexe}"; Tasks: not portable + +[Messages] +BeveledLabel= XChat-WDK + +[Code] +///////////////////////////////////////////////////////////////////// +// these are required for x86->x64 or reverse upgrades +///////////////////////////////////////////////////////////////////// +function GetUninstallString(): String; +var + sUnInstPath: String; + sUnInstallString: String; +begin + sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\XChat-WDK_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 not (IsTaskSelected('portable')) then + begin + if (CurStep=ssInstall) then + begin + if (IsUpgrade()) then + begin + UnInstallOldVersion(); + end; + end; + end; +end; diff --git a/build/xchat-wdk-x86.skel.iss b/build/xchat-wdk-x86.skel.iss new file mode 100644 index 00000000..7786dc23 --- /dev/null +++ b/build/xchat-wdk-x86.skel.iss @@ -0,0 +1,206 @@ +AppName=XChat-WDK (x86) +AppPublisher=XChat-WDK +AppPublisherURL=http://code.google.com/p/xchat-wdk/ +AppCopyright=Copyright (C) 1998-2010 Peter Zelezny +AppSupportURL=http://code.google.com/p/xchat-wdk/issues/list +AppUpdatesURL=http://www.xchat-wdk.org/home/downloads +LicenseFile=COPYING +UninstallDisplayIcon={app}\xchat.exe +UninstallDisplayName=XChat-WDK (x86) +DefaultDirName={pf}\XChat-WDK +DefaultGroupName=XChat-WDK (x86) +DisableProgramGroupPage=yes +SolidCompression=yes +SourceDir=..\dist-x86 +OutputDir=..\build +FlatComponentsList=no +PrivilegesRequired=none +ShowComponentSizes=no +CreateUninstallRegKey=not IsTaskSelected('portable') +Uninstallable=not IsTaskSelected('portable') +ArchitecturesAllowed=x86 x64 + +[Types] +Name: "normal"; Description: "Normal Installation" +Name: "full"; Description: "Full Installation" +Name: "minimal"; Description: "Minimal Installation" +Name: "custom"; Description: "Custom Installation"; Flags: iscustom + +[Components] +Name: "libs"; Description: "XChat-WDK"; Types: normal full minimal custom; Flags: fixed +Name: "xctext"; Description: "XChat-Text"; Types: full custom; Flags: disablenouninstallwarning +Name: "translations"; Description: "Translations"; Types: normal full custom; Flags: disablenouninstallwarning +;Name: "spelling"; Description: "Spelling Dictionaries"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins"; Description: "Plugins"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\checksum"; Description: "Checksum"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\doat"; Description: "Do At"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\mpcinfo"; Description: "mpcInfo"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\upd"; Description: "Update Checker"; Types: normal full custom; Flags: disablenouninstallwarning +Name: "plugins\winamp"; Description: "Winamp"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\wmpa"; Description: "Windows Media Player Announcer"; Types: full custom; Flags: disablenouninstallwarning +Name: "plugins\xtray"; Description: "X-Tray"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs"; Description: "Language Interfaces"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua"; Description: "Lua"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\lua\luawdk"; Description: "Lua-WDK"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\perl"; Description: "Perl"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\python"; Description: "Python"; Types: full custom; Flags: disablenouninstallwarning +Name: "langs\tcl"; Description: "Tcl"; Types: full custom; Flags: disablenouninstallwarning + +[Tasks] +Name: portable; Description: "Yes"; GroupDescription: "Portable Install (no Registry entries, no Start Menu icons, no uninstaller):"; Flags: unchecked + +Name: perl512; Description: "5.12"; GroupDescription: "Perl version:"; Flags: exclusive; Components: langs\perl +Name: perl514; Description: "5.14"; GroupDescription: "Perl version:"; Flags: exclusive unchecked; Components: langs\perl + +[Registry] +Root: HKCR; Subkey: "irc"; ValueType: none; ValueName: ""; ValueData: ""; Flags: deletekey uninsdeletekey; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: ""; ValueData: "URL:IRC Protocol"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc"; ValueType: string; ValueName: "URL Protocol"; ValueData: ""; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe,0"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell"; ValueType: string; ValueName: ""; ValueData: "open"; Flags: uninsdeletevalue; Tasks: not portable +Root: HKCR; Subkey: "irc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: "{app}\xchat.exe --url=""%1"""; Flags: uninsdeletevalue; Tasks: not portable + +[Run] +Filename: "{app}\xchat.exe"; Description: "Run XChat-WDK after closing the Wizard"; Flags: nowait postinstall skipifsilent + +[Files] +Source: "portable-mode"; DestDir: "{app}"; Tasks: portable + +Source: "cert.pem"; DestDir: "{app}"; Components: libs +Source: "COPYING"; DestDir: "{app}"; Components: libs +Source: "LICENSE.OPENSSL"; DestDir: "{app}"; Components: libs +Source: "LICENSE.ZLIB"; DestDir: "{app}"; Components: libs +Source: "LICENSE.GTK"; DestDir: "{app}"; Components: libs +Source: "LICENSE.CAIRO"; DestDir: "{app}"; Components: libs +Source: "LICENSE.LUA"; DestDir: "{app}"; Components: libs +Source: "LICENSE.ENCHANT"; DestDir: "{app}"; Components: libs +Source: "LICENSE.LIBXML"; DestDir: "{app}"; Components: libs +Source: "etc\*"; DestDir: "{app}\etc"; Flags: createallsubdirs recursesubdirs; Components: libs +Source: "share\xml\*"; DestDir: "{app}\share\xml"; Flags: createallsubdirs recursesubdirs; Components: libs +Source: "locale\*"; DestDir: "{app}\locale"; Flags: createallsubdirs recursesubdirs; Components: translations +Source: "share\locale\*"; DestDir: "{app}\share\locale"; Flags: createallsubdirs recursesubdirs; Components: translations +;Source: "share\myspell\*"; DestDir: "{app}\share\myspell"; Flags: createallsubdirs recursesubdirs; Components: spelling + +Source: "freetype6.dll"; DestDir: "{app}"; Components: libs +Source: "intl.dll"; DestDir: "{app}"; Components: libs + +Source: "libatk-1.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libcairo-2.dll"; DestDir: "{app}"; Components: libs +Source: "libeay32.dll"; DestDir: "{app}"; Components: libs +Source: "libexpat-1.dll"; DestDir: "{app}"; Components: libs +Source: "libfontconfig-1.dll"; DestDir: "{app}"; Components: libs +Source: "libgdk_pixbuf-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgdk-win32-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgio-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libglib-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgmodule-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgobject-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgthread-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libgtk-win32-2.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libpango-1.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libpangocairo-1.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libpangoft2-1.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libpangowin32-1.0-0.dll"; DestDir: "{app}"; Components: libs +Source: "libpng14-14.dll"; DestDir: "{app}"; Components: libs +Source: "lua51.dll"; DestDir: "{app}"; Components: libs +Source: "ssleay32.dll"; DestDir: "{app}"; Components: libs +Source: "zlib1.dll"; DestDir: "{app}"; Components: libs +Source: "libxml2.dll"; DestDir: "{app}"; Components: libs +Source: "libenchant.dll"; DestDir: "{app}"; Components: libs + +Source: "lib\enchant\libenchant_myspell.dll"; DestDir: "{app}\lib\enchant"; Components: libs + +Source: "lib\gtk-2.0\2.10.0\engines\libpixmap.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Components: libs +Source: "lib\gtk-2.0\2.10.0\engines\libwimp.dll"; DestDir: "{app}\lib\gtk-2.0\2.10.0\engines"; Components: libs +Source: "lib\gtk-2.0\modules\libgail.dll"; DestDir: "{app}\lib\gtk-2.0\modules"; Components: libs + +Source: "plugins\xcchecksum.dll"; DestDir: "{app}\plugins"; Components: plugins\checksum +Source: "plugins\xcdoat.dll"; DestDir: "{app}\plugins"; Components: plugins\doat +Source: "plugins\xcmpcinfo.dll"; DestDir: "{app}\plugins"; Components: plugins\mpcinfo +Source: "plugins\xcupd.dll"; DestDir: "{app}\plugins"; Components: plugins\upd +Source: "plugins\xcwinamp.dll"; DestDir: "{app}\plugins"; Components: plugins\winamp +Source: "plugins\xtray.dll"; DestDir: "{app}\plugins"; Components: plugins\xtray +Source: "plugins\xcwmpa.dll"; DestDir: "{app}\plugins"; Components: plugins\wmpa + +Source: "plugins\xclua.dll"; DestDir: "{app}\plugins"; Components: langs\lua +Source: "plugins\xcpython.dll"; DestDir: "{app}\plugins"; Components: langs\python +Source: "plugins\xctcl.dll"; DestDir: "{app}\plugins"; Components: langs\tcl + +Source: "plugins\xcperl-512.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: perl512 +Source: "plugins\xcperl-514.dll"; DestDir: "{app}\plugins"; DestName: "xcperl.dll"; Components: langs\perl; Tasks: perl514 + +Source: "xchat.exe"; DestDir: "{app}"; Components: libs +Source: "xchat-text.exe"; DestDir: "{app}"; Components: xctext + +[Icons] +Name: "{group}\XChat-WDK (x86)"; Filename: "{app}\xchat.exe"; Tasks: not portable +Name: "{group}\XChat-Text (x86)"; Filename: "{app}\xchat-text.exe"; Components: xctext; Tasks: not portable +Name: "{group}\Uninstall XChat-WDK (x86)"; Filename: "{uninstallexe}"; Tasks: not portable + +[Messages] +BeveledLabel= XChat-WDK + +[Code] +///////////////////////////////////////////////////////////////////// +// these are required for x86->x64 or reverse upgrades +///////////////////////////////////////////////////////////////////// +function GetUninstallString(): String; +var + sUnInstPath: String; + sUnInstallString: String; +begin + sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\XChat-WDK_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 not (IsTaskSelected('portable')) then + begin + if (CurStep=ssInstall) then + begin + if (IsUpgrade()) then + begin + UnInstallOldVersion(); + end; + end; + end; +end;