SDL: Added libSDLmain.a for iOS and tvOS

From 3e76646cc6415a918f7635e8c9671ea8233d05e7 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sat, 31 Jul 2021 13:09:53 -0700
Subject: [PATCH] Added libSDLmain.a for iOS and tvOS

---
 Xcode/SDL/SDL.xcodeproj/project.pbxproj | 178 +++++++++++++++++++++++-
 1 file changed, 175 insertions(+), 3 deletions(-)

diff --git a/Xcode/SDL/SDL.xcodeproj/project.pbxproj b/Xcode/SDL/SDL.xcodeproj/project.pbxproj
index e58308512..f71f92617 100644
--- a/Xcode/SDL/SDL.xcodeproj/project.pbxproj
+++ b/Xcode/SDL/SDL.xcodeproj/project.pbxproj
@@ -3820,6 +3820,8 @@
 		F3ADAB912576F0B400A6B1D9 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */; };
 		F3ADAB922576F0B400A6B1D9 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */; };
 		F3ADAB932576F0B400A6B1D9 /* SDL_sysurl.m in Sources */ = {isa = PBXBuildFile; fileRef = F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */; };
+		F3CB963A26B5E10A00B9C980 /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5B023E2513D00DCD162 /* SDL_uikit_main.c */; };
+		F3CB963B26B5E14400B9C980 /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = A7D8A5B023E2513D00DCD162 /* SDL_uikit_main.c */; };
 		F3F07D5A269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; };
 		F3F07D5B269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; };
 		F3F07D5C269640160074468B /* SDL_hidapi_luna.c in Sources */ = {isa = PBXBuildFile; fileRef = F3F07D59269640160074468B /* SDL_hidapi_luna.c */; };
@@ -4376,6 +4378,8 @@
 		F3984CCF25BCC92800374F43 /* SDL_hidapi_stadia.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_stadia.c; sourceTree = "<group>"; };
 		F3A4909D2554D38500E92A8B /* SDL_hidapi_ps5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_ps5.c; sourceTree = "<group>"; };
 		F3ADAB8D2576F0B300A6B1D9 /* SDL_sysurl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_sysurl.m; sourceTree = "<group>"; };
+		F3CB94BA26B5E0A400B9C980 /* libSDLmain.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDLmain.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		F3CB963826B5E0A600B9C980 /* libSDLmain.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDLmain.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		F3F07D59269640160074468B /* SDL_hidapi_luna.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_luna.c; sourceTree = "<group>"; };
 		F59C710300D5CB5801000001 /* ReadMe.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ReadMe.txt; sourceTree = "<group>"; };
 		F59C710600D5CB5801000001 /* SDL.info */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = SDL.info; sourceTree = "<group>"; };
@@ -4557,6 +4561,20 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		F3CB94B526B5E0A400B9C980 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F3CB963326B5E0A600B9C980 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
@@ -4650,6 +4668,8 @@
 				A75FDB4923E399AC00529352 /* hidapi.framework */,
 				A75FDB6E23E3A2C900529352 /* hidapi.framework */,
 				A75FDB8C23E4C74400529352 /* hidapi.framework */,
+				F3CB94BA26B5E0A400B9C980 /* libSDLmain.a */,
+				F3CB963826B5E0A600B9C980 /* libSDLmain.a */,
 			);
 			name = Products;
 			sourceTree = "<group>";
@@ -7703,6 +7723,20 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		F3CB933F26B5E0A400B9C980 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F3CB94BD26B5E0A600B9C980 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXHeadersBuildPhase section */
 
 /* Begin PBXNativeTarget section */
@@ -7811,7 +7845,7 @@
 			);
 			buildRules = (
 			);
-			comments = "This produces libsdl.a, which is the static build of SDL. You will have to link to the Cocoa and OpenGL frameworks in your application.";
+			comments = "This produces libSDL.a, which is the static build of SDL. You will have to link to the Cocoa and OpenGL frameworks in your application.";
 			dependencies = (
 			);
 			name = "Static Library-tvOS";
@@ -7873,7 +7907,7 @@
 			);
 			buildRules = (
 			);
-			comments = "This produces libsdl.a, which is the static build of SDL. You will have to link to the Cocoa and OpenGL frameworks in your application.";
+			comments = "This produces libSDL.a, which is the static build of SDL. You will have to link to the Cocoa and OpenGL frameworks in your application.";
 			dependencies = (
 			);
 			name = "Static Library-iOS";
@@ -7914,7 +7948,7 @@
 			);
 			buildRules = (
 			);
-			comments = "This produces libsdl.a, which is the static build of SDL. You will have to link to the Cocoa and OpenGL frameworks in your application.";
+			comments = "This produces libSDL.a, which is the static build of SDL. You will have to link to the Cocoa and OpenGL frameworks in your application.";
 			dependencies = (
 			);
 			name = "Static Library";
@@ -7961,6 +7995,46 @@
 			productReference = DB31407717554B71006C0E22 /* libSDL2.dylib */;
 			productType = "com.apple.product-type.library.dynamic";
 		};
+		F3CB933E26B5E0A400B9C980 /* SDLmain-iOS */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F3CB94B726B5E0A400B9C980 /* Build configuration list for PBXNativeTarget "SDLmain-iOS" */;
+			buildPhases = (
+				F3CB933F26B5E0A400B9C980 /* Headers */,
+				F3CB93F026B5E0A400B9C980 /* Sources */,
+				F3CB94B526B5E0A400B9C980 /* Frameworks */,
+				F3CB94B626B5E0A400B9C980 /* Rez */,
+			);
+			buildRules = (
+			);
+			comments = "This produces libSDLmain.a, which provides a main() for use with your application";
+			dependencies = (
+			);
+			name = "SDLmain-iOS";
+			productInstallPath = /usr/local/lib;
+			productName = "Static Library";
+			productReference = F3CB94BA26B5E0A400B9C980 /* libSDLmain.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+		F3CB94BC26B5E0A600B9C980 /* SDLmain-tvOS */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F3CB963526B5E0A600B9C980 /* Build configuration list for PBXNativeTarget "SDLmain-tvOS" */;
+			buildPhases = (
+				F3CB94BD26B5E0A600B9C980 /* Headers */,
+				F3CB956E26B5E0A600B9C980 /* Sources */,
+				F3CB963326B5E0A600B9C980 /* Frameworks */,
+				F3CB963426B5E0A600B9C980 /* Rez */,
+			);
+			buildRules = (
+			);
+			comments = "This produces libSDLmain.a, which provides a main() for use with your application";
+			dependencies = (
+			);
+			name = "SDLmain-tvOS";
+			productInstallPath = /usr/local/lib;
+			productName = "Static Library";
+			productReference = F3CB963826B5E0A600B9C980 /* libSDLmain.a */;
+			productType = "com.apple.product-type.library.static";
+		};
 /* End PBXNativeTarget section */
 
 /* Begin PBXProject section */
@@ -7988,6 +8062,8 @@
 			projectDirPath = "";
 			projectRoot = "";
 			targets = (
+				F3CB933E26B5E0A400B9C980 /* SDLmain-iOS */,
+				F3CB94BC26B5E0A600B9C980 /* SDLmain-tvOS */,
 				BECDF5FE0761BA81005FE872 /* Framework */,
 				A7D88A1423E2437C00DCD162 /* Framework-iOS */,
 				A7D88BC923E24BED00DCD162 /* Framework-tvOS */,
@@ -8114,6 +8190,20 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		F3CB94B626B5E0A400B9C980 /* Rez */ = {
+			isa = PBXRezBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F3CB963426B5E0A600B9C980 /* Rez */ = {
+			isa = PBXRezBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXRezBuildPhase section */
 
 /* Begin PBXShellScriptBuildPhase section */
@@ -9973,6 +10063,22 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		F3CB93F026B5E0A400B9C980 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F3CB963A26B5E10A00B9C980 /* SDL_uikit_main.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F3CB956E26B5E0A600B9C980 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F3CB963B26B5E14400B9C980 /* SDL_uikit_main.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 /* End PBXSourcesBuildPhase section */
 
 /* Begin PBXTargetDependency section */
@@ -10425,6 +10531,54 @@
 			};
 			name = Release;
 		};
+		F3CB94B826B5E0A400B9C980 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_LINK_OBJC_RUNTIME = NO;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				PRODUCT_NAME = SDLmain;
+				SKIP_INSTALL = YES;
+				SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
+			};
+			name = Debug;
+		};
+		F3CB94B926B5E0A400B9C980 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_LINK_OBJC_RUNTIME = NO;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				PRODUCT_NAME = SDLmain;
+				SKIP_INSTALL = YES;
+				SUPPORTED_PLATFORMS = "iphonesimulator iphoneos";
+			};
+			name = Release;
+		};
+		F3CB963626B5E0A600B9C980 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_LINK_OBJC_RUNTIME = NO;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				PRODUCT_NAME = SDLmain;
+				SKIP_INSTALL = YES;
+				SUPPORTED_PLATFORMS = "appletvsimulator appletvos";
+			};
+			name = Debug;
+		};
+		F3CB963726B5E0A600B9C980 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_LINK_OBJC_RUNTIME = NO;
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				PRODUCT_NAME = SDLmain;
+				SKIP_INSTALL = YES;
+				SUPPORTED_PLATFORMS = "appletvsimulator appletvos";
+			};
+			name = Release;
+		};
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
@@ -10554,6 +10708,24 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Debug;
 		};
+		F3CB94B726B5E0A400B9C980 /* Build configuration list for PBXNativeTarget "SDLmain-iOS" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F3CB94B826B5E0A400B9C980 /* Debug */,
+				F3CB94B926B5E0A400B9C980 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
+		F3CB963526B5E0A600B9C980 /* Build configuration list for PBXNativeTarget "SDLmain-tvOS" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F3CB963626B5E0A600B9C980 /* Debug */,
+				F3CB963726B5E0A600B9C980 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Debug;
+		};
 /* End XCConfigurationList section */
 	};
 	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;