Try to initialize the GTest Git submodule from the CMake code if it has
not been.
If that fails, turn off `BUILD_TESTING`.
We do not want to require recursive clones or initializing submodules
for users by default.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Some Linux distributions use a hermetic build environment to build. This
resulted in issues with `FetchContent` attempting to download googletest
at configure time.
This fixes the issue by integrating googletest as a git submodule
instead of downloading it at configure time.
* [GB] Add support for per-game overrides
Alleyway is a buggy game that does not work properly when a Game Boy
Printer is connected. In order to work around this issue, this adds
upport for built-in per-software Game Boy overrides. In addition, this
renames various variables to make their meaning clearer.
* This only supports built-in overrides. External INI files are not
supported.
* Only the Game Boy Printer option is supported, this only takes effect
on game startup and the general configuration option is restored when
the game is unloaded.
* As a result, it is possible to override the per-game override by
manually setting the option while the game is running, this is working
as intended.
* Future refactors of the option handling will manage overrides better.
* Switch `gbPrinterEnabled` default to off.
Fixes#1368
When pressing Alt+Tab, the "Alt" and "Tab" keys were considered in the
"pressed" state until the user pressed them again because the window is
no longer receiving keyboard events. This resulted in some shortcuts no
longer working, since "Alt" was always in the pressed state. This
changes the keyboard tracking to be reset when the application loses
focus, fixing the issue.
This change also adds tests for the keyboard tracking.
Rename the Git submodule `dependencies` used for some dependent files
for Win32 builds to `win32-deps` and make the necessary adjustments to
the CMake code.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Update harfbuzz in the macOS builder from the ancient version to the
current release and switch it to using Meson.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
The Wii U VC emulator incorrectly allows for armv6 thumb instructions
(like LSRS). These cause an undefined instruction error on real hardware
but the Wii U VC emulator just ignores them. This change mimicks the Wii
U VC emulator behavior.
Use a file for the Windows code-signing certificate instead of
hardcoding it into the CMake code.
Update the developer manual with instructions on where to put the
Windows code-signing certificate and the file containing the password
for it.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Tracking whether or not the menus are opened is necessary on Windows since menus stop
the main loop. This is not necessary on other platforms. In particular, on Mac, we do
not get a `wxEVT_MENU_CLOSE` event when opening a dialog from a shortcut, resulting in
the menu status tracking being incorrect.
Fixes#1348
Calling `ExpandAll()` on the `wxTreeCtrl` would cause it to display outside of its
intended view, hiding other controls. Instead, this sets a minimum size for the tree
control, so the default window size is reasonable.
Fixes#1348
Link `FAudio.a` explicitly on MINGW toolchains, for some reason linking
`FAudio` with static preference no longer works.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Previously, the OPRI register was always set to be in CGB mode when not
using the CGB BIOS, resulting in graphics corruption when running DMG
software in CGB mode without using the CGB BIOS. This fixes the issue by
properly setting bit 1 of the OPRI register as expected.
This was broken in #1119.
Stop trying to use debug libs for `CMAKE_BUILD_TYPE=RelWithDebInfo`,
this also fixes the current link error with SFML.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Remove the cmake code that adds the pcre library because the wxWidgets
cmake code correctly includes it now, on both vcpkg and MSYS2.
Also fix up `wxWidgets_ROOT_DIR` and `wxWidgets_LIB_DIR` for debug
builds.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Set `VCPKG_HOST_TRIPLET` and `VCPKG_USE_HOST_TOOLS` when using an X64
host for an ARM64 cross build in order to use the host `pkgconf` and
possibly other tools.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Add information on unlocking the keychain for codesigning and setting up
credentials for notarization to the macOS binary section in the release
process section of the developer manual.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Make compiler symlinks in the macOS builder instead of prepending
`ccache` to the compiler in the CC/CXX environment variables.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Fix the URL a browser is launched with when the `Help -> Translations`
menu item is selected to point to the project page on Transifex.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Shortcuts were mistakenly written in `Keyboard/Keyboard` rather than in
the `Keyboard` section.
In addition, this properly fixes toggling checkable menu item options
via a shortcut.
Fixes#1334
Add the `EXCLUDE_FROM_ALL` keyword to the `FetchContent_Declare` call
for GoogleTest, so that gtest/gmock are not installed with the project.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Update the included WinSparkle dll to 0.8.1 and add support for using
the ARM64 WinSparkle dll as well.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Update the release steps in the developer manual to mention the
requirement for a GnuPG key, emphasize the editing the changelog step
and add instructions for putting `signtool.exe` in the `PATH` for the 32
bit Windows binary.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Do not try to install FAudio for the MINGW32 32 bit Windows MSYS2 target
in `installdeps`. We do not use it for the 32 bit build and there is no
package for it for MINGW32.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Update README.md and remove outdated information.
Update the Developer Manual and describe the current release process.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Update the cmake -DTAG_RELEASE script to work with recent cmake changes.
Change it to not automatically make the release commit and tag, instead
specifying in the instructions that the person making the release must
edit the CHANGELOG.md and then run the commands, given in the
instructions, to make the release commit and tag.
Signed-off-by: Rafael Kitover <rkitover@gmail.com>