From df9c5f5f91727068cbe2dc28af8e2d4cceb539e0 Mon Sep 17 00:00:00 2001 From: rootfather Date: Thu, 7 Dec 2017 23:47:38 +0100 Subject: [PATCH 01/11] Win32: Add Inno Setup script --- tools/windows/mgba-setup-win32.iss | 173 +++++++++++++++++++++++++ tools/windows/mgba-setupiconfile.ico | Bin 0 -> 43778 bytes tools/windows/mgba-wizardimagefile.bmp | Bin 0 -> 154542 bytes 3 files changed, 173 insertions(+) create mode 100644 tools/windows/mgba-setup-win32.iss create mode 100644 tools/windows/mgba-setupiconfile.ico create mode 100644 tools/windows/mgba-wizardimagefile.bmp diff --git a/tools/windows/mgba-setup-win32.iss b/tools/windows/mgba-setup-win32.iss new file mode 100644 index 000000000..7bd12ec99 --- /dev/null +++ b/tools/windows/mgba-setup-win32.iss @@ -0,0 +1,173 @@ +;For automation purposes it is highly recommended to copy the files from +;\tools\windows\ to the directory that contains the win32 distribution files! + +;IsRelease = yes will create a setup file named after the current version of mGBA. +;IsRelease = no will create a setup fille named mGBA-setup-latest-win32.exe. +#define IsRelease = yes + +#define VerMajor +#define VerMinor +#define VerRev +#define VerBuild +#define FullVersion=ParseVersion('mGBA.exe', VerMajor, VerMinor, VerRev, VerBuild) +#define AppVer = Str(VerMajor) + "." + Str(VerMinor) + "." + Str(VerRev) + +[Setup] +SourceDir=.\ +SetupIconFile=mgba-setupiconfile.ico +WizardImageFile=mgba-wizardimagefile.bmp + +AppName=mGBA +AppVersion={#AppVer} +AppPublisher=Jeffrey Pfau +AppPublisherURL=https://mgba.io +AppSupportURL=https://mgba.io +AppUpdatesURL=https://mgba.io +AppReadmeFile=README.html +OutputDir=.\ +DefaultDirName={pf}\mGBA +DefaultGroupName=mGBA +AllowNoIcons=yes +DirExistsWarning=no +ChangesAssociations=True +AppendDefaultDirName=False +UninstallDisplayIcon={app}\mGBA.exe +MinVersion=0,6.0 +AlwaysShowDirOnReadyPage=True +UsePreviousSetupType=True +UsePreviousTasks=True +AlwaysShowGroupOnReadyPage=True +LicenseFile=LICENSE.txt +#if IsRelease==yes; + OutputBaseFilename=mGBA-{#AppVer}-win32 +#elif IsRelease==no; + OutputBaseFilename=mGBA-setup-latest-win32 + #endif +UsePreviousLanguage=False +DisableWelcomePage=False +VersionInfoDescription=mGBA is an open-source Game Boy Advance emulator +VersionInfoCopyright=© 2013–2017 Jeffrey Pfau +VersionInfoProductName=mGBA +VersionInfoVersion={#AppVer} +Compression=lzma2/ultra64 +SolidCompression=True +VersionInfoTextVersion={#AppVer} +VersionInfoProductVersion={#AppVer} +VersionInfoProductTextVersion={#AppVer} + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" +Name: "german"; MessagesFile: "compiler:Languages\German.isl" +Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl" +Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" +Name: "gbfileassoc"; Description: "{cm:AssocFileExtension,mGBA,Game Boy}"; GroupDescription: "{cm:FileAssoc}" +Name: "gbcfileassoc"; Description: "{cm:AssocFileExtension,mGBA,Game Boy Color}"; GroupDescription: "{cm:FileAssoc}" +Name: "gbafileassoc"; Description: "{cm:AssocFileExtension,mGBA,Game Boy Advance}"; GroupDescription: "{cm:FileAssoc}" + +[Files] +Source: "mGBA.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: "CHANGES.txt"; DestDir: "{app}\"; Flags: ignoreversion +Source: "LICENSE.txt"; DestDir: "{app}\"; Flags: ignoreversion +Source: "mGBA.exe"; DestDir: "{app}\"; Flags: ignoreversion +Source: "nointro.dat"; DestDir: "{app}\"; Flags: ignoreversion +Source: "README.html"; DestDir: "{app}\"; Flags: ignoreversion +Source: "shaders\agb001.shader\agb001.fs"; DestDir: "{app}\shaders\agb001.shader\"; Flags: ignoreversion +Source: "shaders\agb001.shader\manifest.ini"; DestDir: "{app}\shaders\agb001.shader\"; Flags: ignoreversion +Source: "shaders\ags001.shader\ags001-light.fs"; DestDir: "{app}\shaders\ags001.shader\"; Flags: ignoreversion +Source: "shaders\ags001.shader\ags001.fs"; DestDir: "{app}\shaders\ags001.shader\"; Flags: ignoreversion +Source: "shaders\ags001.shader\manifest.ini"; DestDir: "{app}\shaders\ags001.shader\"; Flags: ignoreversion +Source: "shaders\fish.shader\fish.fs"; DestDir: "{app}\shaders\fish.shader\"; Flags: ignoreversion +Source: "shaders\fish.shader\manifest.ini"; DestDir: "{app}\shaders\fish.shader\"; Flags: ignoreversion +Source: "shaders\gba-color.shader\gba-color.fs"; DestDir: "{app}\shaders\gba-color.shader\"; Flags: ignoreversion +Source: "shaders\gba-color.shader\manifest.ini"; DestDir: "{app}\shaders\gba-color.shader\"; Flags: ignoreversion +Source: "shaders\lcd.shader\lcd.fs"; DestDir: "{app}\shaders\lcd.shader\"; Flags: ignoreversion +Source: "shaders\lcd.shader\manifest.ini"; DestDir: "{app}\shaders\lcd.shader\"; Flags: ignoreversion +Source: "shaders\motion_blur.shader\manifest.ini"; DestDir: "{app}\shaders\motion_blur.shader\"; Flags: ignoreversion +Source: "shaders\motion_blur.shader\motion_blur.fs"; DestDir: "{app}\shaders\motion_blur.shader\"; Flags: ignoreversion +Source: "shaders\pixelate.shader\manifest.ini"; DestDir: "{app}\shaders\pixelate.shader\"; Flags: ignoreversion +Source: "shaders\scanlines.shader\manifest.ini"; DestDir: "{app}\shaders\scanlines.shader\"; Flags: ignoreversion +Source: "shaders\scanlines.shader\scanlines.fs"; DestDir: "{app}\shaders\scanlines.shader\"; Flags: ignoreversion +Source: "shaders\soften.shader\manifest.ini"; DestDir: "{app}\shaders\soften.shader\"; Flags: ignoreversion +Source: "shaders\soften.shader\soften.fs"; DestDir: "{app}\shaders\soften.shader\"; Flags: ignoreversion +Source: "shaders\vba_pixelate.shader\manifest.ini"; DestDir: "{app}\shaders\vba_pixelate.shader\"; Flags: ignoreversion +Source: "shaders\vba_pixelate.shader\vba_pixelate.fs"; DestDir: "{app}\shaders\vba_pixelate.shader\"; Flags: ignoreversion +Source: "shaders\vignette.shader\manifest.ini"; DestDir: "{app}\shaders\vignette.shader\"; Flags: ignoreversion +Source: "shaders\vignette.shader\vignette.fs"; DestDir: "{app}\shaders\vignette.shader\"; Flags: ignoreversion +Source: "shaders\wiiu.shader\manifest.ini"; DestDir: "{app}\shaders\wiiu.shader\"; Flags: ignoreversion +Source: "shaders\wiiu.shader\wiiu.fs"; DestDir: "{app}\shaders\wiiu.shader\"; Flags: ignoreversion +Source: "shaders\xbr-lv2.shader\manifest.ini"; DestDir: "{app}\shaders\xbr-lv2.shader\"; Flags: ignoreversion +Source: "shaders\xbr-lv2.shader\xbr.fs"; DestDir: "{app}\shaders\xbr-lv2.shader\"; Flags: ignoreversion +Source: "shaders\xbr-lv2.shader\xbr.vs"; DestDir: "{app}\shaders\xbr-lv2.shader\"; Flags: ignoreversion +Source: "shaders\xbr-lv3.shader\manifest.ini"; DestDir: "{app}\shaders\xbr-lv3.shader\"; Flags: ignoreversion +Source: "shaders\xbr-lv3.shader\xbr.fs"; DestDir: "{app}\shaders\xbr-lv3.shader\"; Flags: ignoreversion +Source: "shaders\xbr-lv3.shader\xbr.vs"; DestDir: "{app}\shaders\xbr-lv3.shader\"; Flags: ignoreversion +Source: "third-party\LICENSE.blip-buf"; DestDir: "{app}\third-party\"; Flags: ignoreversion +Source: "third-party\LICENSE.ffmpeg"; DestDir: "{app}\third-party\"; Flags: ignoreversion +Source: "third-party\LICENSE.imagemagick"; DestDir: "{app}\third-party\"; Flags: ignoreversion +Source: "third-party\LICENSE.inih"; DestDir: "{app}\third-party\"; Flags: ignoreversion +Source: "third-party\LICENSE.lame"; DestDir: "{app}\third-party\"; Flags: ignoreversion +Source: "third-party\LICENSE.libvpx"; DestDir: "{app}\third-party\"; Flags: ignoreversion +Source: "third-party\LICENSE.opus"; DestDir: "{app}\third-party\"; Flags: ignoreversion +Source: "third-party\LICENSE.qt5"; DestDir: "{app}\third-party\"; Flags: ignoreversion +Source: "third-party\LICENSE.sdl2"; DestDir: "{app}\third-party\"; Flags: ignoreversion +Source: "third-party\LICENSE.x264"; DestDir: "{app}\third-party\"; Flags: ignoreversion +Source: "third-party\LICENSE.xvid"; DestDir: "{app}\third-party\"; Flags: ignoreversion + +[Icons] +Name: "{commonstartmenu}\mGBA"; Filename: "{app}\mGBA.exe" +Name: "{commondesktop}\mGBA"; Filename: "{app}\mGBA.exe"; Tasks: desktopicon + +[Run] +Filename: "{app}\mGBA.exe"; Description: "{cm:LaunchProgram,mGBA}"; Flags: nowait postinstall skipifsilent +Filename: "{app}\README.html"; Description: "View README"; Flags: nowait postinstall skipifsilent unchecked; Languages: english +Filename: "{app}\README.html"; Description: "View README"; Flags: nowait postinstall skipifsilent unchecked; Languages: italian +Filename: "{app}\README.html"; Description: "View README"; Flags: nowait postinstall skipifsilent unchecked; Languages: spanish +Filename: "{app}\README.html"; Description: "README anzeigen"; Flags: nowait postinstall skipifsilent unchecked; Languages: german +Filename: "{app}\CHANGES.txt"; Description: "View Changelog"; Flags: nowait postinstall skipifsilent unchecked; Languages: english +Filename: "{app}\CHANGES.txt"; Description: "View Changelog"; Flags: nowait postinstall skipifsilent unchecked; Languages: italian +Filename: "{app}\CHANGES.txt"; Description: "View Changelog"; Flags: nowait postinstall skipifsilent unchecked; Languages: spanish +Filename: "{app}\CHANGES.txt"; Description: "Changelog anzeigen"; Flags: nowait postinstall skipifsilent unchecked; Languages: german + +[Dirs] +Name: "{app}\shaders\" +Name: "{app}\shaders\agb001.shader\" +Name: "{app}\shaders\ags001.shader\" +Name: "{app}\shaders\fish.shader\" +Name: "{app}\shaders\gba-color.shader\" +Name: "{app}\shaders\lcd.shader\" +Name: "{app}\shaders\motion_blur.shader\" +Name: "{app}\shaders\pixelate.shader\" +Name: "{app}\shaders\scanlines.shader\" +Name: "{app}\shaders\soften.shader\" +Name: "{app}\shaders\vba_pixelate.shader\" +Name: "{app}\shaders\vignette.shader\" +Name: "{app}\shaders\wiiu.shader\" +Name: "{app}\shaders\xbr-lv2.shader\" +Name: "{app}\shaders\xbr-lv3.shader\" +Name: "{app}\third-party\" + +[CustomMessages] +english.FileAssoc=Register file associations +italian.FileAssoc=Register file associations +spanish.FileAssoc=Register file associations +german.FileAssoc=Dateierweiterungen registrieren + +[INI] +Filename: "{userappdata}\mGBA\qt.ini"; Section: "General"; Key: "language"; String: "en"; Languages: english +Filename: "{userappdata}\mGBA\qt.ini"; Section: "General"; Key: "language"; String: "de"; Languages: german +Filename: "{userappdata}\mGBA\qt.ini"; Section: "General"; Key: "language"; String: "es"; Languages: spanish +Filename: "{userappdata}\mGBA\qt.ini"; Section: "General"; Key: "language"; String: "it"; Languages: italian + +[Registry] +Root: HKCR; Subkey: ".gb"; ValueType: string; ValueName: ""; ValueData: "Game Boy ROM"; Flags: uninsdeletevalue; Tasks: gbfileassoc +Root: HKCR; Subkey: ".gb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mGBA.exe,0"; Tasks: gbfileassoc +Root: HKCR; Subkey: ".gb\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\mGBA.exe"" ""%1"""; Tasks: gbfileassoc +Root: HKCR; Subkey: ".gbc"; ValueType: string; ValueName: ""; ValueData: "Game Boy Color ROM"; Flags: uninsdeletevalue; Tasks: gbcfileassoc +Root: HKCR; Subkey: ".gbc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mGBA.exe,0"; Tasks: gbcfileassoc +Root: HKCR; Subkey: ".gbc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\mGBA.exe"" ""%1"""; Tasks: gbcfileassoc +Root: HKCR; Subkey: ".gba"; ValueType: string; ValueName: ""; ValueData: "Game Boy Advance ROM"; Flags: uninsdeletevalue; Tasks: gbafileassoc +Root: HKCR; Subkey: ".gba\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mGBA.exe,0"; Tasks: gbafileassoc +Root: HKCR; Subkey: ".gba\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\mGBA.exe"" ""%1"""; Tasks: gbafileassoc \ No newline at end of file diff --git a/tools/windows/mgba-setupiconfile.ico b/tools/windows/mgba-setupiconfile.ico new file mode 100644 index 0000000000000000000000000000000000000000..7b382e8084a323a9aa58ec1aa776ac03d4e0fb01 GIT binary patch literal 43778 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

8u3hN*4Njm*XxYbMwpnGz;oSgpScx`RBQMt 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 Date: Fri, 8 Dec 2017 20:07:30 +0100 Subject: [PATCH 02/11] Win32: Improve version handling in Inno Setup --- tools/windows/mgba-setup-win32.iss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/windows/mgba-setup-win32.iss b/tools/windows/mgba-setup-win32.iss index 7bd12ec99..328fe507b 100644 --- a/tools/windows/mgba-setup-win32.iss +++ b/tools/windows/mgba-setup-win32.iss @@ -39,8 +39,10 @@ UsePreviousTasks=True AlwaysShowGroupOnReadyPage=True LicenseFile=LICENSE.txt #if IsRelease==yes; + AppVerName=mGBA {#AppVer} OutputBaseFilename=mGBA-{#AppVer}-win32 #elif IsRelease==no; + AppVerName=mGBA (Development build) OutputBaseFilename=mGBA-setup-latest-win32 #endif UsePreviousLanguage=False From 06b999afd5be23e23880c9fbbef4d0ee41374e06 Mon Sep 17 00:00:00 2001 From: rootfather Date: Thu, 14 Dec 2017 20:04:01 +0100 Subject: [PATCH 03/11] Win32: Remove workaround for bug #906 (now fixed) --- tools/windows/mgba-setup-win32.iss | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tools/windows/mgba-setup-win32.iss b/tools/windows/mgba-setup-win32.iss index 328fe507b..34bae2e7b 100644 --- a/tools/windows/mgba-setup-win32.iss +++ b/tools/windows/mgba-setup-win32.iss @@ -157,12 +157,6 @@ italian.FileAssoc=Register file associations spanish.FileAssoc=Register file associations german.FileAssoc=Dateierweiterungen registrieren -[INI] -Filename: "{userappdata}\mGBA\qt.ini"; Section: "General"; Key: "language"; String: "en"; Languages: english -Filename: "{userappdata}\mGBA\qt.ini"; Section: "General"; Key: "language"; String: "de"; Languages: german -Filename: "{userappdata}\mGBA\qt.ini"; Section: "General"; Key: "language"; String: "es"; Languages: spanish -Filename: "{userappdata}\mGBA\qt.ini"; Section: "General"; Key: "language"; String: "it"; Languages: italian - [Registry] Root: HKCR; Subkey: ".gb"; ValueType: string; ValueName: ""; ValueData: "Game Boy ROM"; Flags: uninsdeletevalue; Tasks: gbfileassoc Root: HKCR; Subkey: ".gb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mGBA.exe,0"; Tasks: gbfileassoc From c1a7e1aca19d63432a552445b81ac640e9f5571e Mon Sep 17 00:00:00 2001 From: rootfather Date: Tue, 19 Dec 2017 11:16:50 +0100 Subject: [PATCH 04/11] Win32: Add notification message when installing a development build --- tools/windows/mgba-setup-win32.iss | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/tools/windows/mgba-setup-win32.iss b/tools/windows/mgba-setup-win32.iss index 34bae2e7b..638955371 100644 --- a/tools/windows/mgba-setup-win32.iss +++ b/tools/windows/mgba-setup-win32.iss @@ -3,7 +3,7 @@ ;IsRelease = yes will create a setup file named after the current version of mGBA. ;IsRelease = no will create a setup fille named mGBA-setup-latest-win32.exe. -#define IsRelease = yes +#define IsRelease = 'no' #define VerMajor #define VerMinor @@ -38,10 +38,10 @@ UsePreviousSetupType=True UsePreviousTasks=True AlwaysShowGroupOnReadyPage=True LicenseFile=LICENSE.txt -#if IsRelease==yes; +#if IsRelease=='yes'; AppVerName=mGBA {#AppVer} OutputBaseFilename=mGBA-{#AppVer}-win32 -#elif IsRelease==no; +#elif IsRelease=='no'; AppVerName=mGBA (Development build) OutputBaseFilename=mGBA-setup-latest-win32 #endif @@ -165,5 +165,21 @@ Root: HKCR; Subkey: ".gbc"; ValueType: string; ValueName: ""; ValueData: "Game B Root: HKCR; Subkey: ".gbc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mGBA.exe,0"; Tasks: gbcfileassoc Root: HKCR; Subkey: ".gbc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\mGBA.exe"" ""%1"""; Tasks: gbcfileassoc Root: HKCR; Subkey: ".gba"; ValueType: string; ValueName: ""; ValueData: "Game Boy Advance ROM"; Flags: uninsdeletevalue; Tasks: gbafileassoc -Root: HKCR; Subkey: ".gba\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mGBA.exe,0"; Tasks: gbafileassoc -Root: HKCR; Subkey: ".gba\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\mGBA.exe"" ""%1"""; Tasks: gbafileassoc \ No newline at end of file +Root: HKCR; Subkey: ".gba\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mGBA.exe,0"; Tasks: gbafileassoc Root: HKCR; Subkey: ".gba\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\mGBA.exe"" ""%1"""; Tasks: gbafileassoc + +[Code] +var + noReleaseWarning: String; + +procedure InitializeWizard(); + begin + if ExpandConstant('{#IsRelease}') = 'no' then + begin + if ExpandConstant('{language}') = 'english' then noReleaseWarning := 'You are about to install a development build of mGBA.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; + if ExpandConstant('{language}') = 'italian' then noReleaseWarning := 'You are about to install a development build of mGBA.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; + if ExpandConstant('{language}') = 'spanish' then noReleaseWarning := 'You are about to install a development build of mGBA.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; + if ExpandConstant('{language}') = 'german' then noReleaseWarning := 'Sie möchten eine Entwicklerversion von mGBA installieren.' + #13#10#13#10 + 'Entwicklerversionen können bislang noch nicht endeckte Fehler beinhalten. Bitte melden Sie alle Fehler, die Sie finden können, auf der GitHub-Projektseite.'; + MsgBox(noReleaseWarning, mbInformation, MB_OK); + end; + end; +end. \ No newline at end of file From 8880ed7277165d96ad796b326551850904b051c1 Mon Sep 17 00:00:00 2001 From: rootfather Date: Tue, 19 Dec 2017 11:56:36 +0100 Subject: [PATCH 05/11] Win32: Add version detection to the Inno script Now you don't have to switch between IsRelease = yes and no. Instead, you set the CurrentReleaseVersion variable to the number of the latest stable release and Inno will decide if the setup you are about to build is a stable or a development package, so you have to alter the script only once for each release cycle. This is the highest level of automation I can currently imagine. --- tools/windows/mgba-setup-win32.iss | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/windows/mgba-setup-win32.iss b/tools/windows/mgba-setup-win32.iss index 638955371..c00ef0131 100644 --- a/tools/windows/mgba-setup-win32.iss +++ b/tools/windows/mgba-setup-win32.iss @@ -1,9 +1,8 @@ ;For automation purposes it is highly recommended to copy the files from ;\tools\windows\ to the directory that contains the win32 distribution files! -;IsRelease = yes will create a setup file named after the current version of mGBA. -;IsRelease = no will create a setup fille named mGBA-setup-latest-win32.exe. -#define IsRelease = 'no' +;Set CurrentReleaseVersion to the number of the latest stable mGBA build. +#define CurrentReleaseVersion = '0.6.1' #define VerMajor #define VerMinor @@ -38,10 +37,12 @@ UsePreviousSetupType=True UsePreviousTasks=True AlwaysShowGroupOnReadyPage=True LicenseFile=LICENSE.txt -#if IsRelease=='yes'; +#if CurrentReleaseVersion == AppVer; + #define IsRelease = 'yes' AppVerName=mGBA {#AppVer} OutputBaseFilename=mGBA-{#AppVer}-win32 -#elif IsRelease=='no'; +#elif CurrentReleaseVersion != AppVer; + #define IsRelease = 'no' AppVerName=mGBA (Development build) OutputBaseFilename=mGBA-setup-latest-win32 #endif From ae553bab3498a4d7538aa41fec610daed57f9df8 Mon Sep 17 00:00:00 2001 From: rootfather Date: Tue, 26 Dec 2017 12:34:00 +0100 Subject: [PATCH 06/11] Win32: Add German README file to the installer script --- tools/windows/mgba-setup-win32.iss | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/windows/mgba-setup-win32.iss b/tools/windows/mgba-setup-win32.iss index c00ef0131..593dec987 100644 --- a/tools/windows/mgba-setup-win32.iss +++ b/tools/windows/mgba-setup-win32.iss @@ -76,7 +76,8 @@ Source: "CHANGES.txt"; DestDir: "{app}\"; Flags: ignoreversion Source: "LICENSE.txt"; DestDir: "{app}\"; Flags: ignoreversion Source: "mGBA.exe"; DestDir: "{app}\"; Flags: ignoreversion Source: "nointro.dat"; DestDir: "{app}\"; Flags: ignoreversion -Source: "README.html"; DestDir: "{app}\"; Flags: ignoreversion +Source: "README.html"; DestDir: "{app}\"; Flags: ignoreversion +Source: "README_DE.html"; DestDir: "{app}\"; DestName: "LIESMICH.html"; Flags: ignoreversion isreadme; Languages: german Source: "shaders\agb001.shader\agb001.fs"; DestDir: "{app}\shaders\agb001.shader\"; Flags: ignoreversion Source: "shaders\agb001.shader\manifest.ini"; DestDir: "{app}\shaders\agb001.shader\"; Flags: ignoreversion Source: "shaders\ags001.shader\ags001-light.fs"; DestDir: "{app}\shaders\ags001.shader\"; Flags: ignoreversion @@ -128,7 +129,7 @@ Filename: "{app}\mGBA.exe"; Description: "{cm:LaunchProgram,mGBA}"; Flags: nowai Filename: "{app}\README.html"; Description: "View README"; Flags: nowait postinstall skipifsilent unchecked; Languages: english Filename: "{app}\README.html"; Description: "View README"; Flags: nowait postinstall skipifsilent unchecked; Languages: italian Filename: "{app}\README.html"; Description: "View README"; Flags: nowait postinstall skipifsilent unchecked; Languages: spanish -Filename: "{app}\README.html"; Description: "README anzeigen"; Flags: nowait postinstall skipifsilent unchecked; Languages: german +Filename: "{app}\README_DE.html"; Description: "README anzeigen"; Flags: nowait postinstall skipifsilent unchecked; Languages: german Filename: "{app}\CHANGES.txt"; Description: "View Changelog"; Flags: nowait postinstall skipifsilent unchecked; Languages: english Filename: "{app}\CHANGES.txt"; Description: "View Changelog"; Flags: nowait postinstall skipifsilent unchecked; Languages: italian Filename: "{app}\CHANGES.txt"; Description: "View Changelog"; Flags: nowait postinstall skipifsilent unchecked; Languages: spanish From a81259f94b1b6a12b855d13442eb3503ac0920d4 Mon Sep 17 00:00:00 2001 From: rootfather Date: Tue, 26 Dec 2017 12:37:14 +0100 Subject: [PATCH 07/11] Win32: Fix entries for the README/documentation files --- tools/windows/mgba-setup-win32.iss | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/tools/windows/mgba-setup-win32.iss b/tools/windows/mgba-setup-win32.iss index 593dec987..ba2fab830 100644 --- a/tools/windows/mgba-setup-win32.iss +++ b/tools/windows/mgba-setup-win32.iss @@ -72,11 +72,11 @@ Name: "gbafileassoc"; Description: "{cm:AssocFileExtension,mGBA,Game Boy Advance [Files] Source: "mGBA.exe"; DestDir: "{app}"; Flags: ignoreversion -Source: "CHANGES.txt"; DestDir: "{app}\"; Flags: ignoreversion +Source: "CHANGES.txt"; DestDir: "{app}\"; Flags: ignoreversion isreadme Source: "LICENSE.txt"; DestDir: "{app}\"; Flags: ignoreversion Source: "mGBA.exe"; DestDir: "{app}\"; Flags: ignoreversion Source: "nointro.dat"; DestDir: "{app}\"; Flags: ignoreversion -Source: "README.html"; DestDir: "{app}\"; Flags: ignoreversion +Source: "README.html"; DestDir: "{app}\"; Flags: ignoreversion isreadme; Languages: english italian spanish Source: "README_DE.html"; DestDir: "{app}\"; DestName: "LIESMICH.html"; Flags: ignoreversion isreadme; Languages: german Source: "shaders\agb001.shader\agb001.fs"; DestDir: "{app}\shaders\agb001.shader\"; Flags: ignoreversion Source: "shaders\agb001.shader\manifest.ini"; DestDir: "{app}\shaders\agb001.shader\"; Flags: ignoreversion @@ -125,15 +125,7 @@ Name: "{commonstartmenu}\mGBA"; Filename: "{app}\mGBA.exe" Name: "{commondesktop}\mGBA"; Filename: "{app}\mGBA.exe"; Tasks: desktopicon [Run] -Filename: "{app}\mGBA.exe"; Description: "{cm:LaunchProgram,mGBA}"; Flags: nowait postinstall skipifsilent -Filename: "{app}\README.html"; Description: "View README"; Flags: nowait postinstall skipifsilent unchecked; Languages: english -Filename: "{app}\README.html"; Description: "View README"; Flags: nowait postinstall skipifsilent unchecked; Languages: italian -Filename: "{app}\README.html"; Description: "View README"; Flags: nowait postinstall skipifsilent unchecked; Languages: spanish -Filename: "{app}\README_DE.html"; Description: "README anzeigen"; Flags: nowait postinstall skipifsilent unchecked; Languages: german -Filename: "{app}\CHANGES.txt"; Description: "View Changelog"; Flags: nowait postinstall skipifsilent unchecked; Languages: english -Filename: "{app}\CHANGES.txt"; Description: "View Changelog"; Flags: nowait postinstall skipifsilent unchecked; Languages: italian -Filename: "{app}\CHANGES.txt"; Description: "View Changelog"; Flags: nowait postinstall skipifsilent unchecked; Languages: spanish -Filename: "{app}\CHANGES.txt"; Description: "Changelog anzeigen"; Flags: nowait postinstall skipifsilent unchecked; Languages: german +Filename: "{app}\mGBA.exe"; Description: "{cm:LaunchProgram,mGBA}"; Flags: nowait postinstall skipifsilent [Dirs] Name: "{app}\shaders\" From 2a60cc9951bfd1373e533dded395a2d17b629449 Mon Sep 17 00:00:00 2001 From: Lothar Serra Mari Date: Thu, 26 Apr 2018 08:15:53 +0200 Subject: [PATCH 08/11] Win32: Increase version number for the inno installer to 0.6.3 --- tools/windows/mgba-setup-win32.iss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/windows/mgba-setup-win32.iss b/tools/windows/mgba-setup-win32.iss index ba2fab830..88d9054c3 100644 --- a/tools/windows/mgba-setup-win32.iss +++ b/tools/windows/mgba-setup-win32.iss @@ -2,7 +2,7 @@ ;\tools\windows\ to the directory that contains the win32 distribution files! ;Set CurrentReleaseVersion to the number of the latest stable mGBA build. -#define CurrentReleaseVersion = '0.6.1' +#define CurrentReleaseVersion = '0.6.3' #define VerMajor #define VerMinor From cf1a2b817e853949c2929d3b601d17f5ac674484 Mon Sep 17 00:00:00 2001 From: Lothar Serra Mari Date: Thu, 26 Apr 2018 08:19:47 +0200 Subject: [PATCH 09/11] Win32: Add French as language option in the inno installer --- tools/windows/mgba-setup-win32.iss | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/windows/mgba-setup-win32.iss b/tools/windows/mgba-setup-win32.iss index 88d9054c3..43d3dbb20 100644 --- a/tools/windows/mgba-setup-win32.iss +++ b/tools/windows/mgba-setup-win32.iss @@ -60,6 +60,7 @@ VersionInfoProductTextVersion={#AppVer} [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" +Name: "french"; MessagesFile: "compiler:Languages\French.isl" Name: "german"; MessagesFile: "compiler:Languages\German.isl" Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl" Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl" @@ -147,6 +148,7 @@ Name: "{app}\third-party\" [CustomMessages] english.FileAssoc=Register file associations +french.FileAssoc=Register file associations italian.FileAssoc=Register file associations spanish.FileAssoc=Register file associations german.FileAssoc=Dateierweiterungen registrieren @@ -170,6 +172,7 @@ procedure InitializeWizard(); if ExpandConstant('{#IsRelease}') = 'no' then begin if ExpandConstant('{language}') = 'english' then noReleaseWarning := 'You are about to install a development build of mGBA.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; + if ExpandConstant('{language}') = 'french' then noReleaseWarning := 'You are about to install a development build of mGBA.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; if ExpandConstant('{language}') = 'italian' then noReleaseWarning := 'You are about to install a development build of mGBA.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; if ExpandConstant('{language}') = 'spanish' then noReleaseWarning := 'You are about to install a development build of mGBA.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; if ExpandConstant('{language}') = 'german' then noReleaseWarning := 'Sie möchten eine Entwicklerversion von mGBA installieren.' + #13#10#13#10 + 'Entwicklerversionen können bislang noch nicht endeckte Fehler beinhalten. Bitte melden Sie alle Fehler, die Sie finden können, auf der GitHub-Projektseite.'; From 3e957c7b9183212f9c7690b3f0076de2b2686065 Mon Sep 17 00:00:00 2001 From: Lothar Serra Mari Date: Sat, 1 Sep 2018 13:42:17 +0200 Subject: [PATCH 10/11] Win32: Let Inno setup parse the source directory recursively --- tools/windows/mgba-setup-win32.iss | 69 +++--------------------------- 1 file changed, 7 insertions(+), 62 deletions(-) diff --git a/tools/windows/mgba-setup-win32.iss b/tools/windows/mgba-setup-win32.iss index 43d3dbb20..902b1efc9 100644 --- a/tools/windows/mgba-setup-win32.iss +++ b/tools/windows/mgba-setup-win32.iss @@ -36,7 +36,7 @@ AlwaysShowDirOnReadyPage=True UsePreviousSetupType=True UsePreviousTasks=True AlwaysShowGroupOnReadyPage=True -LicenseFile=LICENSE.txt +LicenseFile=LICENSE #if CurrentReleaseVersion == AppVer; #define IsRelease = 'yes' AppVerName=mGBA {#AppVer} @@ -49,7 +49,7 @@ LicenseFile=LICENSE.txt UsePreviousLanguage=False DisableWelcomePage=False VersionInfoDescription=mGBA is an open-source Game Boy Advance emulator -VersionInfoCopyright=© 2013–2017 Jeffrey Pfau +VersionInfoCopyright=© 2013–2018 Jeffrey Pfau VersionInfoProductName=mGBA VersionInfoVersion={#AppVer} Compression=lzma2/ultra64 @@ -73,53 +73,13 @@ Name: "gbafileassoc"; Description: "{cm:AssocFileExtension,mGBA,Game Boy Advance [Files] Source: "mGBA.exe"; DestDir: "{app}"; Flags: ignoreversion -Source: "CHANGES.txt"; DestDir: "{app}\"; Flags: ignoreversion isreadme -Source: "LICENSE.txt"; DestDir: "{app}\"; Flags: ignoreversion -Source: "mGBA.exe"; DestDir: "{app}\"; Flags: ignoreversion +Source: "CHANGES"; DestDir: "{app}\"; Flags: ignoreversion isreadme +Source: "LICENSE"; DestDir: "{app}\"; Flags: ignoreversion Source: "nointro.dat"; DestDir: "{app}\"; Flags: ignoreversion Source: "README.html"; DestDir: "{app}\"; Flags: ignoreversion isreadme; Languages: english italian spanish Source: "README_DE.html"; DestDir: "{app}\"; DestName: "LIESMICH.html"; Flags: ignoreversion isreadme; Languages: german -Source: "shaders\agb001.shader\agb001.fs"; DestDir: "{app}\shaders\agb001.shader\"; Flags: ignoreversion -Source: "shaders\agb001.shader\manifest.ini"; DestDir: "{app}\shaders\agb001.shader\"; Flags: ignoreversion -Source: "shaders\ags001.shader\ags001-light.fs"; DestDir: "{app}\shaders\ags001.shader\"; Flags: ignoreversion -Source: "shaders\ags001.shader\ags001.fs"; DestDir: "{app}\shaders\ags001.shader\"; Flags: ignoreversion -Source: "shaders\ags001.shader\manifest.ini"; DestDir: "{app}\shaders\ags001.shader\"; Flags: ignoreversion -Source: "shaders\fish.shader\fish.fs"; DestDir: "{app}\shaders\fish.shader\"; Flags: ignoreversion -Source: "shaders\fish.shader\manifest.ini"; DestDir: "{app}\shaders\fish.shader\"; Flags: ignoreversion -Source: "shaders\gba-color.shader\gba-color.fs"; DestDir: "{app}\shaders\gba-color.shader\"; Flags: ignoreversion -Source: "shaders\gba-color.shader\manifest.ini"; DestDir: "{app}\shaders\gba-color.shader\"; Flags: ignoreversion -Source: "shaders\lcd.shader\lcd.fs"; DestDir: "{app}\shaders\lcd.shader\"; Flags: ignoreversion -Source: "shaders\lcd.shader\manifest.ini"; DestDir: "{app}\shaders\lcd.shader\"; Flags: ignoreversion -Source: "shaders\motion_blur.shader\manifest.ini"; DestDir: "{app}\shaders\motion_blur.shader\"; Flags: ignoreversion -Source: "shaders\motion_blur.shader\motion_blur.fs"; DestDir: "{app}\shaders\motion_blur.shader\"; Flags: ignoreversion -Source: "shaders\pixelate.shader\manifest.ini"; DestDir: "{app}\shaders\pixelate.shader\"; Flags: ignoreversion -Source: "shaders\scanlines.shader\manifest.ini"; DestDir: "{app}\shaders\scanlines.shader\"; Flags: ignoreversion -Source: "shaders\scanlines.shader\scanlines.fs"; DestDir: "{app}\shaders\scanlines.shader\"; Flags: ignoreversion -Source: "shaders\soften.shader\manifest.ini"; DestDir: "{app}\shaders\soften.shader\"; Flags: ignoreversion -Source: "shaders\soften.shader\soften.fs"; DestDir: "{app}\shaders\soften.shader\"; Flags: ignoreversion -Source: "shaders\vba_pixelate.shader\manifest.ini"; DestDir: "{app}\shaders\vba_pixelate.shader\"; Flags: ignoreversion -Source: "shaders\vba_pixelate.shader\vba_pixelate.fs"; DestDir: "{app}\shaders\vba_pixelate.shader\"; Flags: ignoreversion -Source: "shaders\vignette.shader\manifest.ini"; DestDir: "{app}\shaders\vignette.shader\"; Flags: ignoreversion -Source: "shaders\vignette.shader\vignette.fs"; DestDir: "{app}\shaders\vignette.shader\"; Flags: ignoreversion -Source: "shaders\wiiu.shader\manifest.ini"; DestDir: "{app}\shaders\wiiu.shader\"; Flags: ignoreversion -Source: "shaders\wiiu.shader\wiiu.fs"; DestDir: "{app}\shaders\wiiu.shader\"; Flags: ignoreversion -Source: "shaders\xbr-lv2.shader\manifest.ini"; DestDir: "{app}\shaders\xbr-lv2.shader\"; Flags: ignoreversion -Source: "shaders\xbr-lv2.shader\xbr.fs"; DestDir: "{app}\shaders\xbr-lv2.shader\"; Flags: ignoreversion -Source: "shaders\xbr-lv2.shader\xbr.vs"; DestDir: "{app}\shaders\xbr-lv2.shader\"; Flags: ignoreversion -Source: "shaders\xbr-lv3.shader\manifest.ini"; DestDir: "{app}\shaders\xbr-lv3.shader\"; Flags: ignoreversion -Source: "shaders\xbr-lv3.shader\xbr.fs"; DestDir: "{app}\shaders\xbr-lv3.shader\"; Flags: ignoreversion -Source: "shaders\xbr-lv3.shader\xbr.vs"; DestDir: "{app}\shaders\xbr-lv3.shader\"; Flags: ignoreversion -Source: "third-party\LICENSE.blip-buf"; DestDir: "{app}\third-party\"; Flags: ignoreversion -Source: "third-party\LICENSE.ffmpeg"; DestDir: "{app}\third-party\"; Flags: ignoreversion -Source: "third-party\LICENSE.imagemagick"; DestDir: "{app}\third-party\"; Flags: ignoreversion -Source: "third-party\LICENSE.inih"; DestDir: "{app}\third-party\"; Flags: ignoreversion -Source: "third-party\LICENSE.lame"; DestDir: "{app}\third-party\"; Flags: ignoreversion -Source: "third-party\LICENSE.libvpx"; DestDir: "{app}\third-party\"; Flags: ignoreversion -Source: "third-party\LICENSE.opus"; DestDir: "{app}\third-party\"; Flags: ignoreversion -Source: "third-party\LICENSE.qt5"; DestDir: "{app}\third-party\"; Flags: ignoreversion -Source: "third-party\LICENSE.sdl2"; DestDir: "{app}\third-party\"; Flags: ignoreversion -Source: "third-party\LICENSE.x264"; DestDir: "{app}\third-party\"; Flags: ignoreversion -Source: "third-party\LICENSE.xvid"; DestDir: "{app}\third-party\"; Flags: ignoreversion +Source: "shaders\*"; DestDir: "{app}\shaders\"; Flags: ignoreversion recursesubdirs +Source: "licenses\*"; DestDir: "{app}\licenses\"; Flags: ignoreversion recursesubdirs [Icons] Name: "{commonstartmenu}\mGBA"; Filename: "{app}\mGBA.exe" @@ -129,22 +89,7 @@ Name: "{commondesktop}\mGBA"; Filename: "{app}\mGBA.exe"; Tasks: desktopicon Filename: "{app}\mGBA.exe"; Description: "{cm:LaunchProgram,mGBA}"; Flags: nowait postinstall skipifsilent [Dirs] -Name: "{app}\shaders\" -Name: "{app}\shaders\agb001.shader\" -Name: "{app}\shaders\ags001.shader\" -Name: "{app}\shaders\fish.shader\" -Name: "{app}\shaders\gba-color.shader\" -Name: "{app}\shaders\lcd.shader\" -Name: "{app}\shaders\motion_blur.shader\" -Name: "{app}\shaders\pixelate.shader\" -Name: "{app}\shaders\scanlines.shader\" -Name: "{app}\shaders\soften.shader\" -Name: "{app}\shaders\vba_pixelate.shader\" -Name: "{app}\shaders\vignette.shader\" -Name: "{app}\shaders\wiiu.shader\" -Name: "{app}\shaders\xbr-lv2.shader\" -Name: "{app}\shaders\xbr-lv3.shader\" -Name: "{app}\third-party\" +Name: "{app}" [CustomMessages] english.FileAssoc=Register file associations From c7e615a047e3c9b550ce9032e310379e9136fd30 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Wed, 3 Oct 2018 12:50:53 -0700 Subject: [PATCH 11/11] Windows: Add Inno Setup script --- CMakeLists.txt | 52 ++++++- src/platform/qt/CMakeLists.txt | 4 + .../platform/windows/setup/setup.ico | Bin src/platform/windows/setup/setup.iss.in | 140 ++++++++++++++++++ .../platform/windows/setup/wizard-image.bmp | Bin tools/windows/mgba-setup-win32.iss | 127 ---------------- 6 files changed, 191 insertions(+), 132 deletions(-) rename tools/windows/mgba-setupiconfile.ico => src/platform/windows/setup/setup.ico (100%) create mode 100644 src/platform/windows/setup/setup.iss.in rename tools/windows/mgba-wizardimagefile.bmp => src/platform/windows/setup/wizard-image.bmp (100%) delete mode 100644 tools/windows/mgba-setup-win32.iss diff --git a/CMakeLists.txt b/CMakeLists.txt index b2daddb35..82150410f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1003,6 +1003,26 @@ endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/core/flags.h.in ${CMAKE_CURRENT_BINARY_DIR}/flags.h) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/flags.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mgba COMPONENT lib${BINARY_NAME}) +if(WIN32) + set(BIN_DIR ".\\") + string(REGEX REPLACE "[^-A-Za-z0-9_.]" "-" CLEAN_VERSION_STRING "${VERSION_STRING}") + file(RELATIVE_PATH SETUP_DIR_SLASH "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/src/platform/windows/setup") + file(RELATIVE_PATH RES_DIR_SLASH "${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/res") + string(REPLACE "/" "\\" SETUP_DIR "${SETUP_DIR_SLASH}") + string(REPLACE "/" "\\" RES_DIR "${RES_DIR_SLASH}") + if(CMAKE_SYSTEM_PROCESSOR MATCHES ".*64$") + set(WIN_BITS 64) + else() + set(WIN_BITS 32) + endif() + if(GIT_TAG) + set(IS_RELEASE 1) + else() + set(IS_RELEASE 0) + endif() + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/platform/windows/setup/setup.iss.in" ${CMAKE_CURRENT_BINARY_DIR}/setup.iss) +endif() + # Packaging install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/licenses DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT ${BINARY_NAME}) if(EXTRA_LICENSES) @@ -1025,6 +1045,25 @@ else() add_custom_target(CHANGES ALL DEPENDS CHANGES.txt) add_custom_target(LICENSE ALL DEPENDS LICENSE.txt) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CHANGES.txt ${CMAKE_CURRENT_BINARY_DIR}/LICENSE.txt DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT ${BINARY_NAME}) + if(DISTBUILD AND WIN32) + set(INSTALLER "${PROJECT_NAME}-setup-${CLEAN_VERSION_STRING}-win${WIN_BITS}.exe") + if(CMAKE_CROSSCOMPILING) + find_program(WINE NAMES wine wine-stable wine-development) + find_file(ISCC ISCC.exe HINTS "$ENV{HOME}/.wine/drive_c/Program Files/") + add_custom_command(OUTPUT ${INSTALLER} + COMMAND "${WINE}" "${ISCC}" setup.iss /Q + DEPENDS ${BINARY_NAME}-qt ${BINARY_NAME}-sdl CHANGES LICENSE) + else() + find_program(ISCC NAMES ISSC ISSC.exe) + add_custom_command(OUTPUT ${INSTALLER} + COMMAND "${ISCC}" setup.iss /Q + DEPENDS ${BINARY_NAME}-qt ${BINARY_NAME}-sdl CHANGES LICENSE) + endif() + if(ISCC) + add_custom_target(installer ALL DEPENDS ${INSTALLER}) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${INSTALLER}" DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT installer) + endif() + endif() endif() if(MARKDOWN) @@ -1064,11 +1103,11 @@ if(DISTBUILD) install(FILES "$.dSYM" DESTINATION ${LIBDIR} COMPONENT lib${BINARY_NAME}-dbg) endif() endif() - if(WIN32 OR APPLE) + if(APPLE) set(CPACK_COMPONENTS_ALL ${BINARY_NAME} ${BINARY_NAME}-qt ${BINARY_NAME}-sdl ${BINARY_NAME}-qt-dbg ${BINARY_NAME}-sdl-dbg ${BINARY_NAME}-perf) - if(APPLE) - set(CPACK_COMPONENTS_GROUPING ALL_COMPONENTS_IN_ONE) - endif() + set(CPACK_COMPONENTS_GROUPING ALL_COMPONENTS_IN_ONE) + elseif(WIN32) + set(CPACK_COMPONENTS_ALL ${BINARY_NAME} ${BINARY_NAME}-qt ${BINARY_NAME}-sdl ${BINARY_NAME}-qt-dbg ${BINARY_NAME}-sdl-dbg ${BINARY_NAME}-perf installer) elseif(3DS) set(CPACK_COMPONENTS_ALL ${BINARY_NAME} ${BINARY_NAME}-dbg ${BINARY_NAME}-3ds ${BINARY_NAME}-perf) elseif(WII) @@ -1115,7 +1154,7 @@ if(SDL_FOUND) cpack_add_component(${BINARY_NAME}-sdl GROUP sdl) endif() -if(DISTBUILD AND CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") +if(DISTBUILD) cpack_add_component_group(debug PARENT_GROUP dev) if(BUILD_SHARED AND NOT IS_EMBEDDED) cpack_add_component(lib${BINARY_NAME}-dbg GROUP debug) @@ -1129,6 +1168,9 @@ if(DISTBUILD AND CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") if(SDL_FOUND) cpack_add_component(${BINARY_NAME}-sdl-dbg GROUP debug) endif() + if(WIN32) + cpack_add_component_group(installer PARENT_GROUP base) + endif() endif() cpack_add_component_group(test PARENT_GROUP dev) diff --git a/src/platform/qt/CMakeLists.txt b/src/platform/qt/CMakeLists.txt index 76e389c4b..33685bcc3 100644 --- a/src/platform/qt/CMakeLists.txt +++ b/src/platform/qt/CMakeLists.txt @@ -347,6 +347,10 @@ elseif(WIN32) find_program(BASH bash) install(CODE "execute_process(COMMAND \"${BASH}\" \"${CMAKE_SOURCE_DIR}/tools/deploy-win.sh\" \"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.exe\" \"\${CMAKE_INSTALL_PREFIX}\" \"\$ENV{PWD}\" WORKING_DIRECTORY \"${CMAKE_BINARY_DIR}\")" COMPONENT ${BINARY_NAME}-qt) endif() + if(DISTBUILD) + file(WRITE "portable.ini" "") + install(FILES "portable.ini" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${BINARY_NAME}-qt) + endif() endif() if(DISTBUILD AND CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") diff --git a/tools/windows/mgba-setupiconfile.ico b/src/platform/windows/setup/setup.ico similarity index 100% rename from tools/windows/mgba-setupiconfile.ico rename to src/platform/windows/setup/setup.ico diff --git a/src/platform/windows/setup/setup.iss.in b/src/platform/windows/setup/setup.iss.in new file mode 100644 index 000000000..c3771eadb --- /dev/null +++ b/src/platform/windows/setup/setup.iss.in @@ -0,0 +1,140 @@ +#define AppName "${PROJECT_NAME}" +#define AppName2 "${BINARY_NAME}" +#define VerMajor ${LIB_VERSION_MAJOR} +#define VerMinor ${LIB_VERSION_MINOR} +#define VerRev ${LIB_VERSION_PATCH} +#define VerBuild ${GIT_REV} +#define Release ${IS_RELEASE} +#define WinBits "${WIN_BITS}" +#define VersionString "${VERSION_STRING}" +#define CleanVersionString "${CLEAN_VERSION_STRING}" +#define SetupDir "${SETUP_DIR}" +#define BinDir "${BIN_DIR}" +#define ResDir "${RES_DIR}" + +#define FullVersion ParseVersion('{#AppName}.exe', VerMajor, VerMinor, VerRev, VerBuild) +#define AppVer Str(VerMajor) + "." + Str(VerMinor) + "." + Str(VerRev) + +[Setup] +SourceDir={#BinDir} +SetupIconFile={#SetupDir}\setup.ico +WizardImageFile={#SetupDir}\wizard-image.bmp + +AppName={#AppName} +AppVersion={#AppVer} +AppPublisher=Jeffrey Pfau +AppPublisherURL=https://mgba.io +AppSupportURL=https://mgba.io +AppUpdatesURL=https://mgba.io +AppReadmeFile={#BinDir}\README.html +OutputDir=.\ +DefaultDirName={pf}\{#AppName} +DefaultGroupName={#AppName} +AllowNoIcons=yes +DirExistsWarning=no +ChangesAssociations=True +AppendDefaultDirName=False +UninstallDisplayIcon={app}\{#AppName}.exe +MinVersion=0,6.0 +AlwaysShowDirOnReadyPage=True +UsePreviousSetupType=True +UsePreviousTasks=True +AlwaysShowGroupOnReadyPage=True +LicenseFile={#BinDir}\LICENSE.txt +#if Release + #define IsRelease = 'yes' + AppVerName={#AppName} {#AppVer} +#else + #define IsRelease = 'no' + AppVerName={#AppName} {#VersionString} (Development build) +#endif +#if '{#WinBits}' == '64' + ArchitecturesInstallIn64BitMode=x64 + ArchitecturesAllows=x64 +#endif +OutputBaseFilename={#AppName}-setup-{#CleanVersionString}-win{#WinBits} +UsePreviousLanguage=False +DisableWelcomePage=False +VersionInfoDescription={#AppName} is an open-source Game Boy Advance emulator +VersionInfoCopyright=© 2013–2018 Jeffrey Pfau +VersionInfoProductName={#AppName} +VersionInfoVersion={#AppVer} +Compression=lzma2/ultra64 +SolidCompression=True +VersionInfoTextVersion={#AppVer} +VersionInfoProductVersion={#AppVer} +VersionInfoProductTextVersion={#AppVer} + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" +Name: "french"; MessagesFile: "compiler:Languages\French.isl" +Name: "german"; MessagesFile: "compiler:Languages\German.isl" +Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl" +Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" +Name: "gbfileassoc"; Description: "{cm:AssocFileExtension,{#AppName},Game Boy}"; GroupDescription: "{cm:FileAssoc}" +Name: "gbcfileassoc"; Description: "{cm:AssocFileExtension,{#AppName},Game Boy Color}"; GroupDescription: "{cm:FileAssoc}" +Name: "sgbfileassoc"; Description: "{cm:AssocFileExtension,{#AppName},Super Game Boy}"; GroupDescription: "{cm:FileAssoc}" +Name: "gbafileassoc"; Description: "{cm:AssocFileExtension,{#AppName},Game Boy Advance}"; GroupDescription: "{cm:FileAssoc}" + +[Files] +Source: "{#BinDir}\qt\{#AppName}.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#BinDir}\sdl\{#AppName2}-sdl.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: "{#BinDir}\CHANGES.txt"; DestDir: "{app}\"; Flags: ignoreversion isreadme +Source: "{#BinDir}\LICENSE.txt"; DestDir: "{app}\"; Flags: ignoreversion +Source: "{#ResDir}\nointro.dat"; DestDir: "{app}\"; Flags: ignoreversion +Source: "{#BinDir}\README.html"; DestDir: "{app}\"; Flags: ignoreversion isreadme; Languages: english italian spanish +Source: "{#BinDir}\README_DE.html"; DestDir: "{app}\"; DestName: "LIESMICH.html"; Flags: ignoreversion isreadme; Languages: german +Source: "{#ResDir}\shaders\*"; DestDir: "{app}\shaders\"; Flags: ignoreversion recursesubdirs +Source: "{#ResDir}\licenses\*"; DestDir: "{app}\licenses\"; Flags: ignoreversion recursesubdirs + +[Icons] +Name: "{commonstartmenu}\{#AppName}"; Filename: "{app}\{#AppName}.exe" +Name: "{commondesktop}\{#AppName}"; Filename: "{app}\{#AppName}.exe"; Tasks: desktopicon + +[Run] +Filename: "{app}\{#AppName}.exe"; Description: "{cm:LaunchProgram,{#AppName}}"; Flags: nowait postinstall skipifsilent + +[Dirs] +Name: "{app}" + +[CustomMessages] +english.FileAssoc=Register file associations +french.FileAssoc=Register file associations +italian.FileAssoc=Register file associations +spanish.FileAssoc=Register file associations +german.FileAssoc=Dateierweiterungen registrieren + +[Registry] +Root: HKCR; Subkey: ".gb"; ValueType: string; ValueName: ""; ValueData: "Game Boy ROM"; Flags: uninsdeletevalue; Tasks: gbfileassoc +Root: HKCR; Subkey: ".gb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#AppName}.exe,0"; Tasks: gbfileassoc +Root: HKCR; Subkey: ".gb\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#AppName}.exe"" ""%1"""; Tasks: gbfileassoc +Root: HKCR; Subkey: ".gbc"; ValueType: string; ValueName: ""; ValueData: "Game Boy Color ROM"; Flags: uninsdeletevalue; Tasks: gbcfileassoc +Root: HKCR; Subkey: ".gbc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#AppName}.exe,0"; Tasks: gbcfileassoc +Root: HKCR; Subkey: ".gbc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#AppName}.exe"" ""%1"""; Tasks: gbcfileassoc +Root: HKCR; Subkey: ".sgb"; ValueType: string; ValueName: ""; ValueData: "Super Game Boy ROM"; Flags: uninsdeletevalue; Tasks: sgbfileassoc +Root: HKCR; Subkey: ".sgb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#AppName}.exe,0"; Tasks: sgbfileassoc +Root: HKCR; Subkey: ".sgb\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#AppName}.exe"" ""%1"""; Tasks: sgbfileassoc +Root: HKCR; Subkey: ".gba"; ValueType: string; ValueName: ""; ValueData: "Game Boy Advance ROM"; Flags: uninsdeletevalue; Tasks: gbafileassoc +Root: HKCR; Subkey: ".gba\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#AppName}.exe,0"; Tasks: gbafileassoc +Root: HKCR; Subkey: ".gba\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#AppName}.exe"" ""%1"""; Tasks: gbafileassoc + +[Code] +var + noReleaseWarning: String; + +procedure InitializeWizard(); + begin + if ExpandConstant('{#IsRelease}') = 'no' then + begin + if ExpandConstant('{language}') = 'english' then noReleaseWarning := 'You are about to install a development build of {#AppName}.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; + if ExpandConstant('{language}') = 'french' then noReleaseWarning := 'You are about to install a development build of {#AppName}.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; + if ExpandConstant('{language}') = 'italian' then noReleaseWarning := 'You are about to install a development build of {#AppName}.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; + if ExpandConstant('{language}') = 'spanish' then noReleaseWarning := 'You are about to install a development build of {#AppName}.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; + if ExpandConstant('{language}') = 'german' then noReleaseWarning := 'Sie möchten eine Entwicklerversion von {#AppName} installieren.' + #13#10#13#10 + 'Entwicklerversionen können bislang noch nicht endeckte Fehler beinhalten. Bitte melden Sie alle Fehler, die Sie finden können, auf der GitHub-Projektseite.'; + MsgBox(noReleaseWarning, mbInformation, MB_OK); + end; + end; +end. diff --git a/tools/windows/mgba-wizardimagefile.bmp b/src/platform/windows/setup/wizard-image.bmp similarity index 100% rename from tools/windows/mgba-wizardimagefile.bmp rename to src/platform/windows/setup/wizard-image.bmp diff --git a/tools/windows/mgba-setup-win32.iss b/tools/windows/mgba-setup-win32.iss deleted file mode 100644 index 902b1efc9..000000000 --- a/tools/windows/mgba-setup-win32.iss +++ /dev/null @@ -1,127 +0,0 @@ -;For automation purposes it is highly recommended to copy the files from -;\tools\windows\ to the directory that contains the win32 distribution files! - -;Set CurrentReleaseVersion to the number of the latest stable mGBA build. -#define CurrentReleaseVersion = '0.6.3' - -#define VerMajor -#define VerMinor -#define VerRev -#define VerBuild -#define FullVersion=ParseVersion('mGBA.exe', VerMajor, VerMinor, VerRev, VerBuild) -#define AppVer = Str(VerMajor) + "." + Str(VerMinor) + "." + Str(VerRev) - -[Setup] -SourceDir=.\ -SetupIconFile=mgba-setupiconfile.ico -WizardImageFile=mgba-wizardimagefile.bmp - -AppName=mGBA -AppVersion={#AppVer} -AppPublisher=Jeffrey Pfau -AppPublisherURL=https://mgba.io -AppSupportURL=https://mgba.io -AppUpdatesURL=https://mgba.io -AppReadmeFile=README.html -OutputDir=.\ -DefaultDirName={pf}\mGBA -DefaultGroupName=mGBA -AllowNoIcons=yes -DirExistsWarning=no -ChangesAssociations=True -AppendDefaultDirName=False -UninstallDisplayIcon={app}\mGBA.exe -MinVersion=0,6.0 -AlwaysShowDirOnReadyPage=True -UsePreviousSetupType=True -UsePreviousTasks=True -AlwaysShowGroupOnReadyPage=True -LicenseFile=LICENSE -#if CurrentReleaseVersion == AppVer; - #define IsRelease = 'yes' - AppVerName=mGBA {#AppVer} - OutputBaseFilename=mGBA-{#AppVer}-win32 -#elif CurrentReleaseVersion != AppVer; - #define IsRelease = 'no' - AppVerName=mGBA (Development build) - OutputBaseFilename=mGBA-setup-latest-win32 - #endif -UsePreviousLanguage=False -DisableWelcomePage=False -VersionInfoDescription=mGBA is an open-source Game Boy Advance emulator -VersionInfoCopyright=© 2013–2018 Jeffrey Pfau -VersionInfoProductName=mGBA -VersionInfoVersion={#AppVer} -Compression=lzma2/ultra64 -SolidCompression=True -VersionInfoTextVersion={#AppVer} -VersionInfoProductVersion={#AppVer} -VersionInfoProductTextVersion={#AppVer} - -[Languages] -Name: "english"; MessagesFile: "compiler:Default.isl" -Name: "french"; MessagesFile: "compiler:Languages\French.isl" -Name: "german"; MessagesFile: "compiler:Languages\German.isl" -Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl" -Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl" - -[Tasks] -Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}" -Name: "gbfileassoc"; Description: "{cm:AssocFileExtension,mGBA,Game Boy}"; GroupDescription: "{cm:FileAssoc}" -Name: "gbcfileassoc"; Description: "{cm:AssocFileExtension,mGBA,Game Boy Color}"; GroupDescription: "{cm:FileAssoc}" -Name: "gbafileassoc"; Description: "{cm:AssocFileExtension,mGBA,Game Boy Advance}"; GroupDescription: "{cm:FileAssoc}" - -[Files] -Source: "mGBA.exe"; DestDir: "{app}"; Flags: ignoreversion -Source: "CHANGES"; DestDir: "{app}\"; Flags: ignoreversion isreadme -Source: "LICENSE"; DestDir: "{app}\"; Flags: ignoreversion -Source: "nointro.dat"; DestDir: "{app}\"; Flags: ignoreversion -Source: "README.html"; DestDir: "{app}\"; Flags: ignoreversion isreadme; Languages: english italian spanish -Source: "README_DE.html"; DestDir: "{app}\"; DestName: "LIESMICH.html"; Flags: ignoreversion isreadme; Languages: german -Source: "shaders\*"; DestDir: "{app}\shaders\"; Flags: ignoreversion recursesubdirs -Source: "licenses\*"; DestDir: "{app}\licenses\"; Flags: ignoreversion recursesubdirs - -[Icons] -Name: "{commonstartmenu}\mGBA"; Filename: "{app}\mGBA.exe" -Name: "{commondesktop}\mGBA"; Filename: "{app}\mGBA.exe"; Tasks: desktopicon - -[Run] -Filename: "{app}\mGBA.exe"; Description: "{cm:LaunchProgram,mGBA}"; Flags: nowait postinstall skipifsilent - -[Dirs] -Name: "{app}" - -[CustomMessages] -english.FileAssoc=Register file associations -french.FileAssoc=Register file associations -italian.FileAssoc=Register file associations -spanish.FileAssoc=Register file associations -german.FileAssoc=Dateierweiterungen registrieren - -[Registry] -Root: HKCR; Subkey: ".gb"; ValueType: string; ValueName: ""; ValueData: "Game Boy ROM"; Flags: uninsdeletevalue; Tasks: gbfileassoc -Root: HKCR; Subkey: ".gb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mGBA.exe,0"; Tasks: gbfileassoc -Root: HKCR; Subkey: ".gb\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\mGBA.exe"" ""%1"""; Tasks: gbfileassoc -Root: HKCR; Subkey: ".gbc"; ValueType: string; ValueName: ""; ValueData: "Game Boy Color ROM"; Flags: uninsdeletevalue; Tasks: gbcfileassoc -Root: HKCR; Subkey: ".gbc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mGBA.exe,0"; Tasks: gbcfileassoc -Root: HKCR; Subkey: ".gbc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\mGBA.exe"" ""%1"""; Tasks: gbcfileassoc -Root: HKCR; Subkey: ".gba"; ValueType: string; ValueName: ""; ValueData: "Game Boy Advance ROM"; Flags: uninsdeletevalue; Tasks: gbafileassoc -Root: HKCR; Subkey: ".gba\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\mGBA.exe,0"; Tasks: gbafileassoc Root: HKCR; Subkey: ".gba\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\mGBA.exe"" ""%1"""; Tasks: gbafileassoc - -[Code] -var - noReleaseWarning: String; - -procedure InitializeWizard(); - begin - if ExpandConstant('{#IsRelease}') = 'no' then - begin - if ExpandConstant('{language}') = 'english' then noReleaseWarning := 'You are about to install a development build of mGBA.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; - if ExpandConstant('{language}') = 'french' then noReleaseWarning := 'You are about to install a development build of mGBA.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; - if ExpandConstant('{language}') = 'italian' then noReleaseWarning := 'You are about to install a development build of mGBA.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; - if ExpandConstant('{language}') = 'spanish' then noReleaseWarning := 'You are about to install a development build of mGBA.' + #13#10#13#10 + 'Development builds may contain bugs that are not yet discovered. Please report any issues you can find to the GitHub project page.'; - if ExpandConstant('{language}') = 'german' then noReleaseWarning := 'Sie möchten eine Entwicklerversion von mGBA installieren.' + #13#10#13#10 + 'Entwicklerversionen können bislang noch nicht endeckte Fehler beinhalten. Bitte melden Sie alle Fehler, die Sie finden können, auf der GitHub-Projektseite.'; - MsgBox(noReleaseWarning, mbInformation, MB_OK); - end; - end; -end. \ No newline at end of file