-
-
Notifications
You must be signed in to change notification settings - Fork 801
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Win32: Add Inno Setup script for building a Windows installer #941
Conversation
I'd like to fix the language issue for real before looking closer at this. |
Now that that's fixed you can remove the workaround 😀 |
82aa61e
to
d21742e
Compare
So one of the things that's holding me off from looking closer at this is that at some point I may start shipping stripped down builds with the extra features (e.g. GIF and video recording, scripting, etc; the ones most people don't use) as DLLs that can be optionally added. I'm not sure how I'm going to handle that yet though so I'm not sure if it makes sense to merge this yet. |
Yeah, maybe you should decide that first. But in general, I see no problem in including all the "Plugin DLLs" inside the installer package and make those plugins optional during the installation process - that's fairly easy to do with Inno. |
Hi endrift, is there anything I can do to move this forward and maybe can get this ready for an upcoming 0.7 release? |
I'll need to try it out first, which I keep forgetting to do. |
Friendly reminder... :P |
Before I forget: Is this updated for the new French translation? |
Ah, nope, I have to add the french translation. Update will follow ASAP. |
I should be more precise: The only thing what has to be done is to make French available during the installation process. For testing purposes, you can use the current code as-is. |
tools/windows/mgba-setup-win32.iss
Outdated
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this here twice?
;\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' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might make sense to make this a .in file that's processed by CMake so it can get the current version number from the version scripts--unless there's a way to run a command in the .iss folder to get the version from CMake.
tools/windows/mgba-setup-win32.iss
Outdated
UsePreviousLanguage=False | ||
DisableWelcomePage=False | ||
VersionInfoDescription=mGBA is an open-source Game Boy Advance emulator | ||
VersionInfoCopyright=� 2013�2017 Jeffrey Pfau |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tools/windows/mgba-setup-win32.iss
Outdated
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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any way to copy a folder wholesale? This looks cumbersome.
Can you please update this for the new CMake-generated file layout? |
Do you mean the file layout as it is present in the current nightly builds created by the buildbot? |
The current file layout is pretty much identical to what is created by just building it, so if we could get the installer to be built by a CMake-generated .iss file that would be pretty ideal. Previously there was stuff that the buildbot tossed in after building but I wanted to streamline things a bit. |
It seems that the last time I tried to do a wildcard entry for the build directory I just messed things up. I'll commit an improved version later today. Using this as a template, it should be easy to automate things using CMake. |
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.
I think we now have as much simplification of the script as possible. |
@endrift, do you consider this as ready for merging or is there something I should address in your opinion? |
The version info is still wrong. Apart from that I haven't looked into how I'd integrate it with CMake yet and if it's possible to use CMake to keep the version number in sync. |
Seems that I finally should find some time to look deeper into how the CMake stuff works... might complicate things a bit unfortunately. :( |
Yeah :( I may have time today to look into it to suggest changes for you. |
Would it be possible to make an option to have it install the "portable" version that doesn't make the file associations and creates an empty "portable.ini" file instead? Also .sgb should probably be added now. |
Yep, that's possible. I'll add .sgb to the list of the file associations. Do I need to fill any values into portable.ini or is it really enough to simply create the file without any content? |
Without content. |
This PR adds an Inno Setup script to build a Windows installer (fixes Bug 138).
Features
Attempt to work around Bug Unintended change of the language interface. #906 by setting the correct language value in qt.ini depending on the selected language during the installation process instead of relying on the language auto detection. Seems to work pretty well for me, haven't experienced an unintentional language change since then. This workaround will be removed as soon as the bug is fixed.Demo
As a small demo, here's an installer file for mGBA 0.6.1.
mGBA-0.6.1-win32.exe.zip