This fixes gamepad mappings being included in GLFW binaries that would
then never use them because they were for a different platform.
(cherry picked from commit 0c90e1a33f)
Inclusion of internal headers is already both centralized and follows
strict rules. Inclusion guards are both an unneccessary maintenance
burden and may hide inclusion order bugs.
This patch introduces a new backend that enables GLFW applications to
run on Wayland. For now, only output is supported (windowed and
fullscreen). Pointer cursor management, input devices, clipboard etc are
not supported yet.
There are some concepts that can not be supported, more specifically
glfwSetWindowPos, glfwGetWindowPos and glfwSetCursorPos, as they are not
supported by Wayland.
This patch also changes the time and joystick implementations used by the
X11 backend to be shared between the Wayland backend and the X11 backend.