From 12e58917c0280ef8dcb2e94cd9a02bac03c3d27a Mon Sep 17 00:00:00 2001
From: lat9nq <22451773+lat9nq@users.noreply.github.com>
Date: Fri, 16 Apr 2021 19:12:47 -0400
Subject: [PATCH 1/2] externals: Add SDL 2.0.12

Since Bintray is (soon to be) no more, there needs to be a way to
acquire SDL2. Since 20.04's version is older than our minimum required
version (2.0.12), add it as an external.
---
 .gitmodules              |  3 +++
 CMakeLists.txt           | 20 +++++++++++---------
 externals/CMakeLists.txt |  6 ++++++
 externals/SDL            |  1 +
 4 files changed, 21 insertions(+), 9 deletions(-)
 create mode 160000 externals/SDL

diff --git a/.gitmodules b/.gitmodules
index a0a89933df..829ab46fef 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -40,3 +40,6 @@
 [submodule "ffmpeg"]
 	path = externals/ffmpeg
 	url = https://git.ffmpeg.org/ffmpeg.git
+[submodule "externals/SDL"]
+	path = externals/SDL
+	url = https://github.com/libsdl-org/SDL.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a4a6da2e19..e208715d77 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -274,17 +274,19 @@ if (ENABLE_SDL2)
         target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARY}")
         target_include_directories(SDL2 INTERFACE "${SDL2_INCLUDE_DIR}")
     else()
-        find_package(SDL2 REQUIRED)
+        find_package(SDL2 2.0.12)
 
-        # Some installations don't set SDL2_LIBRARIES
-        if("${SDL2_LIBRARIES}" STREQUAL "")
-            message(WARNING "SDL2_LIBRARIES wasn't set, manually setting to SDL2::SDL2")
-            set(SDL2_LIBRARIES "SDL2::SDL2")
+        if(SDL2_FOUND)
+            # Some installations don't set SDL2_LIBRARIES
+            if("${SDL2_LIBRARIES}" STREQUAL "")
+                message(WARNING "SDL2_LIBRARIES wasn't set, manually setting to SDL2::SDL2")
+                set(SDL2_LIBRARIES "SDL2::SDL2")
+            endif()
+
+            include_directories(SYSTEM ${SDL2_INCLUDE_DIRS})
+            add_library(SDL2 INTERFACE)
+            target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARIES}")
         endif()
-
-        include_directories(SYSTEM ${SDL2_INCLUDE_DIRS})
-        add_library(SDL2 INTERFACE)
-        target_link_libraries(SDL2 INTERFACE "${SDL2_LIBRARIES}")
     endif()
 else()
     set(SDL2_FOUND NO)
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 891a47c3cc..6e4591b4e0 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -45,6 +45,12 @@ target_include_directories(microprofile INTERFACE ./microprofile)
 add_library(unicorn-headers INTERFACE)
 target_include_directories(unicorn-headers INTERFACE ./unicorn/include)
 
+# SDL2
+if (NOT SDL2_FOUND)
+    set(SDL2_FOUND YES)
+    add_subdirectory(SDL EXCLUDE_FROM_ALL)
+endif()
+
 # SoundTouch
 add_subdirectory(soundtouch)
 
diff --git a/externals/SDL b/externals/SDL
new file mode 160000
index 0000000000..983bbf9ef3
--- /dev/null
+++ b/externals/SDL
@@ -0,0 +1 @@
+Subproject commit 983bbf9ef3e572a073a6f5877faf1c0b4803527c

From b17f031e35a8b8629af809e6e2aec221bce134b3 Mon Sep 17 00:00:00 2001
From: lat9nq <lat9nq@gmail.com>
Date: Sat, 17 Apr 2021 20:48:51 +0000
Subject: [PATCH 2/2] gitmodules: Remove unneeded prefix

Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
---
 .gitmodules | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitmodules b/.gitmodules
index 829ab46fef..8e5bc4581d 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -40,6 +40,6 @@
 [submodule "ffmpeg"]
 	path = externals/ffmpeg
 	url = https://git.ffmpeg.org/ffmpeg.git
-[submodule "externals/SDL"]
+[submodule "SDL"]
 	path = externals/SDL
 	url = https://github.com/libsdl-org/SDL.git