SDL: Updated Xcode project for SDL_main as a header-only library

From 5a45d2e58bafa13a7a44019601a20fdf3e8d4972 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Thu, 15 Dec 2022 10:53:44 -0800
Subject: [PATCH] Updated Xcode project for SDL_main as a header-only library

---
 Xcode-iOS/Demos/src/accelerometer.c           |   2 -
 Xcode-iOS/Demos/src/fireworks.c               |   1 +
 Xcode-iOS/Demos/src/rectangles.c              |   1 +
 Xcode/SDL/SDL.xcodeproj/project.pbxproj       |  52 +++++----
 .../SDLTest/SDLTest.xcodeproj/project.pbxproj | 103 ------------------
 5 files changed, 32 insertions(+), 127 deletions(-)

diff --git a/Xcode-iOS/Demos/src/accelerometer.c b/Xcode-iOS/Demos/src/accelerometer.c
index 6231a72500b6..39ac012103fe 100644
--- a/Xcode-iOS/Demos/src/accelerometer.c
+++ b/Xcode-iOS/Demos/src/accelerometer.c
@@ -187,8 +187,6 @@ main(int argc, char *argv[])
            SDL_JoystickNumAxes(accelerometer));
     printf("joystick number of hats = %d\n",
            SDL_JoystickNumHats(accelerometer));
-    printf("joystick number of balls = %d\n",
-           SDL_JoystickNumBalls(accelerometer));
     printf("joystick number of buttons = %d\n",
            SDL_JoystickNumButtons(accelerometer));
 
diff --git a/Xcode-iOS/Demos/src/fireworks.c b/Xcode-iOS/Demos/src/fireworks.c
index 1f1282bedc88..c6aaaa6ccb52 100644
--- a/Xcode-iOS/Demos/src/fireworks.c
+++ b/Xcode-iOS/Demos/src/fireworks.c
@@ -9,6 +9,7 @@
 #include <SDL3/SDL_opengles.h>
 #include "common.h"
 #include <math.h>
+#include <stdlib.h>
 #include <time.h>
 
 #define ACCEL 0.0001f           /* acceleration due to gravity, units in pixels per millesecond squared */
diff --git a/Xcode-iOS/Demos/src/rectangles.c b/Xcode-iOS/Demos/src/rectangles.c
index a43914338ab5..1667ded6fd4e 100644
--- a/Xcode-iOS/Demos/src/rectangles.c
+++ b/Xcode-iOS/Demos/src/rectangles.c
@@ -6,6 +6,7 @@
 
 #include <SDL3/SDL.h>
 #include <SDL3/SDL_main.h>
+#include <stdlib.h>
 #include <time.h>
 #include "common.h"
 
diff --git a/Xcode/SDL/SDL.xcodeproj/project.pbxproj b/Xcode/SDL/SDL.xcodeproj/project.pbxproj
index c93f43a2d89d..443f5be00682 100644
--- a/Xcode/SDL/SDL.xcodeproj/project.pbxproj
+++ b/Xcode/SDL/SDL.xcodeproj/project.pbxproj
@@ -1048,7 +1048,6 @@
 		A769B1E523E259AE00872273 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61523E2513D00DCD162 /* SDL_RLEaccel.c */; };
 		A769B1E723E259AE00872273 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A94423E2514000DCD162 /* SDL_assert.c */; };
 		A769B1E823E259AE00872273 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A77323E2513E00DCD162 /* SDL_bmp.c */; };
-		A769B1E923E259AE00872273 /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5B023E2513D00DCD162 /* SDL_uikit_main.c */; };
 		A769B1EA23E259AE00872273 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A8D823E2514000DCD162 /* SDL_stdlib.c */; };
 		A769B1EB23E259AE00872273 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A87223E2513F00DCD162 /* SDL_dummyaudio.c */; };
 		A769B1EC23E259AE00872273 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A76823E2513E00DCD162 /* SDL_fillrect.c */; };
@@ -2953,7 +2952,6 @@
 		A7D8BC0423E2574800DCD162 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A62523E2513D00DCD162 /* SDL_uikitvulkan.m */; };
 		A7D8BC0523E2574800DCD162 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = A7D8A62723E2513D00DCD162 /* SDL_uikitwindow.h */; };
 		A7D8BC0623E2574800DCD162 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A61A23E2513D00DCD162 /* SDL_uikitwindow.m */; };
-		A7D8BC0723E2590800DCD162 /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5B023E2513D00DCD162 /* SDL_uikit_main.c */; };
 		DB31406E17554B71006C0E22 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0073179D0858DECD00B2BC32 /* Cocoa.framework */; };
 		DB31407017554B71006C0E22 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0073179F0858DECD00B2BC32 /* IOKit.framework */; };
 		DB31407217554B71006C0E22 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 007317C10858E15000B2BC32 /* Carbon.framework */; };
@@ -2990,6 +2988,16 @@
 		F34B9895291DEFF500AAC96E /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; };
 		F34B9896291DEFF700AAC96E /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; };
 		F34B9897291DEFFA00AAC96E /* SDL_hidapi_steam.c in Sources */ = {isa = PBXBuildFile; fileRef = A75FDAAC23E2795C00529352 /* SDL_hidapi_steam.c */; };
+		F36C7AD1294BA009004D61C3 /* SDL_runapp.c in Sources */ = {isa = PBXBuildFile; fileRef = F36C7AD0294BA009004D61C3 /* SDL_runapp.c */; };
+		F36C7AD2294BA009004D61C3 /* SDL_runapp.c in Sources */ = {isa = PBXBuildFile; fileRef = F36C7AD0294BA009004D61C3 /* SDL_runapp.c */; };
+		F36C7AD3294BA009004D61C3 /* SDL_runapp.c in Sources */ = {isa = PBXBuildFile; fileRef = F36C7AD0294BA009004D61C3 /* SDL_runapp.c */; };
+		F36C7AD4294BA009004D61C3 /* SDL_runapp.c in Sources */ = {isa = PBXBuildFile; fileRef = F36C7AD0294BA009004D61C3 /* SDL_runapp.c */; };
+		F36C7AD5294BA009004D61C3 /* SDL_runapp.c in Sources */ = {isa = PBXBuildFile; fileRef = F36C7AD0294BA009004D61C3 /* SDL_runapp.c */; };
+		F36C7AD6294BA009004D61C3 /* SDL_runapp.c in Sources */ = {isa = PBXBuildFile; fileRef = F36C7AD0294BA009004D61C3 /* SDL_runapp.c */; };
+		F36C7AD7294BA009004D61C3 /* SDL_runapp.c in Sources */ = {isa = PBXBuildFile; fileRef = F36C7AD0294BA009004D61C3 /* SDL_runapp.c */; };
+		F36C7AD8294BA009004D61C3 /* SDL_runapp.c in Sources */ = {isa = PBXBuildFile; fileRef = F36C7AD0294BA009004D61C3 /* SDL_runapp.c */; };
+		F36C7AD9294BA009004D61C3 /* SDL_runapp.c in Sources */ = {isa = PBXBuildFile; fileRef = F36C7AD0294BA009004D61C3 /* SDL_runapp.c */; };
+		F36C7ADA294BA009004D61C3 /* SDL_runapp.c in Sources */ = {isa = PBXBuildFile; fileRef = F36C7AD0294BA009004D61C3 /* SDL_runapp.c */; };
 		F376F6192559B29300CFC0BC /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6182559B29300CFC0BC /* OpenGLES.framework */; platformFilter = ios; };
 		F376F61B2559B2AF00CFC0BC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F61A2559B2AF00CFC0BC /* UIKit.framework */; };
 		F376F6322559B31D00CFC0BC /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F376F6312559B31D00CFC0BC /* GameController.framework */; };
@@ -3559,7 +3567,6 @@
 		A7D8A58223E2513D00DCD162 /* SDL_sensor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_sensor.c; sourceTree = "<group>"; };
 		A7D8A58323E2513D00DCD162 /* SDL_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_internal.h; sourceTree = "<group>"; };
 		A7D8A5AB23E2513D00DCD162 /* SDL_hints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hints.c; sourceTree = "<group>"; };
-		A7D8A5B023E2513D00DCD162 /* SDL_uikit_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_uikit_main.c; sourceTree = "<group>"; };
 		A7D8A5C423E2513D00DCD162 /* SDL_syshaptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_syshaptic.c; sourceTree = "<group>"; };
 		A7D8A5C523E2513D00DCD162 /* SDL_haptic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_haptic.c; sourceTree = "<group>"; };
 		A7D8A5C623E2513D00DCD162 /* SDL_haptic_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_haptic_c.h; sourceTree = "<group>"; };
@@ -3863,6 +3870,7 @@
 		F31A92C628D4CB39003BFD6A /* SDL_offscreenopengles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_offscreenopengles.h; sourceTree = "<group>"; };
 		F31A92C728D4CB39003BFD6A /* SDL_offscreenopengles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_offscreenopengles.c; sourceTree = "<group>"; };
 		F32305FE28939F6400E66D30 /* SDL_hidapi_combined.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_combined.c; sourceTree = "<group>"; };
+		F36C7AD0294BA009004D61C3 /* SDL_runapp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_runapp.c; sourceTree = "<group>"; };
 		F376F6182559B29300CFC0BC /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.1.sdk/System/Library/Frameworks/OpenGLES.framework; sourceTree = DEVELOPER_DIR; };
 		F376F61A2559B2AF00CFC0BC /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/iOSSupport/System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
 		F376F6312559B31D00CFC0BC /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/iOSSupport/System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
@@ -4235,6 +4243,7 @@
 			children = (
 				A7D8A57223E2513D00DCD162 /* atomic */,
 				A7D8A86423E2513F00DCD162 /* audio */,
+				F36C7ACF294B9F5E004D61C3 /* core */,
 				A7D8A77423E2513E00DCD162 /* cpuinfo */,
 				A7D8A5D723E2513D00DCD162 /* dynapi */,
 				A7D8A92923E2514000DCD162 /* events */,
@@ -4246,7 +4255,6 @@
 				A7D8A91123E2514000DCD162 /* libm */,
 				A7D8A85D23E2513F00DCD162 /* loadso */,
 				566E26CB246274AE00718109 /* locale */,
-				A7D8A5AC23E2513D00DCD162 /* main */,
 				5616CA47252BB278005D5928 /* misc */,
 				A7D8A7DF23E2513F00DCD162 /* power */,
 				A7D8A8DA23E2514000DCD162 /* render */,
@@ -4417,22 +4425,6 @@
 			path = coremotion;
 			sourceTree = "<group>";
 		};
-		A7D8A5AC23E2513D00DCD162 /* main */ = {
-			isa = PBXGroup;
-			children = (
-				A7D8A5AF23E2513D00DCD162 /* uikit */,
-			);
-			path = main;
-			sourceTree = "<group>";
-		};
-		A7D8A5AF23E2513D00DCD162 /* uikit */ = {
-			isa = PBXGroup;
-			children = (
-				A7D8A5B023E2513D00DCD162 /* SDL_uikit_main.c */,
-			);
-			path = uikit;
-			sourceTree = "<group>";
-		};
 		A7D8A5C223E2513D00DCD162 /* haptic */ = {
 			isa = PBXGroup;
 			children = (
@@ -5150,6 +5142,14 @@
 			path = SDL3;
 			sourceTree = "<group>";
 		};
+		F36C7ACF294B9F5E004D61C3 /* core */ = {
+			isa = PBXGroup;
+			children = (
+				F36C7AD0294BA009004D61C3 /* SDL_runapp.c */,
+			);
+			path = core;
+			sourceTree = "<group>";
+		};
 		F3ADAB8C2576F08500A6B1D9 /* ios */ = {
 			isa = PBXGroup;
 			children = (
@@ -7373,6 +7373,7 @@
 				A75FCE2323E25AB700529352 /* SDL_cocoametalview.m in Sources */,
 				A75FCE2423E25AB700529352 /* SDL_audiotypecvt.c in Sources */,
 				A75FCE2523E25AB700529352 /* SDL_uikitevents.m in Sources */,
+				F36C7AD9294BA009004D61C3 /* SDL_runapp.c in Sources */,
 				F3820724284F362F004DD584 /* SDL_guid.c in Sources */,
 				A75FCE2623E25AB700529352 /* SDL_uikitmodes.m in Sources */,
 				A75FCE2723E25AB700529352 /* SDL_blit_N.c in Sources */,
@@ -7567,6 +7568,7 @@
 				A75FCFDC23E25AC700529352 /* SDL_cocoametalview.m in Sources */,
 				A75FCFDD23E25AC700529352 /* SDL_audiotypecvt.c in Sources */,
 				A75FCFDE23E25AC700529352 /* SDL_uikitevents.m in Sources */,
+				F36C7ADA294BA009004D61C3 /* SDL_runapp.c in Sources */,
 				F3820725284F362F004DD584 /* SDL_guid.c in Sources */,
 				A75FCFDF23E25AC700529352 /* SDL_uikitmodes.m in Sources */,
 				A75FCFE023E25AC700529352 /* SDL_blit_N.c in Sources */,
@@ -7803,6 +7805,7 @@
 				A769B1DD23E259AE00872273 /* SDL_mixer.c in Sources */,
 				A769B1DE23E259AE00872273 /* SDL_events.c in Sources */,
 				A769B1DF23E259AE00872273 /* SDL_blit_0.c in Sources */,
+				F36C7AD7294BA009004D61C3 /* SDL_runapp.c in Sources */,
 				A769B1E023E259AE00872273 /* k_tan.c in Sources */,
 				A769B1E223E259AE00872273 /* SDL_diskaudio.c in Sources */,
 				A769B1E423E259AE00872273 /* SDL_egl.c in Sources */,
@@ -7810,7 +7813,6 @@
 				A769B1E723E259AE00872273 /* SDL_assert.c in Sources */,
 				A769B1E823E259AE00872273 /* SDL_bmp.c in Sources */,
 				75E0915F241EA924004729E1 /* SDL_virtualjoystick.c in Sources */,
-				A769B1E923E259AE00872273 /* SDL_uikit_main.c in Sources */,
 				F3F07D5F269640160074468B /* SDL_hidapi_luna.c in Sources */,
 				A769B1EA23E259AE00872273 /* SDL_stdlib.c in Sources */,
 				A769B1EB23E259AE00872273 /* SDL_dummyaudio.c in Sources */,
@@ -7956,6 +7958,7 @@
 				A7D8ACB823E2514100DCD162 /* SDL_uikitmodes.m in Sources */,
 				A7D8AD3323E2514100DCD162 /* SDL_blit_N.c in Sources */,
 				A7D8BB7C23E2514500DCD162 /* SDL_dropevents.c in Sources */,
+				F36C7AD2294BA009004D61C3 /* SDL_runapp.c in Sources */,
 				F382071E284F362F004DD584 /* SDL_guid.c in Sources */,
 				A7D8BACE23E2514500DCD162 /* e_atan2.c in Sources */,
 				A7D8BA8C23E2514400DCD162 /* s_sin.c in Sources */,
@@ -8150,6 +8153,7 @@
 				A7D8ACB923E2514100DCD162 /* SDL_uikitmodes.m in Sources */,
 				A7D8AD3423E2514100DCD162 /* SDL_blit_N.c in Sources */,
 				A7D8BB7D23E2514500DCD162 /* SDL_dropevents.c in Sources */,
+				F36C7AD3294BA009004D61C3 /* SDL_runapp.c in Sources */,
 				F382071F284F362F004DD584 /* SDL_guid.c in Sources */,
 				A7D8BACF23E2514500DCD162 /* e_atan2.c in Sources */,
 				A7D8BA8D23E2514400DCD162 /* s_sin.c in Sources */,
@@ -8386,6 +8390,7 @@
 				A7D8B76823E2514300DCD162 /* SDL_mixer.c in Sources */,
 				A7D8BB5B23E2514500DCD162 /* SDL_events.c in Sources */,
 				A7D8ADEA23E2514100DCD162 /* SDL_blit_0.c in Sources */,
+				F36C7AD6294BA009004D61C3 /* SDL_runapp.c in Sources */,
 				A7D8BB0D23E2514500DCD162 /* k_tan.c in Sources */,
 				A7D8B8AC23E2514400DCD162 /* SDL_diskaudio.c in Sources */,
 				A7D8AFC423E2514200DCD162 /* SDL_egl.c in Sources */,
@@ -8393,7 +8398,6 @@
 				A7D8BBB523E2514500DCD162 /* SDL_assert.c in Sources */,
 				A7D8B3DE23E2514300DCD162 /* SDL_bmp.c in Sources */,
 				75E0915E241EA924004729E1 /* SDL_virtualjoystick.c in Sources */,
-				A7D8BC0723E2590800DCD162 /* SDL_uikit_main.c in Sources */,
 				F3F07D5E269640160074468B /* SDL_hidapi_luna.c in Sources */,
 				A7D8B97223E2514400DCD162 /* SDL_stdlib.c in Sources */,
 				A7D8B79E23E2514400DCD162 /* SDL_dummyaudio.c in Sources */,
@@ -8655,6 +8659,7 @@
 				A7D8BA2523E2514400DCD162 /* SDL_drawpoint.c in Sources */,
 				F388C95528B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */,
 				A7D8BAF723E2514500DCD162 /* e_sqrt.c in Sources */,
+				F36C7AD1294BA009004D61C3 /* SDL_runapp.c in Sources */,
 				A7D8AEAC23E2514100DCD162 /* SDL_cocoavideo.m in Sources */,
 				A7D8A94B23E2514000DCD162 /* SDL.c in Sources */,
 				A7D8AEA023E2514100DCD162 /* SDL_cocoavulkan.m in Sources */,
@@ -8848,6 +8853,7 @@
 				A7D8BA2823E2514400DCD162 /* SDL_drawpoint.c in Sources */,
 				F388C95828B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */,
 				A7D8BAFA23E2514500DCD162 /* e_sqrt.c in Sources */,
+				F36C7AD5294BA009004D61C3 /* SDL_runapp.c in Sources */,
 				A7D8AEAF23E2514100DCD162 /* SDL_cocoavideo.m in Sources */,
 				A7D8A94E23E2514000DCD162 /* SDL.c in Sources */,
 				A7D8BBF823E2574800DCD162 /* SDL_uikitmodes.m in Sources */,
@@ -9041,6 +9047,7 @@
 				A7D8BA2A23E2514400DCD162 /* SDL_drawpoint.c in Sources */,
 				F388C95B28B5F6F700661ECF /* SDL_hidapi_ps3.c in Sources */,
 				A7D8BAFC23E2514500DCD162 /* e_sqrt.c in Sources */,
+				F36C7AD8294BA009004D61C3 /* SDL_runapp.c in Sources */,
 				A7D8AEB123E2514100DCD162 /* SDL_cocoavideo.m in Sources */,
 				A7D8A95023E2514000DCD162 /* SDL.c in Sources */,
 				A7D8AEA523E2514100DCD162 /* SDL_cocoavulkan.m in Sources */,
@@ -9054,6 +9061,7 @@
 			buildActionMask = 2147483647;
 			files = (
 				F31A92D528D4CB39003BFD6A /* SDL_offscreenopengles.c in Sources */,
+				F36C7AD4294BA009004D61C3 /* SDL_runapp.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj b/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj
index 665aad1bdd8f..fb3dca4dc5d8 100644
--- a/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj
+++ b/Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj
@@ -55,7 +55,6 @@
 				001799A21074403E00F5D044 /* PBXTargetDependency */,
 				DB166D7016A1CEAF00A1396C /* PBXTargetDependency */,
 				DB166D6E16A1CEAA00A1396C /* PBXTargetDependency */,
-				DB166DC316A1D32C00A1396C /* PBXTargetDependency */,
 			);
 			name = All;
 			productName = "Build All";
@@ -159,7 +158,6 @@
 		F3C17C7628E40BA200E1A26D /* controllermap_back.bmp in CopyFiles */ = {isa = PBXBuildFile; fileRef = F3C17C7528E40B6B00E1A26D /* controllermap_back.bmp */; };
 		F3C17C7728E40BC800E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; };
 		F3C17C7928E40C6E00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; };
-		F3C17C7A28E40CA600E1A26D /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; };
 		F3C17C7B28E40D4E00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; };
 		F3C17C7C28E40D7400E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; };
 		F3C17C7D28E40F9D00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; };
@@ -174,52 +172,6 @@
 		F3C17CEB28E4177600E1A26D /* testgeometry.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CD628E416AC00E1A26D /* testgeometry.c */; };
 		F3C17CEC28E417EB00E1A26D /* testutils.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17C7328E40ADE00E1A26D /* testutils.c */; };
 		F3C17CED28E417F400E1A26D /* libSDL_test.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DB166D7F16A1D12400A1396C /* libSDL_test.a */; };
-		F3C17CEE28E4184700E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17CEF28E41D5800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17CFC28E41E9800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17CFD28E41EA100E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17CFE28E41EAC00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17CFF28E41EB000E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0028E41EB400E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0128E41EB800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0228E41EBC00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0328E41EC500E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0428E41EC800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0528E41ECB00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0628E41ECF00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0728E41ED300E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0828E41EDB00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0928E41EE100E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0A28E41EE700E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0B28E41EEB00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0C28E41EF000E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0D28E41EF400E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0E28E41EF900E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D0F28E41EFE00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1028E41F0200E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1128E41F0600E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1228E41F0A00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1328E41F0D00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1428E41F1100E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1528E41F1F00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1628E41F2400E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1728E41F2800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1828E41F2C00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1928E41F3100E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1A28E41F3500E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1B28E41F3800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1C28E41F3C00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1D28E41F4000E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1E28E41F4500E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D1F28E41F4800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D2028E41F4D00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D2228E41F5F00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D2328E41F6200E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D2428E41F6600E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D2528E41F6A00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D2628E41F6E00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D2728E41FD800E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
-		F3C17D2828E41FDC00E1A26D /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */; };
 		F3C17D3928E424B800E1A26D /* sample.wav in Resources */ = {isa = PBXBuildFile; fileRef = 00794E6209D20839003FC8A1 /* sample.wav */; };
 		F3C17D3B28E4252900E1A26D /* icon.bmp in Resources */ = {isa = PBXBuildFile; fileRef = 00794E5D09D20839003FC8A1 /* icon.bmp */; };
 		F3C17D3C28E4277D00E1A26D /* axis.bmp in Resources */ = {isa = PBXBuildFile; fileRef = DBEC54D61A1A8145005B1EAB /* axis.bmp */; };
@@ -849,7 +801,6 @@
 		F3C17C6A28E3FD4400E1A26D /* config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = config.xcconfig; sourceTree = "<group>"; };
 		F3C17C7328E40ADE00E1A26D /* testutils.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = testutils.c; sourceTree = "<group>"; };
 		F3C17C7528E40B6B00E1A26D /* controllermap_back.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = controllermap_back.bmp; sourceTree = "<group>"; };
-		F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = SDL_uikit_main.c; path = ../src/main/uikit/SDL_uikit_main.c; sourceTree = "<group>"; };
 		F3C17CD628E416AC00E1A26D /* testgeometry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testgeometry.c; sourceTree = "<group>"; };
 		F3C17CDC28E416CF00E1A26D /* testgeometry.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testgeometry.app; sourceTree = BUILT_PRODUCTS_DIR; };
 /* End PBXFileReference section */
@@ -1101,14 +1052,6 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
-		DB166DB016A1D2F600A1396C /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				F3C17C7A28E40CA600E1A26D /* libSDL_test.a in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
 		DB166DC716A1D36A00A1396C /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
@@ -1264,7 +1207,6 @@
 		08FB7795FE84155DC02AAC07 /* Source */ = {
 			isa = PBXGroup;
 			children = (
-				F3C17CAC28E414F100E1A26D /* SDL_uikit_main.c */,
 				092D6D10FFB30A2C7F000001 /* checkkeys.c */,
 				DBEC54D11A1A811D005B1EAB /* controllermap.c */,
 				083E4872006D84C97F000001 /* loopwave.c */,
@@ -2383,7 +2325,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17CFF28E41EB000E1A26D /* SDL_uikit_main.c in Sources */,
 				001795901074216E00F5D044 /* testatomic.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2392,7 +2333,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D0028E41EB400E1A26D /* SDL_uikit_main.c in Sources */,
 				001795B11074222D00F5D044 /* testaudioinfo.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2401,7 +2341,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D0928E41EE100E1A26D /* SDL_uikit_main.c in Sources */,
 				0017972810742FB900F5D044 /* testgl2.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2410,7 +2349,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D0A28E41EE700E1A26D /* SDL_uikit_main.c in Sources */,
 				0017974F1074315700F5D044 /* testhaptic.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2419,7 +2357,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D0128E41EB800E1A26D /* SDL_uikit_main.c in Sources */,
 				001797721074320D00F5D044 /* testdraw2.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2428,7 +2365,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D0D28E41EF400E1A26D /* SDL_uikit_main.c in Sources */,
 				00179792107432FA00F5D044 /* testime.c in Sources */,
 				F3C17C7C28E40D7400E1A26D /* testutils.c in Sources */,
 			);
@@ -2438,7 +2374,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D0E28E41EF900E1A26D /* SDL_uikit_main.c in Sources */,
 				001797B41074339C00F5D044 /* testintersections.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2447,7 +2382,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D1128E41F0600E1A26D /* SDL_uikit_main.c in Sources */,
 				001797D41074343E00F5D044 /* testloadso.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2456,7 +2390,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D1428E41F1100E1A26D /* SDL_uikit_main.c in Sources */,
 				001798161074359B00F5D044 /* testmultiaudio.c in Sources */,
 				F3C17C7D28E40F9D00E1A26D /* testutils.c in Sources */,
 			);
@@ -2476,7 +2409,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D1728E41F2800E1A26D /* SDL_uikit_main.c in Sources */,
 				001798BA10743A4900F5D044 /* testpower.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2485,7 +2417,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D1B28E41F3800E1A26D /* SDL_uikit_main.c in Sources */,
 				001798FA10743E9200F5D044 /* testresample.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2494,7 +2425,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17CEF28E41D5800E1A26D /* SDL_uikit_main.c in Sources */,
 				0017991A10743F5300F5D044 /* testsprite2.c in Sources */,
 				F3C17C8328E4124400E1A26D /* testutils.c in Sources */,
 			);
@@ -2504,7 +2434,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D2728E41FD800E1A26D /* SDL_uikit_main.c in Sources */,
 				0017993C10743FEF00F5D044 /* testwm2.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2513,7 +2442,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D0528E41ECB00E1A26D /* SDL_uikit_main.c in Sources */,
 				002F341809CA1C5B00EBEB88 /* testfile.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -2522,7 +2450,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D0C28E41EF000E1A26D /* SDL_uikit_main.c in Sources */,
 				002F343709CA1F6F00EBEB88 /* testiconv.c in Sources */,
 				F3C17C7B28E40D4E00E1A26D /* testutils.c in Sources */,
 			);
@@ -2532,7 +2459,6 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				F3C17D1528E41F1F00E1A26D /* SDL_uikit_m

(Patch may be truncated, please check the link at the top of this post.)