Dolphin currently fails to build when the Linux system building it includes headers/pkgconfigs for minizip-ng built in both minizip-ng mode and legacy compat mode (the minizip API).
This is because minizip-ng is checked for in cmake however the code is not actually compatible against minizip-ng built in non-legacy mode. Until that is rectified Dolphin should just check for a pkgconfig for minizip. If the system has a pkgconfig for minizip with a version >= 4 then the system package is minizip-ng built in compat mode which is exactly what we want.
This allows using the system libfmt on OpenBSD and NetBSD.
Unfortunately, the system libfmt is too old on OpenBSD at the moment,
and Dolphin doesn't currently compile on NetBSD for other reasons.
Due to an oversight in our CMakeLists, pkg-config would attempt to find *minizip* 3.0.0 (which doesn't exist) instead of *minizip-ng* 3.0.0, or at least it was on my Manjaro Linux machine. This has been fixed. The new submodule is using minizip-ng 3.0.4, the same version that was being used before.
NetBSD doesn't put packages in /usr/local like /CMakeLists.txt thought.
The `#ifdef __NetBSD__` around iconv was actually breaking compilation
on NetBSD when using the system libiconv (there's also a GNU iconv
package)
A C program included from C++ source broke on NetBSD specifically, work
around it.
This doesn't fix compilation on NetBSD, which is currently broken, but
is closer to correct.
Dolphin now relies on ENET_SOCKOPT_TTL which was merged upstream but not
released yet. This fix assumes that enet continues its current
versioning scheme.
Fixes us forgetting to add its include directories, which could result in linking to a dylib from MacPorts while using the system's header, and failing to link because they use different function names
Adds the rcheevos library from RetroAchievements to the Dolphin Externals as a submodule. Change was verified to import correctly and build both via Visual Studio and via cmake ninja.
This very much isn't a build configuration that we're going to ship,
but I want to be able to tell people that they can build it on their
own if they really want to see how terribly it performs :)
Just like before, you'll need to edit two lines in app/build.gradle to
define ENABLE_GENERIC=ON and actually enable armeabi-v7a if you want an
armeabi-v7a build. This commit just fixes some compilations errors that
crop up if you do so.