From 45ff8d38a4dcc9b4c60c935a22e1d7059cfe8c21 Mon Sep 17 00:00:00 2001
From: Dominic Masters <dominic@domsplace.com>
Date: Thu, 19 Aug 2021 16:38:27 -0700
Subject: [PATCH] Working on improving the cross compiler

---
 CMakeLists.txt                        |  70 ++--
 config.h.in                           |  10 +-
 include/dawn/libs.h                   |  15 +-
 include/rg351/SDL2/_real_SDL_config.h | 451 ++++++++++++++++++++++++++
 modules/FindLibdrm.cmake              | 105 ------
 modules/Findgbm.cmake                 | 104 ------
 platform/sdl/sdl.c                    |   5 +-
 7 files changed, 500 insertions(+), 260 deletions(-)
 create mode 100644 include/rg351/SDL2/_real_SDL_config.h
 delete mode 100644 modules/FindLibdrm.cmake
 delete mode 100644 modules/Findgbm.cmake

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7fdb0b8c..2b4508c1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,27 +14,35 @@ include(FetchContent)
 #Vars
 set(DEPS_DIR "${PROJECT_BINARY_DIR}/_deps")
 
-
-set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/modules)
-
-# set(SDL2_DIR ${CMAKE_CURRENT_LIST_DIR}/lib/SDL2)
-
-################################## Settings ####################################
-# Platform Settings
+################################ Setting Degs ##################################
 set(SETTING_PLATFORM_GLFW 1)
 set(SETTING_PLATFORM_SDL 2)
-set(SETTING_PLATFORM_GBM 3)
-set(SETTING_PLATFORM SETTING_PLATFORM_GLFW)
-
-set(SETTING_USE_GLAD 1)
 
 # Game Settings
 set(SETTING_GAME_POKER 1)
 set(SETTING_GAME_DAWN 2)
-set(SETTING_GAME SETTING_GAME_POKER)
 
+set(SETTING_GAME SETTING_GAME_POKER)
 set(SETTING_GAME_NAME "DawnGame")
 
+################################## Targets #####################################
+set(SETTING_TARGET_WIN32 1)
+set(SETTING_TARGET_RG351 2)
+
+set(SETTING_TARGET SETTING_TARGET_RG351)
+
+# Win32
+if(${SETTING_TARGET} EQUAL ${SETTING_TARGET_WIN32})
+  set(SETTING_PLATFORM SETTING_PLATFORM_SDL)
+  set(SETTING_PLATFORM_USE_GLAD 1)
+endif()
+
+# RG351
+if(${SETTING_TARGET} EQUAL ${SETTING_TARGET_RG351})
+  set(SETTING_PLATFORM SETTING_PLATFORM_SDL)
+  set(SETTING_PLATFORM_USE_GLAD 1)
+endif()
+
 # Configuring
 configure_file(config.h.in config.h)
 
@@ -61,40 +69,36 @@ if(${SETTING_PLATFORM} EQUAL ${SETTING_PLATFORM_SDL})
   list(APPEND HEADER_FILES ${HDRS})
 endif()
 
-# GBM Sources
-if(${SETTING_PLATFORM} EQUAL ${SETTING_PLATFORM_GBM})
-  file(GLOB_RECURSE SRC ${CMAKE_SOURCE_DIR}/platform/gbm/*.c)
-  file(GLOB_RECURSE HDRS ${CMAKE_SOURCE_DIR}/platform/gbm/*.h)
-  list(APPEND SOURCE_FILES ${SRC})
-  list(APPEND HEADER_FILES ${HDRS})
-endif()
-
 file(COPY ${CMAKE_CURRENT_LIST_DIR}/assets DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
 
 ##################################### LIBS #####################################
 include_directories(${CMAKE_SOURCE_DIR}/lib/stb)
 include_directories(${CMAKE_SOURCE_DIR}/include)
-include_directories(${CMAKE_CURRENT_BINARY_DIR})
-include_directories(/usr/lib/aarch64-linux-gnu/)
 
+# RG351
+if(${SETTING_TARGET} EQUAL ${SETTING_TARGET_RG351})
+  include_directories(${CMAKE_SOURCE_DIR}/include/rg351)
+  include_directories(${CMAKE_SOURCE_DIR}/include/rg351/SDL2)
+endif()
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
 
 ################################## EXECUTABLE ##################################
 add_executable(${PROJECT_NAME} ${HEADER_FILES} ${SOURCE_FILES})
 
 ################################# STATIC LIBS ##################################
-
 # Math
 if(NOT WIN32)
   target_link_libraries(${PROJECT_NAME} m)
 endif()
 
 # GLAD
-if(${SETTING_USE_GLAD} EQUAL 1)
+if(${SETTING_PLATFORM_USE_GLAD} EQUAL 1)
   add_subdirectory(${CMAKE_SOURCE_DIR}/lib/glad)
   target_link_libraries(${PROJECT_NAME} glad)
 endif()
 
-# GLFW and GLAD
+# GLFW
 if(${SETTING_PLATFORM} EQUAL ${SETTING_PLATFORM_GLFW})
   if(NOT glfw3_FOUND)
     FetchContent_Declare(
@@ -114,16 +118,6 @@ if(${SETTING_PLATFORM} EQUAL ${SETTING_PLATFORM_SDL})
   target_link_libraries(${PROJECT_NAME} ${SDL2_LIBRARIES})
 endif()
 
-#GBM
-if(${SETTING_PLATFORM} EQUAL ${SETTING_PLATFORM_GBM})
-  find_package(Libdrm REQUIRED)
-  find_package(gbm REQUIRED)
-  target_link_libraries(${PROJECT_NAME} Libdrm::Libdrm)
-  target_link_libraries(${PROJECT_NAME} gbm::gbm)
-  target_link_libraries(${PROJECT_NAME} EGL GLESv2)
-endif()
-
-
 # CGLM
 if(NOT cglm_FOUND)
   FetchContent_Declare(
@@ -137,4 +131,8 @@ target_link_libraries(${PROJECT_NAME} cglm)
 
 # OpenGL
 find_package(OpenGL REQUIRED)
-target_link_libraries(${PROJECT_NAME} OpenGL::GL)
\ No newline at end of file
+# target_link_libraries(${PROJECT_NAME} OpenGL::GL)
+# include_directories(${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIRS})
+
+# CMake
+target_link_libraries(${PROJECT_NAME} ${CMAKE_DL_LIBS})
\ No newline at end of file
diff --git a/config.h.in b/config.h.in
index 8f9ee412..e875a3c9 100644
--- a/config.h.in
+++ b/config.h.in
@@ -5,13 +5,19 @@
 
 # pragma once
 
+// Target Settings
+#cmakedefine SETTING_TARGET_WIN32 @SETTING_TARGET_WIN32@
+#cmakedefine SETTING_TARGET_RG351 @SETTING_TARGET_RG351@
+
+#cmakedefine SETTING_TARGET @SETTING_TARGET@
+
 // Platform Settings
 #cmakedefine SETTING_PLATFORM_GLFW @SETTING_PLATFORM_GLFW@
 #cmakedefine SETTING_PLATFORM_SDL @SETTING_PLATFORM_SDL@
-#cmakedefine SETTING_PLATFORM_GBM @SETTING_PLATFORM_GBM@
+
 #cmakedefine SETTING_PLATFORM @SETTING_PLATFORM@
 
-#cmakedefine SETTING_USE_GLAD @SETTING_USE_GLAD@
+#cmakedefine SETTING_PLATFORM_USE_GLAD @SETTING_PLATFORM_USE_GLAD@
 
 // Game Settings
 #cmakedefine SETTING_GAME_POKER @SETTING_GAME_POKER@
diff --git a/include/dawn/libs.h b/include/dawn/libs.h
index 8a6b1401..c319dfed 100644
--- a/include/dawn/libs.h
+++ b/include/dawn/libs.h
@@ -11,26 +11,21 @@
 // Static Libs
 #include <cglm/cglm.h>
 
-#if SETTING_USE_GLAD == 1
+#if SETTING_PLATFORM_USE_GLAD == 1
   #include <glad/glad.h>
+#else
+  #include <GL/gl.h>
 #endif
 
 #if SETTING_PLATFORM == SETTING_PLATFORM_GLFW
   #include <GLFW/glfw3.h>
 #elif SETTING_PLATFORM == SETTING_PLATFORM_SDL
-  #include <SDL2/SDL.h>
-  #include <SDL2/SDL_opengl.h>
-  #include <SDL2/SDL_opengles2.h>
+  #include "SDL.h"
+  #include "SDL_opengl.h"
 #elif SETTING_PLATFORM == SETTING_PLATFORM_GBM
   #include <xf86drm.h>
   #include <xf86drmMode.h>
   #include <gbm.h>
-
-  #define GL_GLEXT_PROTOTYPES 1
-  #include <GLES2/gl2.h>
-  #include <GLES2/gl2ext.h>
-  #include <EGL/egl.h>
-  #include <EGL/eglext.h>
 #endif
 
 #include <stb_image.h>
diff --git a/include/rg351/SDL2/_real_SDL_config.h b/include/rg351/SDL2/_real_SDL_config.h
new file mode 100644
index 00000000..a4369890
--- /dev/null
+++ b/include/rg351/SDL2/_real_SDL_config.h
@@ -0,0 +1,451 @@
+/* include/SDL_config.h.  Generated from SDL_config.h.in by configure.  */
+/*
+  Simple DirectMedia Layer
+  Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+*/
+
+#ifndef SDL_config_h_
+#define SDL_config_h_
+
+/**
+ *  \file SDL_config.h.in
+ *
+ *  This is a set of defines to configure the SDL features
+ */
+
+/* General platform specific identifiers */
+#include "SDL_platform.h"
+
+/* Make sure that this isn't included by Visual C++ */
+#ifdef _MSC_VER
+#error You should run hg revert SDL_config.h
+#endif
+
+/* C language features */
+/* #undef const */
+/* #undef inline */
+/* #undef volatile */
+
+/* C datatypes */
+#ifdef __LP64__
+#define SIZEOF_VOIDP 8
+#else
+#define SIZEOF_VOIDP 4
+#endif
+#define HAVE_GCC_ATOMICS 1
+/* #undef HAVE_GCC_SYNC_LOCK_TEST_AND_SET */
+
+/* Comment this if you want to build without any C library requirements */
+#define HAVE_LIBC 1
+#if HAVE_LIBC
+
+/* Useful headers */
+#define STDC_HEADERS 1
+#define HAVE_ALLOCA_H 1
+#define HAVE_CTYPE_H 1
+#define HAVE_FLOAT_H 1
+#define HAVE_ICONV_H 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_LIMITS_H 1
+#define HAVE_MALLOC_H 1
+#define HAVE_MATH_H 1
+#define HAVE_MEMORY_H 1
+#define HAVE_SIGNAL_H 1
+#define HAVE_STDARG_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDIO_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRINGS_H 1
+#define HAVE_STRING_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_WCHAR_H 1
+/* #undef HAVE_PTHREAD_NP_H */
+/* #undef HAVE_LIBUNWIND_H */
+
+/* C library functions */
+#define HAVE_MALLOC 1
+#define HAVE_CALLOC 1
+#define HAVE_REALLOC 1
+#define HAVE_FREE 1
+#define HAVE_ALLOCA 1
+#ifndef __WIN32__ /* Don't use C runtime versions of these on Windows */
+#define HAVE_GETENV 1
+#define HAVE_SETENV 1
+#define HAVE_PUTENV 1
+#define HAVE_UNSETENV 1
+#endif
+#define HAVE_QSORT 1
+#define HAVE_ABS 1
+#define HAVE_BCOPY 1
+#define HAVE_MEMSET 1
+#define HAVE_MEMCPY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMCMP 1
+#define HAVE_WCSLEN 1
+/* #undef HAVE_WCSLCPY */
+/* #undef HAVE_WCSLCAT */
+#define HAVE_WCSDUP 1
+#define HAVE_WCSSTR 1
+#define HAVE_WCSCMP 1
+#define HAVE_WCSNCMP 1
+#define HAVE_WCSCASECMP 1
+/* #undef HAVE__WCSICMP */
+#define HAVE_WCSNCASECMP 1
+/* #undef HAVE__WCSNICMP */
+#define HAVE_STRLEN 1
+/* #undef HAVE_STRLCPY */
+/* #undef HAVE_STRLCAT */
+/* #undef HAVE__STRREV */
+/* #undef HAVE__STRUPR */
+/* #undef HAVE__STRLWR */
+/* #undef HAVE_INDEX */
+/* #undef HAVE_RINDEX */
+#define HAVE_STRCHR 1
+#define HAVE_STRRCHR 1
+#define HAVE_STRSTR 1
+#define HAVE_STRTOK_R 1
+/* #undef HAVE_STRTOK_S */
+/* #undef HAVE_ITOA */
+/* #undef HAVE__LTOA */
+/* #undef HAVE__UITOA */
+/* #undef HAVE__ULTOA */
+#define HAVE_STRTOL 1
+#define HAVE_STRTOUL 1
+/* #undef HAVE__I64TOA */
+/* #undef HAVE__UI64TOA */
+#define HAVE_STRTOLL 1
+#define HAVE_STRTOULL 1
+#define HAVE_STRTOD 1
+#define HAVE_ATOI 1
+#define HAVE_ATOF 1
+#define HAVE_STRCMP 1
+#define HAVE_STRNCMP 1
+/* #undef HAVE__STRICMP */
+#define HAVE_STRCASECMP 1
+/* #undef HAVE__STRNICMP */
+#define HAVE_STRNCASECMP 1
+/* #undef HAVE_SSCANF */
+#define HAVE_VSSCANF 1
+/* #undef HAVE_SNPRINTF */
+#define HAVE_VSNPRINTF 1
+#define HAVE_M_PI /**/
+#define HAVE_ACOS 1
+#define HAVE_ACOSF 1
+#define HAVE_ASIN 1
+#define HAVE_ASINF 1
+#define HAVE_ATAN 1
+#define HAVE_ATANF 1
+#define HAVE_ATAN2 1
+#define HAVE_ATAN2F 1
+#define HAVE_CEIL 1
+#define HAVE_CEILF 1
+#define HAVE_COPYSIGN 1
+#define HAVE_COPYSIGNF 1
+#define HAVE_COS 1
+#define HAVE_COSF 1
+#define HAVE_EXP 1
+#define HAVE_EXPF 1
+#define HAVE_FABS 1
+#define HAVE_FABSF 1
+#define HAVE_FLOOR 1
+#define HAVE_FLOORF 1
+#define HAVE_FMOD 1
+#define HAVE_FMODF 1
+#define HAVE_LOG 1
+#define HAVE_LOGF 1
+#define HAVE_LOG10 1
+#define HAVE_LOG10F 1
+#define HAVE_LROUND 1
+#define HAVE_LROUNDF 1
+#define HAVE_POW 1
+#define HAVE_POWF 1
+#define HAVE_ROUND 1
+#define HAVE_ROUNDF 1
+#define HAVE_SCALBN 1
+#define HAVE_SCALBNF 1
+#define HAVE_SIN 1
+#define HAVE_SINF 1
+#define HAVE_SQRT 1
+#define HAVE_SQRTF 1
+#define HAVE_TAN 1
+#define HAVE_TANF 1
+#define HAVE_TRUNC 1
+#define HAVE_TRUNCF 1
+#define HAVE_FOPEN64 1
+#define HAVE_FSEEKO 1
+#define HAVE_FSEEKO64 1
+#define HAVE_SIGACTION 1
+#define HAVE_SA_SIGACTION 1
+#define HAVE_SETJMP 1
+#define HAVE_NANOSLEEP 1
+#define HAVE_SYSCONF 1
+/* #undef HAVE_SYSCTLBYNAME */
+#define HAVE_CLOCK_GETTIME 1
+/* #undef HAVE_GETPAGESIZE */
+#define HAVE_MPROTECT 1
+#define HAVE_ICONV 1
+#define HAVE_PTHREAD_SETNAME_NP 1
+/* #undef HAVE_PTHREAD_SET_NAME_NP */
+#define HAVE_SEM_TIMEDWAIT 1
+#define HAVE_GETAUXVAL 1
+/* #undef HAVE_ELF_AUX_INFO */
+#define HAVE_POLL 1
+#define HAVE__EXIT 1
+
+#else
+#define HAVE_STDARG_H 1
+#define HAVE_STDDEF_H 1
+#define HAVE_STDINT_H 1
+#endif /* HAVE_LIBC */
+
+/* #undef HAVE_ALTIVEC_H */
+#define HAVE_DBUS_DBUS_H 1
+#define HAVE_FCITX 1
+#define HAVE_SYS_INOTIFY_H 1
+#define HAVE_INOTIFY_INIT 1
+#define HAVE_INOTIFY_INIT1 1
+#define HAVE_INOTIFY 1
+/* #undef HAVE_IBUS_IBUS_H */
+/* #undef HAVE_IMMINTRIN_H */
+#define HAVE_LIBUDEV_H 1
+/* #undef HAVE_LIBSAMPLERATE_H */
+
+/* #undef HAVE_DDRAW_H */
+/* #undef HAVE_DINPUT_H */
+/* #undef HAVE_DSOUND_H */
+/* #undef HAVE_DXGI_H */
+/* #undef HAVE_XINPUT_H */
+
+/* #undef HAVE_MMDEVICEAPI_H */
+/* #undef HAVE_AUDIOCLIENT_H */
+/* #undef HAVE_SENSORSAPI_H */
+
+/* #undef HAVE_XINPUT_GAMEPAD_EX */
+/* #undef HAVE_XINPUT_STATE_EX */
+
+/* SDL internal assertion support */
+/* #undef SDL_DEFAULT_ASSERT_LEVEL */
+
+/* Allow disabling of core subsystems */
+/* #undef SDL_ATOMIC_DISABLED */
+/* #undef SDL_AUDIO_DISABLED */
+/* #undef SDL_CPUINFO_DISABLED */
+/* #undef SDL_EVENTS_DISABLED */
+/* #undef SDL_FILE_DISABLED */
+/* #undef SDL_JOYSTICK_DISABLED */
+/* #undef SDL_HAPTIC_DISABLED */
+/* #undef SDL_SENSOR_DISABLED */
+/* #undef SDL_LOADSO_DISABLED */
+/* #undef SDL_RENDER_DISABLED */
+/* #undef SDL_THREADS_DISABLED */
+/* #undef SDL_TIMERS_DISABLED */
+/* #undef SDL_VIDEO_DISABLED */
+/* #undef SDL_POWER_DISABLED */
+/* #undef SDL_FILESYSTEM_DISABLED */
+
+/* Enable various audio drivers */
+#define SDL_AUDIO_DRIVER_ALSA 1
+#define SDL_AUDIO_DRIVER_ALSA_DYNAMIC "libasound.so.2"
+/* #undef SDL_AUDIO_DRIVER_ANDROID */
+/* #undef SDL_AUDIO_DRIVER_ARTS */
+/* #undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC */
+/* #undef SDL_AUDIO_DRIVER_COREAUDIO */
+#define SDL_AUDIO_DRIVER_DISK 1
+/* #undef SDL_AUDIO_DRIVER_DSOUND */
+#define SDL_AUDIO_DRIVER_DUMMY 1
+/* #undef SDL_AUDIO_DRIVER_EMSCRIPTEN */
+/* #undef SDL_AUDIO_DRIVER_ESD */
+/* #undef SDL_AUDIO_DRIVER_ESD_DYNAMIC */
+/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND */
+/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC */
+/* #undef SDL_AUDIO_DRIVER_HAIKU */
+/* #undef SDL_AUDIO_DRIVER_JACK */
+/* #undef SDL_AUDIO_DRIVER_JACK_DYNAMIC */
+/* #undef SDL_AUDIO_DRIVER_NACL */
+/* #undef SDL_AUDIO_DRIVER_NAS */
+/* #undef SDL_AUDIO_DRIVER_NAS_DYNAMIC */
+/* #undef SDL_AUDIO_DRIVER_NETBSD */
+#define SDL_AUDIO_DRIVER_OSS 1
+/* #undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H */
+/* #undef SDL_AUDIO_DRIVER_PAUDIO */
+/* #undef SDL_AUDIO_DRIVER_PULSEAUDIO */
+/* #undef SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC */
+/* #undef SDL_AUDIO_DRIVER_QSA */
+/* #undef SDL_AUDIO_DRIVER_SNDIO */
+/* #undef SDL_AUDIO_DRIVER_SNDIO_DYNAMIC */
+/* #undef SDL_AUDIO_DRIVER_SUNAUDIO */
+/* #undef SDL_AUDIO_DRIVER_WASAPI */
+/* #undef SDL_AUDIO_DRIVER_WINMM */
+
+/* Enable various input drivers */
+#define SDL_INPUT_LINUXEV 1
+/* #undef SDL_INPUT_FBSDKBIO */
+#define SDL_INPUT_LINUXKD 1
+/* #undef SDL_JOYSTICK_HAIKU */
+/* #undef SDL_JOYSTICK_DINPUT */
+/* #undef SDL_JOYSTICK_XINPUT */
+/* #undef SDL_JOYSTICK_DUMMY */
+/* #undef SDL_JOYSTICK_IOKIT */
+/* #undef SDL_JOYSTICK_MFI */
+#define SDL_JOYSTICK_LINUX 1
+/* #undef SDL_JOYSTICK_ANDROID */
+/* #undef SDL_JOYSTICK_WINMM */
+/* #undef SDL_JOYSTICK_USBHID */
+/* #undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H */
+#define SDL_JOYSTICK_HIDAPI 1
+/* #undef SDL_JOYSTICK_RAWINPUT */
+/* #undef SDL_JOYSTICK_EMSCRIPTEN */
+#define SDL_JOYSTICK_VIRTUAL 1
+/* #undef SDL_HAPTIC_DUMMY */
+/* #undef SDL_HAPTIC_ANDROID */
+#define SDL_HAPTIC_LINUX 1
+/* #undef SDL_HAPTIC_IOKIT */
+/* #undef SDL_HAPTIC_DINPUT */
+/* #undef SDL_HAPTIC_XINPUT */
+
+/* Enable various sensor drivers */
+/* #undef SDL_SENSOR_ANDROID */
+/* #undef SDL_SENSOR_COREMOTION */
+/* #undef SDL_SENSOR_WINDOWS */
+#define SDL_SENSOR_DUMMY 1
+
+/* Enable various shared object loading systems */
+#define SDL_LOADSO_DLOPEN 1
+/* #undef SDL_LOADSO_DUMMY */
+/* #undef SDL_LOADSO_LDG */
+/* #undef SDL_LOADSO_WINDOWS */
+
+/* Enable various threading systems */
+#define SDL_THREAD_PTHREAD 1
+#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1
+/* #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP */
+/* #undef SDL_THREAD_WINDOWS */
+
+/* Enable various timer systems */
+/* #undef SDL_TIMER_HAIKU */
+/* #undef SDL_TIMER_DUMMY */
+#define SDL_TIMER_UNIX 1
+/* #undef SDL_TIMER_WINDOWS */
+
+/* Enable various video drivers */
+/* #undef SDL_VIDEO_DRIVER_HAIKU */
+/* #undef SDL_VIDEO_DRIVER_COCOA */
+/* #undef SDL_VIDEO_DRIVER_DIRECTFB */
+/* #undef SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC */
+#define SDL_VIDEO_DRIVER_DUMMY 1
+/* #undef SDL_VIDEO_DRIVER_WINDOWS */
+#define SDL_VIDEO_DRIVER_WAYLAND 1
+#define SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH 1
+#define SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC "libwayland-client.so.0"
+#define SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL "libwayland-egl.so.1"
+#define SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR "libwayland-cursor.so.0"
+#define SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON "libxkbcommon.so.0"
+/* #undef SDL_VIDEO_DRIVER_X11 */
+/* #undef SDL_VIDEO_DRIVER_RPI */
+#define SDL_VIDEO_DRIVER_KMSDRM 1
+/* #undef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC */
+/* #undef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM */
+/* #undef SDL_VIDEO_DRIVER_ANDROID */
+/* #undef SDL_VIDEO_DRIVER_EMSCRIPTEN */
+/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC */
+/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT */
+/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR */
+/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA */
+/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 */
+/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR */
+/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS */
+/* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE */
+/* #undef SDL_VIDEO_DRIVER_X11_XCURSOR */
+/* #undef SDL_VIDEO_DRIVER_X11_XDBE */
+/* #undef SDL_VIDEO_DRIVER_X11_XINERAMA */
+/* #undef SDL_VIDEO_DRIVER_X11_XINPUT2 */
+/* #undef SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH */
+/* #undef SDL_VIDEO_DRIVER_X11_XRANDR */
+/* #undef SDL_VIDEO_DRIVER_X11_XSCRNSAVER */
+/* #undef SDL_VIDEO_DRIVER_X11_XSHAPE */
+/* #undef SDL_VIDEO_DRIVER_X11_XVIDMODE */
+/* #undef SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS */
+/* #undef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY */
+/* #undef SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM */
+/* #undef SDL_VIDEO_DRIVER_NACL */
+/* #undef SDL_VIDEO_DRIVER_VIVANTE */
+/* #undef SDL_VIDEO_DRIVER_VIVANTE_VDK */
+/* #undef SDL_VIDEO_DRIVER_QNX */
+
+/* #undef SDL_VIDEO_RENDER_D3D */
+/* #undef SDL_VIDEO_RENDER_D3D11 */
+/* #undef SDL_VIDEO_RENDER_OGL */
+#define SDL_VIDEO_RENDER_OGL_ES 1
+#define SDL_VIDEO_RENDER_OGL_ES2 1
+/* #undef SDL_VIDEO_RENDER_DIRECTFB */
+/* #undef SDL_VIDEO_RENDER_METAL */
+
+/* Enable OpenGL support */
+/* #undef SDL_VIDEO_OPENGL */
+#define SDL_VIDEO_OPENGL_ES 1
+#define SDL_VIDEO_OPENGL_ES2 1
+/* #undef SDL_VIDEO_OPENGL_BGL */
+/* #undef SDL_VIDEO_OPENGL_CGL */
+#define SDL_VIDEO_OPENGL_EGL 1
+/* #undef SDL_VIDEO_OPENGL_GLX */
+/* #undef SDL_VIDEO_OPENGL_WGL */
+/* #undef SDL_VIDEO_OPENGL_OSMESA */
+/* #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC */
+
+/* Enable Vulkan support */
+/* #undef SDL_VIDEO_VULKAN */
+
+/* Enable Metal support */
+/* #undef SDL_VIDEO_METAL */
+
+/* Enable system power support */
+#define SDL_POWER_LINUX 1
+/* #undef SDL_POWER_WINDOWS */
+/* #undef SDL_POWER_MACOSX */
+/* #undef SDL_POWER_HAIKU */
+/* #undef SDL_POWER_ANDROID */
+/* #undef SDL_POWER_EMSCRIPTEN */
+/* #undef SDL_POWER_HARDWIRED */
+
+/* Enable system filesystem support */
+/* #undef SDL_FILESYSTEM_HAIKU */
+/* #undef SDL_FILESYSTEM_COCOA */
+/* #undef SDL_FILESYSTEM_DUMMY */
+#define SDL_FILESYSTEM_UNIX 1
+/* #undef SDL_FILESYSTEM_WINDOWS */
+/* #undef SDL_FILESYSTEM_NACL */
+/* #undef SDL_FILESYSTEM_ANDROID */
+/* #undef SDL_FILESYSTEM_EMSCRIPTEN */
+
+/* Enable assembly routines */
+#define SDL_ASSEMBLY_ROUTINES 1
+/* #undef SDL_ALTIVEC_BLITTERS */
+/* #undef SDL_ARM_SIMD_BLITTERS */
+/* #undef SDL_ARM_NEON_BLITTERS */
+
+/* Enable ime support */
+#define SDL_USE_IME 1
+
+/* Enable dynamic udev support */
+#define SDL_UDEV_DYNAMIC "libudev.so.1"
+
+/* Enable dynamic libusb support */
+/* #undef SDL_LIBUSB_DYNAMIC */
+
+/* Enable dynamic libsamplerate support */
+/* #undef SDL_LIBSAMPLERATE_DYNAMIC */
+
+#endif /* SDL_config_h_ */
\ No newline at end of file
diff --git a/modules/FindLibdrm.cmake b/modules/FindLibdrm.cmake
deleted file mode 100644
index 9e9d7a64..00000000
--- a/modules/FindLibdrm.cmake
+++ /dev/null
@@ -1,105 +0,0 @@
-#.rst:
-# FindLibdrm
-# -------
-#
-# Try to find libdrm on a Unix system.
-#
-# This will define the following variables:
-#
-# ``Libdrm_FOUND``
-#     True if (the requested version of) libdrm is available
-# ``Libdrm_VERSION``
-#     The version of libdrm
-# ``Libdrm_LIBRARIES``
-#     This can be passed to target_link_libraries() instead of the ``Libdrm::Libdrm``
-#     target
-# ``Libdrm_INCLUDE_DIRS``
-#     This should be passed to target_include_directories() if the target is not
-#     used for linking
-# ``Libdrm_DEFINITIONS``
-#     This should be passed to target_compile_options() if the target is not
-#     used for linking
-#
-# If ``Libdrm_FOUND`` is TRUE, it will also define the following imported target:
-#
-# ``Libdrm::Libdrm``
-#     The libdrm library
-#
-# In general we recommend using the imported target, as it is easier to use.
-# Bear in mind, however, that if the target is in the link interface of an
-# exported library, it must be made available by the package config file.
-
-#=============================================================================
-# SPDX-FileCopyrightText: 2014 Alex Merry <alex.merry@kde.org>
-# SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#=============================================================================
-
-if(CMAKE_VERSION VERSION_LESS 2.8.12)
-    message(FATAL_ERROR "CMake 2.8.12 is required by FindLibdrm.cmake")
-endif()
-if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.12)
-    message(AUTHOR_WARNING "Your project should require at least CMake 2.8.12 to use FindLibdrm.cmake")
-endif()
-
-if(NOT WIN32)
-    # Use pkg-config to get the directories and then use these values
-    # in the FIND_PATH() and FIND_LIBRARY() calls
-    find_package(PkgConfig)
-    pkg_check_modules(PKG_Libdrm QUIET libdrm)
-
-    set(Libdrm_DEFINITIONS ${PKG_Libdrm_CFLAGS_OTHER})
-    set(Libdrm_VERSION ${PKG_Libdrm_VERSION})
-
-    find_path(Libdrm_INCLUDE_DIR
-        NAMES
-            xf86drm.h
-        HINTS
-            ${PKG_Libdrm_INCLUDE_DIRS}
-    )
-    find_library(Libdrm_LIBRARY
-        NAMES
-            drm
-        HINTS
-            ${PKG_Libdrm_LIBRARY_DIRS}
-    )
-
-    include(FindPackageHandleStandardArgs)
-    find_package_handle_standard_args(Libdrm
-        FOUND_VAR
-            Libdrm_FOUND
-        REQUIRED_VARS
-            Libdrm_LIBRARY
-            Libdrm_INCLUDE_DIR
-        VERSION_VAR
-            Libdrm_VERSION
-    )
-
-    if(Libdrm_FOUND AND NOT TARGET Libdrm::Libdrm)
-        add_library(Libdrm::Libdrm UNKNOWN IMPORTED)
-        set_target_properties(Libdrm::Libdrm PROPERTIES
-            IMPORTED_LOCATION "${Libdrm_LIBRARY}"
-            INTERFACE_COMPILE_OPTIONS "${Libdrm_DEFINITIONS}"
-            INTERFACE_INCLUDE_DIRECTORIES "${Libdrm_INCLUDE_DIR}"
-            INTERFACE_INCLUDE_DIRECTORIES "${Libdrm_INCLUDE_DIR}/libdrm"
-        )
-    endif()
-
-    mark_as_advanced(Libdrm_LIBRARY Libdrm_INCLUDE_DIR)
-
-    # compatibility variables
-    set(Libdrm_LIBRARIES ${Libdrm_LIBRARY})
-    set(Libdrm_INCLUDE_DIRS ${Libdrm_INCLUDE_DIR} "${Libdrm_INCLUDE_DIR}/libdrm")
-    set(Libdrm_VERSION_STRING ${Libdrm_VERSION})
-
-else()
-    message(STATUS "FindLibdrm.cmake cannot find libdrm on Windows systems.")
-    set(Libdrm_FOUND FALSE)
-endif()
-
-include(FeatureSummary)
-set_package_properties(Libdrm PROPERTIES
-    URL "https://wiki.freedesktop.org/dri/"
-    DESCRIPTION "Userspace interface to kernel DRM services."
-)
diff --git a/modules/Findgbm.cmake b/modules/Findgbm.cmake
deleted file mode 100644
index 12ef45fd..00000000
--- a/modules/Findgbm.cmake
+++ /dev/null
@@ -1,104 +0,0 @@
-#.rst:
-# Findgbm
-# -------
-#
-# Try to find gbm on a Unix system.
-#
-# This will define the following variables:
-#
-# ``gbm_FOUND``
-#     True if (the requested version of) gbm is available
-# ``gbm_VERSION``
-#     The version of gbm
-# ``gbm_LIBRARIES``
-#     This can be passed to target_link_libraries() instead of the ``gbm::gbm``
-#     target
-# ``gbm_INCLUDE_DIRS``
-#     This should be passed to target_include_directories() if the target is not
-#     used for linking
-# ``gbm_DEFINITIONS``
-#     This should be passed to target_compile_options() if the target is not
-#     used for linking
-#
-# If ``gbm_FOUND`` is TRUE, it will also define the following imported target:
-#
-# ``gbm::gbm``
-#     The gbm library
-#
-# In general we recommend using the imported target, as it is easier to use.
-# Bear in mind, however, that if the target is in the link interface of an
-# exported library, it must be made available by the package config file.
-
-#=============================================================================
-# SPDX-FileCopyrightText: 2014 Alex Merry <alex.merry@kde.org>
-# SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#=============================================================================
-
-if(CMAKE_VERSION VERSION_LESS 2.8.12)
-    message(FATAL_ERROR "CMake 2.8.12 is required by Findgbm.cmake")
-endif()
-if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.12)
-    message(AUTHOR_WARNING "Your project should require at least CMake 2.8.12 to use Findgbm.cmake")
-endif()
-
-if(NOT WIN32)
-    # Use pkg-config to get the directories and then use these values
-    # in the FIND_PATH() and FIND_LIBRARY() calls
-    find_package(PkgConfig)
-    pkg_check_modules(PKG_gbm QUIET gbm)
-
-    set(gbm_DEFINITIONS ${PKG_gbm_CFLAGS_OTHER})
-    set(gbm_VERSION ${PKG_gbm_VERSION})
-
-    find_path(gbm_INCLUDE_DIR
-        NAMES
-            gbm.h
-        HINTS
-            ${PKG_gbm_INCLUDE_DIRS}
-    )
-    find_library(gbm_LIBRARY
-        NAMES
-            gbm
-        HINTS
-            ${PKG_gbm_LIBRARY_DIRS}
-    )
-
-    include(FindPackageHandleStandardArgs)
-    find_package_handle_standard_args(gbm
-        FOUND_VAR
-            gbm_FOUND
-        REQUIRED_VARS
-            gbm_LIBRARY
-            gbm_INCLUDE_DIR
-        VERSION_VAR
-            gbm_VERSION
-    )
-
-    if(gbm_FOUND AND NOT TARGET gbm::gbm)
-        add_library(gbm::gbm UNKNOWN IMPORTED)
-        set_target_properties(gbm::gbm PROPERTIES
-            IMPORTED_LOCATION "${gbm_LIBRARY}"
-            INTERFACE_COMPILE_OPTIONS "${gbm_DEFINITIONS}"
-            INTERFACE_INCLUDE_DIRECTORIES "${gbm_INCLUDE_DIR}"
-        )
-    endif()
-
-    mark_as_advanced(gbm_LIBRARY gbm_INCLUDE_DIR)
-
-    # compatibility variables
-    set(gbm_LIBRARIES ${gbm_LIBRARY})
-    set(gbm_INCLUDE_DIRS ${gbm_INCLUDE_DIR})
-    set(gbm_VERSION_STRING ${gbm_VERSION})
-
-else()
-    message(STATUS "Findgbm.cmake cannot find gbm on Windows systems.")
-    set(gbm_FOUND FALSE)
-endif()
-
-include(FeatureSummary)
-set_package_properties(gbm PROPERTIES
-    URL "https://www.mesa3d.org"
-    DESCRIPTION "Mesa gbm library."
-)
diff --git a/platform/sdl/sdl.c b/platform/sdl/sdl.c
index 1965c15f..fbbb5b50 100644
--- a/platform/sdl/sdl.c
+++ b/platform/sdl/sdl.c
@@ -4,7 +4,6 @@
  * This software is released under the MIT License.
  * https://opensource.org/licenses/MIT
  */
-
 #include "sdl.h"
 
 game_t *GAME_STATE;
@@ -22,7 +21,7 @@ int32_t main(int32_t argc, char *argv[]) {
   float timeDelta;
 
   // Init SEDL
-  if(SDL_Init( SDL_INIT_VIDEO) < 0) {
+  if(SDL_Init(SDL_INIT_VIDEO) < 0) {
     printf("No init SDL\n");
     return 1;
   }
@@ -57,7 +56,7 @@ int32_t main(int32_t argc, char *argv[]) {
     return 1;
   }
 
-  #if SETTING_USE_GLAD == 1
+  #if SETTING_PLATFORM_USE_GLAD == 1
     // Load glad
     if (!gladLoadGLLoader((GLADloadproc) SDL_GL_GetProcAddress)) {
       printf("Failed to initialize the OpenGL context.\n");