Without this, on Linux and Linux alone, and only if SDL is builtin, the
definitions for some functions - notably, memset/memcpy - are taken from
SDL source.
This leaves them at the mercy of the compiler and may lead to the
optimal implementations of these functions not being selected. But the
main motivation for this is that it's action at a distance that is
incredibly surprising - linking in a gamepad support library should not
change the implementation of memset/memcpy!
Previously, libudev was ignored if SOWRAP_ENABLED was defined (it is defined by default) because otherwise it would crash CI builds due to a missing header, and dbus was always linked dynamically. This commit should fix this issue and make libudev usable again
Made possible by EIREXE, xsellier and the SDL team.
This commit includes statically linked SDL3 for Windows, Linux and macOS.
The vendored copy of SDL3 was setup to only build the required subsystems
for gamepad/joystick support, with some patches to be able to make it as
minimal as possible and reduce the impact on binary size and code size.
Co-authored-by: Álex Román Núñez <eirexe123@gmail.com>
Co-authored-by: Xavier Sellier <xsellier@gmail.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>