Commit de82759c8412fdcd4657a006918f521831c38b0b

Sam Lantinga 2019-03-19T07:53:33

Added support for building SDL as a dynamic library on iOS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
diff --git a/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj b/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj
old mode 100644
new mode 100755
index 5510f23..693c2fc
--- a/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj
+++ b/Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj
@@ -94,6 +94,252 @@
 		4D75171A1EE1D32200820EEA /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7517191EE1D32200820EEA /* SDL_uikitmetalview.h */; };
 		4D75171F1EE1D98200820EEA /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D75171D1EE1D98200820EEA /* SDL_vulkan_internal.h */; };
 		4D7517201EE1D98200820EEA /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D75171E1EE1D98200820EEA /* SDL_vulkan_utils.c */; };
+		52ED1D6D222889500061FCE0 /* SDL_blit.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683010DF2374E00F98A1A /* SDL_blit.h */; };
+		52ED1D6E222889500061FCE0 /* SDL_uikitmetalview.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7517191EE1D32200820EEA /* SDL_uikitmetalview.h */; };
+		52ED1D6F222889500061FCE0 /* SDL_vulkan_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D75171D1EE1D98200820EEA /* SDL_vulkan_internal.h */; };
+		52ED1D70222889500061FCE0 /* SDL_blit_auto.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683060DF2374E00F98A1A /* SDL_blit_auto.h */; };
+		52ED1D71222889500061FCE0 /* SDL_blit_copy.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683080DF2374E00F98A1A /* SDL_blit_copy.h */; };
+		52ED1D72222889500061FCE0 /* SDL_pixels_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683100DF2374E00F98A1A /* SDL_pixels_c.h */; };
+		52ED1D73222889500061FCE0 /* SDL_dynapi_procs.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703218565E760007D20F /* SDL_dynapi_procs.h */; };
+		52ED1D74222889500061FCE0 /* SDL_RLEaccel_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA683160DF2374E00F98A1A /* SDL_RLEaccel_c.h */; };
+		52ED1D75222889500061FCE0 /* SDL_sysvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA6831A0DF2374E00F98A1A /* SDL_sysvideo.h */; };
+		52ED1D76222889500061FCE0 /* SDL_nullevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA685F60DF244C800F98A1A /* SDL_nullevents_c.h */; };
+		52ED1D77222889500061FCE0 /* SDL_nullvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA685FA0DF244C800F98A1A /* SDL_nullvideo.h */; };
+		52ED1D78222889500061FCE0 /* SDL_joystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FD5F9D1F0E0E08B3008E885B /* SDL_joystick_c.h */; };
+		52ED1D79222889500061FCE0 /* SDL_sysjoystick.h in Headers */ = {isa = PBXBuildFile; fileRef = FD5F9D200E0E08B3008E885B /* SDL_sysjoystick.h */; };
+		52ED1D7A222889500061FCE0 /* SDL_uikitevents.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F0C0E26E5D900F90B21 /* SDL_uikitevents.h */; };
+		52ED1D7B222889500061FCE0 /* SDL_uikitopengles.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F0E0E26E5D900F90B21 /* SDL_uikitopengles.h */; };
+		52ED1D7C222889500061FCE0 /* SDL_uikitvideo.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F100E26E5D900F90B21 /* SDL_uikitvideo.h */; };
+		52ED1D7D222889500061FCE0 /* SDL_uikitwindow.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F140E26E5D900F90B21 /* SDL_uikitwindow.h */; };
+		52ED1D7E222889500061FCE0 /* SDL_uikitopenglview.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689F160E26E5D900F90B21 /* SDL_uikitopenglview.h */; };
+		52ED1D7F222889500061FCE0 /* SDL_dynapi.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703418565E760007D20F /* SDL_dynapi.h */; };
+		52ED1D80222889500061FCE0 /* SDL_uikitappdelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = FD689FCD0E26E9D400F90B21 /* SDL_uikitappdelegate.h */; };
+		52ED1D81222889500061FCE0 /* SDL_dynapi_overrides.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6703118565E760007D20F /* SDL_dynapi_overrides.h */; };
+		52ED1D82222889500061FCE0 /* yuv_rgb_std_func.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3531FB8B46300D9FEE6 /* yuv_rgb_std_func.h */; };
+		52ED1D83222889500061FCE0 /* SDL_syshaptic.h in Headers */ = {isa = PBXBuildFile; fileRef = 047677BA0EA76A31008ABAF1 /* SDL_syshaptic.h */; };
+		52ED1D84222889500061FCE0 /* SDL_blit_slow.h in Headers */ = {isa = PBXBuildFile; fileRef = 0463873A0F0B5B7D0041FD65 /* SDL_blit_slow.h */; };
+		52ED1D85222889500061FCE0 /* SDL_rwopsbundlesupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 006E9886119552DD001DE610 /* SDL_rwopsbundlesupport.h */; };
+		52ED1D86222889500061FCE0 /* SDL_clipboardevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 0420496E11E6F03D007E7EC9 /* SDL_clipboardevents_c.h */; };
+		52ED1D87222889500061FCE0 /* SDL_rect_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3461FB8B27800D9FEE6 /* SDL_rect_c.h */; };
+		52ED1D88222889500061FCE0 /* yuv_rgb_sse_func.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3541FB8B46300D9FEE6 /* yuv_rgb_sse_func.h */; };
+		52ED1D89222889500061FCE0 /* SDL_gesture_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BA9D5F11EF474A00B60E01 /* SDL_gesture_c.h */; };
+		52ED1D8A222889500061FCE0 /* SDL_touch_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BA9D6111EF474A00B60E01 /* SDL_touch_c.h */; };
+		52ED1D8B222889500061FCE0 /* SDL_sysrender.h in Headers */ = {isa = PBXBuildFile; fileRef = 041B2CEB12FA0F680087D585 /* SDL_sysrender.h */; };
+		52ED1D8C222889500061FCE0 /* SDL_yuv_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04409BA412FA989600FB9AA8 /* SDL_yuv_sw_c.h */; };
+		52ED1D8D222889500061FCE0 /* yuv_rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3551FB8B46300D9FEE6 /* yuv_rgb.h */; };
+		52ED1D8E222889500061FCE0 /* SDL_blendfillrect.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806B12FB751400FC43C0 /* SDL_blendfillrect.h */; };
+		52ED1D8F222889500061FCE0 /* SDL_blendline.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806D12FB751400FC43C0 /* SDL_blendline.h */; };
+		52ED1D90222889500061FCE0 /* SDL_hidapijoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F3BDD79020F51CB8004ECBF3 /* SDL_hidapijoystick_c.h */; };
+		52ED1D91222889500061FCE0 /* SDL_blendpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7806F12FB751400FC43C0 /* SDL_blendpoint.h */; };
+		52ED1D92222889500061FCE0 /* SDL_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807012FB751400FC43C0 /* SDL_draw.h */; };
+		52ED1D93222889500061FCE0 /* SDL_drawline.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807212FB751400FC43C0 /* SDL_drawline.h */; };
+		52ED1D94222889500061FCE0 /* SDL_yuv_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3481FB8B27800D9FEE6 /* SDL_yuv_c.h */; };
+		52ED1D95222889500061FCE0 /* SDL_drawpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7807412FB751400FC43C0 /* SDL_drawpoint.h */; };
+		52ED1D96222889500061FCE0 /* SDL_nullframebuffer_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F7808212FB753F00FC43C0 /* SDL_nullframebuffer_c.h */; };
+		52ED1D97222889500061FCE0 /* SDL_render_sw_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 0442EC4E12FE1C1E004C9285 /* SDL_render_sw_c.h */; };
+		52ED1D98222889500061FCE0 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = FA1DC2701C62BE65008F99A0 /* SDL_uikitclipboard.h */; };
+		52ED1D99222889500061FCE0 /* SDL_shaders_gles2.h in Headers */ = {isa = PBXBuildFile; fileRef = 0402A85712FE70C600CECEE3 /* SDL_shaders_gles2.h */; };
+		52ED1D9A222889500061FCE0 /* SDL_assert_c.h in Headers */ = {isa = PBXBuildFile; fileRef = 04BAC09A1300C1290055DE28 /* SDL_assert_c.h */; };
+		52ED1D9B222889500061FCE0 /* SDL_coreaudio.h in Headers */ = {isa = PBXBuildFile; fileRef = 56EA86FA13E9EC2B002E47EB /* SDL_coreaudio.h */; };
+		52ED1D9C222889500061FCE0 /* SDL_uikitviewcontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = 93CB792213FC5E5200BD3E05 /* SDL_uikitviewcontroller.h */; };
+		52ED1D9D222889500061FCE0 /* SDL_rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = AA628ADA159369E3005138DD /* SDL_rotate.h */; };
+		52ED1D9E222889500061FCE0 /* begin_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558651595D55500BBD41B /* begin_code.h */; };
+		52ED1D9F222889500061FCE0 /* close_code.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558661595D55500BBD41B /* close_code.h */; };
+		52ED1DA0222889500061FCE0 /* SDL_assert.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558671595D55500BBD41B /* SDL_assert.h */; };
+		52ED1DA1222889500061FCE0 /* SDL_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558681595D55500BBD41B /* SDL_atomic.h */; };
+		52ED1DA2222889500061FCE0 /* SDL_audio.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558691595D55500BBD41B /* SDL_audio.h */; };
+		52ED1DA3222889500061FCE0 /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FFA9192122302B00D7CBED /* SDL_syspower.h */; };
+		52ED1DA4222889500061FCE0 /* SDL_blendmode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586A1595D55500BBD41B /* SDL_blendmode.h */; };
+		52ED1DA5222889500061FCE0 /* SDL_sensor_c.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C9B212CD0980047DF2E /* SDL_sensor_c.h */; };
+		52ED1DA6222889500061FCE0 /* SDL_clipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586B1595D55500BBD41B /* SDL_clipboard.h */; };
+		52ED1DA7222889500061FCE0 /* SDL_config_iphoneos.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586C1595D55500BBD41B /* SDL_config_iphoneos.h */; };
+		52ED1DA8222889500061FCE0 /* SDL_config.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586D1595D55500BBD41B /* SDL_config.h */; };
+		52ED1DA9222889500061FCE0 /* SDL_copying.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586E1595D55500BBD41B /* SDL_copying.h */; };
+		52ED1DAA222889500061FCE0 /* SDL_egl_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3431FB8B27700D9FEE6 /* SDL_egl_c.h */; };
+		52ED1DAB222889500061FCE0 /* SDL_cpuinfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75586F1595D55500BBD41B /* SDL_cpuinfo.h */; };
+		52ED1DAC222889500061FCE0 /* SDL_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558701595D55500BBD41B /* SDL_endian.h */; };
+		52ED1DAD222889500061FCE0 /* SDL_error.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558711595D55500BBD41B /* SDL_error.h */; };
+		52ED1DAE222889500061FCE0 /* SDL_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 56A6702D18565E450007D20F /* SDL_internal.h */; };
+		52ED1DAF222889500061FCE0 /* SDL_events.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558721595D55500BBD41B /* SDL_events.h */; };
+		52ED1DB0222889500061FCE0 /* SDL_gesture.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558731595D55500BBD41B /* SDL_gesture.h */; };
+		52ED1DB1222889500061FCE0 /* SDL_haptic.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558741595D55500BBD41B /* SDL_haptic.h */; };
+		52ED1DB2222889500061FCE0 /* SDL_hints.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558751595D55500BBD41B /* SDL_hints.h */; };
+		52ED1DB3222889500061FCE0 /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 566726441DF72CF5001DD3DB /* SDL_dataqueue.h */; };
+		52ED1DB4222889500061FCE0 /* SDL_syssensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C9C212CD0990047DF2E /* SDL_syssensor.h */; };
+		52ED1DB5222889500061FCE0 /* SDL_joystick.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558771595D55500BBD41B /* SDL_joystick.h */; };
+		52ED1DB6222889500061FCE0 /* SDL_shape_internals.h in Headers */ = {isa = PBXBuildFile; fileRef = AA13B3451FB8B27800D9FEE6 /* SDL_shape_internals.h */; };
+		52ED1DB7222889500061FCE0 /* SDL_keyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558781595D55500BBD41B /* SDL_keyboard.h */; };
+		52ED1DB8222889500061FCE0 /* controller_type.h in Headers */ = {isa = PBXBuildFile; fileRef = A704172D20F7E74800A82227 /* controller_type.h */; };
+		52ED1DB9222889500061FCE0 /* SDL_keycode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558791595D55500BBD41B /* SDL_keycode.h */; };
+		52ED1DBA222889500061FCE0 /* SDL_loadso.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587A1595D55500BBD41B /* SDL_loadso.h */; };
+		52ED1DBB222889500061FCE0 /* SDL_log.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587B1595D55500BBD41B /* SDL_log.h */; };
+		52ED1DBC222889500061FCE0 /* SDL_coremotionsensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9CA4212CD0BF0047DF2E /* SDL_coremotionsensor.h */; };
+		52ED1DBD222889500061FCE0 /* SDL_main.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587C1595D55500BBD41B /* SDL_main.h */; };
+		52ED1DBE222889500061FCE0 /* SDL_mouse.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587D1595D55500BBD41B /* SDL_mouse.h */; };
+		52ED1DBF222889500061FCE0 /* SDL_displayevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = A7C19D27212E552B00DF2152 /* SDL_displayevents_c.h */; };
+		52ED1DC0222889500061FCE0 /* SDL_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587E1595D55500BBD41B /* SDL_mutex.h */; };
+		52ED1DC1222889500061FCE0 /* SDL_name.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75587F1595D55500BBD41B /* SDL_name.h */; };
+		52ED1DC2222889500061FCE0 /* SDL_opengl.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558801595D55500BBD41B /* SDL_opengl.h */; };
+		52ED1DC3222889500061FCE0 /* SDL_opengles.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558811595D55500BBD41B /* SDL_opengles.h */; };
+		52ED1DC4222889500061FCE0 /* SDL_shaders_metal_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = AADC5A611FDA10C800960936 /* SDL_shaders_metal_ios.h */; };
+		52ED1DC5222889500061FCE0 /* SDL_opengles2.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558821595D55500BBD41B /* SDL_opengles2.h */; };
+		52ED1DC6222889500061FCE0 /* SDL_pixels.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558831595D55500BBD41B /* SDL_pixels.h */; };
+		52ED1DC7222889500061FCE0 /* SDL_platform.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558841595D55500BBD41B /* SDL_platform.h */; };
+		52ED1DC8222889500061FCE0 /* SDL_power.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558851595D55500BBD41B /* SDL_power.h */; };
+		52ED1DC9222889500061FCE0 /* SDL_quit.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558861595D55500BBD41B /* SDL_quit.h */; };
+		52ED1DCA222889500061FCE0 /* SDL_rect.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558871595D55500BBD41B /* SDL_rect.h */; };
+		52ED1DCB222889500061FCE0 /* SDL_render.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558881595D55500BBD41B /* SDL_render.h */; };
+		52ED1DCC222889500061FCE0 /* SDL_revision.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558891595D55500BBD41B /* SDL_revision.h */; };
+		52ED1DCD222889500061FCE0 /* SDL_rwops.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588A1595D55500BBD41B /* SDL_rwops.h */; };
+		52ED1DCE222889500061FCE0 /* SDL_scancode.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588B1595D55500BBD41B /* SDL_scancode.h */; };
+		52ED1DCF222889500061FCE0 /* SDL_shape.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588C1595D55500BBD41B /* SDL_shape.h */; };
+		52ED1DD0222889500061FCE0 /* SDL_stdinc.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588D1595D55500BBD41B /* SDL_stdinc.h */; };
+		52ED1DD1222889500061FCE0 /* SDL_sysjoystick_c.h in Headers */ = {isa = PBXBuildFile; fileRef = FAD4F7011BA3C4E8008346CE /* SDL_sysjoystick_c.h */; };
+		52ED1DD2222889500061FCE0 /* SDL_surface.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588E1595D55500BBD41B /* SDL_surface.h */; };
+		52ED1DD3222889500061FCE0 /* SDL_system.h in Headers */ = {isa = PBXBuildFile; fileRef = AA75588F1595D55500BBD41B /* SDL_system.h */; };
+		52ED1DD4222889500061FCE0 /* SDL_sensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F30D9C98212CD0360047DF2E /* SDL_sensor.h */; };
+		52ED1DD5222889500061FCE0 /* SDL_syswm.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558901595D55500BBD41B /* SDL_syswm.h */; };
+		52ED1DD6222889500061FCE0 /* SDL_thread.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558911595D55500BBD41B /* SDL_thread.h */; };
+		52ED1DD7222889500061FCE0 /* SDL_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558921595D55500BBD41B /* SDL_timer.h */; };
+		52ED1DD8222889500061FCE0 /* SDL_touch.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558931595D55500BBD41B /* SDL_touch.h */; };
+		52ED1DD9222889500061FCE0 /* SDL_types.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558941595D55500BBD41B /* SDL_types.h */; };
+		52ED1DDA222889500061FCE0 /* SDL_version.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558951595D55500BBD41B /* SDL_version.h */; };
+		52ED1DDB222889500061FCE0 /* SDL_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7516FE1EE1C5B400820EEA /* SDL_vulkan.h */; };
+		52ED1DDC222889500061FCE0 /* SDL_video.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558961595D55500BBD41B /* SDL_video.h */; };
+		52ED1DDD222889500061FCE0 /* SDL.h in Headers */ = {isa = PBXBuildFile; fileRef = AA7558971595D55500BBD41B /* SDL.h */; };
+		52ED1DDE222889500061FCE0 /* SDL_uikitvulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7516F91EE1C28A00820EEA /* SDL_uikitvulkan.h */; };
+		52ED1DDF222889500061FCE0 /* SDL_uikitmodes.h in Headers */ = {isa = PBXBuildFile; fileRef = AA126AD21617C5E6005ABC8F /* SDL_uikitmodes.h */; };
+		52ED1DE0222889500061FCE0 /* SDL_dropevents_c.h in Headers */ = {isa = PBXBuildFile; fileRef = AA704DD4162AA90A0076D1C1 /* SDL_dropevents_c.h */; };
+		52ED1DE1222889500061FCE0 /* SDL_messagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AA9FF9501637C6E5000DF050 /* SDL_messagebox.h */; };
+		52ED1DE2222889500061FCE0 /* SDL_uikitmessagebox.h in Headers */ = {isa = PBXBuildFile; fileRef = AABCC3921640643D00AB8930 /* SDL_uikitmessagebox.h */; };
+		52ED1DE3222889500061FCE0 /* SDL_gamecontroller.h in Headers */ = {isa = PBXBuildFile; fileRef = AA0AD06416647BD400CE5896 /* SDL_gamecontroller.h */; };
+		52ED1DE4222889500061FCE0 /* SDL_dummysensor.h in Headers */ = {isa = PBXBuildFile; fileRef = F36839CA214790950000F255 /* SDL_dummysensor.h */; };
+		52ED1DE5222889500061FCE0 /* SDL_bits.h in Headers */ = {isa = PBXBuildFile; fileRef = AADA5B8E16CCAB7C00107CF7 /* SDL_bits.h */; };
+		52ED1DE6222889500061FCE0 /* SDL_filesystem.h in Headers */ = {isa = PBXBuildFile; fileRef = 56C181DE17C44D5E00406AE3 /* SDL_filesystem.h */; };
+		52ED1DE8222889500061FCE0 /* SDL_systimer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA310DD52EDC00FB1D6B /* SDL_systimer.c */; };
+		52ED1DE9222889500061FCE0 /* SDL_timer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA2E0DD52EDC00FB1D6B /* SDL_timer.c */; };
+		52ED1DEA222889500061FCE0 /* SDL_coremotionsensor.m in Sources */ = {isa = PBXBuildFile; fileRef = F30D9CA3212CD0BF0047DF2E /* SDL_coremotionsensor.m */; };
+		52ED1DEB222889500061FCE0 /* SDL_string.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A750DEA620800C5B771 /* SDL_string.c */; };
+		52ED1DEC222889500061FCE0 /* SDL_dummyaudio.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B91D0DD52EDC00FB1D6B /* SDL_dummyaudio.c */; };
+		52ED1DED222889500061FCE0 /* SDL_audio.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9440DD52EDC00FB1D6B /* SDL_audio.c */; };
+		52ED1DEE222889500061FCE0 /* SDL_audiocvt.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9460DD52EDC00FB1D6B /* SDL_audiocvt.c */; };
+		52ED1DEF222889500061FCE0 /* SDL_audiotypecvt.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B94A0DD52EDC00FB1D6B /* SDL_audiotypecvt.c */; };
+		52ED1DF0222889500061FCE0 /* SDL_mixer.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B94B0DD52EDC00FB1D6B /* SDL_mixer.c */; };
+		52ED1DF1222889500061FCE0 /* SDL_wave.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9530DD52EDC00FB1D6B /* SDL_wave.c */; };
+		52ED1DF2222889500061FCE0 /* SDL_uikitvulkan.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7516FA1EE1C28A00820EEA /* SDL_uikitvulkan.m */; };
+		52ED1DF3222889500061FCE0 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = FA1DC2711C62BE65008F99A0 /* SDL_uikitclipboard.m */; };
+		52ED1DF4222889500061FCE0 /* SDL_cpuinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B98B0DD52EDC00FB1D6B /* SDL_cpuinfo.c */; };
+		52ED1DF5222889500061FCE0 /* SDL_events.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9930DD52EDC00FB1D6B /* SDL_events.c */; };
+		52ED1DF6222889500061FCE0 /* SDL_keyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9950DD52EDC00FB1D6B /* SDL_keyboard.c */; };
+		52ED1DF7222889500061FCE0 /* SDL_dynapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 56A6703318565E760007D20F /* SDL_dynapi.c */; };
+		52ED1DF8222889500061FCE0 /* SDL_mouse.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9970DD52EDC00FB1D6B /* SDL_mouse.c */; };
+		52ED1DF9222889500061FCE0 /* SDL_quit.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9990DD52EDC00FB1D6B /* SDL_quit.c */; };
+		52ED1DFA222889500061FCE0 /* SDL_windowevents.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B99B0DD52EDC00FB1D6B /* SDL_windowevents.c */; };
+		52ED1DFB222889500061FCE0 /* SDL_uikitmetalview.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D7516F81EE1C28A00820EEA /* SDL_uikitmetalview.m */; };
+		52ED1DFC222889500061FCE0 /* SDL_rwops.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B99E0DD52EDC00FB1D6B /* SDL_rwops.c */; };
+		52ED1DFD222889500061FCE0 /* hid.m in Sources */ = {isa = PBXBuildFile; fileRef = F30D9CC5212CE92C0047DF2E /* hid.m */; };
+		52ED1DFE222889500061FCE0 /* SDL_vulkan_utils.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D75171E1EE1D98200820EEA /* SDL_vulkan_utils.c */; };
+		52ED1DFF222889500061FCE0 /* SDL_error.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9D50DD52EDC00FB1D6B /* SDL_error.c */; };
+		52ED1E00222889500061FCE0 /* SDL.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99B9D80DD52EDC00FB1D6B /* SDL.c */; };
+		52ED1E01222889500061FCE0 /* SDL_syscond.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA070DD52EDC00FB1D6B /* SDL_syscond.c */; };
+		52ED1E02222889500061FCE0 /* SDL_render_metal.m in Sources */ = {isa = PBXBuildFile; fileRef = AADC5A621FDA10C800960936 /* SDL_render_metal.m */; };
+		52ED1E03222889500061FCE0 /* SDL_sysmutex.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA080DD52EDC00FB1D6B /* SDL_sysmutex.c */; };
+		52ED1E04222889500061FCE0 /* SDL_syssem.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA0A0DD52EDC00FB1D6B /* SDL_syssem.c */; };
+		52ED1E05222889500061FCE0 /* SDL_systhread.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA0B0DD52EDC00FB1D6B /* SDL_systhread.c */; };
+		52ED1E06222889500061FCE0 /* SDL_thread.c in Sources */ = {isa = PBXBuildFile; fileRef = FD99BA150DD52EDC00FB1D6B /* SDL_thread.c */; };
+		52ED1E07222889500061FCE0 /* SDL_getenv.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A700DEA620800C5B771 /* SDL_getenv.c */; };
+		52ED1E08222889500061FCE0 /* SDL_iconv.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A710DEA620800C5B771 /* SDL_iconv.c */; };
+		52ED1E09222889500061FCE0 /* SDL_malloc.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A720DEA620800C5B771 /* SDL_malloc.c */; };
+		52ED1E0A222889500061FCE0 /* SDL_hidapi_xbox360.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78B20F51CB8004ECBF3 /* SDL_hidapi_xbox360.c */; };
+		52ED1E0B222889500061FCE0 /* SDL_qsort.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A730DEA620800C5B771 /* SDL_qsort.c */; };
+		52ED1E0C222889500061FCE0 /* SDL_hidapi_ps4.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78E20F51CB8004ECBF3 /* SDL_hidapi_ps4.c */; };
+		52ED1E0D222889500061FCE0 /* SDL_stdlib.c in Sources */ = {isa = PBXBuildFile; fileRef = FD3F4A740DEA620800C5B771 /* SDL_stdlib.c */; };
+		52ED1E0E222889500061FCE0 /* SDL_blit.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683000DF2374E00F98A1A /* SDL_blit.c */; };
+		52ED1E0F222889500061FCE0 /* SDL_blit_0.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683020DF2374E00F98A1A /* SDL_blit_0.c */; };
+		52ED1E10222889500061FCE0 /* SDL_yuv.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B34F1FB8B3CC00D9FEE6 /* SDL_yuv.c */; };
+		52ED1E11222889500061FCE0 /* SDL_blit_1.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683030DF2374E00F98A1A /* SDL_blit_1.c */; };
+		52ED1E12222889500061FCE0 /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 566726431DF72CF5001DD3DB /* SDL_dataqueue.c */; };
+		52ED1E13222889500061FCE0 /* SDL_blit_A.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683040DF2374E00F98A1A /* SDL_blit_A.c */; };
+		52ED1E14222889500061FCE0 /* SDL_blit_auto.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683050DF2374E00F98A1A /* SDL_blit_auto.c */; };
+		52ED1E15222889500061FCE0 /* SDL_blit_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683070DF2374E00F98A1A /* SDL_blit_copy.c */; };
+		52ED1E16222889500061FCE0 /* SDL_blit_N.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683090DF2374E00F98A1A /* SDL_blit_N.c */; };
+		52ED1E17222889500061FCE0 /* SDL_blit_slow.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830A0DF2374E00F98A1A /* SDL_blit_slow.c */; };
+		52ED1E18222889500061FCE0 /* SDL_bmp.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830B0DF2374E00F98A1A /* SDL_bmp.c */; };
+		52ED1E19222889500061FCE0 /* SDL_pixels.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6830F0DF2374E00F98A1A /* SDL_pixels.c */; };
+		52ED1E1A222889500061FCE0 /* SDL_rect.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683110DF2374E00F98A1A /* SDL_rect.c */; };
+		52ED1E1B222889500061FCE0 /* SDL_RLEaccel.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683150DF2374E00F98A1A /* SDL_RLEaccel.c */; };
+		52ED1E1C222889500061FCE0 /* SDL_stretch.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683170DF2374E00F98A1A /* SDL_stretch.c */; };
+		52ED1E1D222889500061FCE0 /* SDL_egl.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3471FB8B27800D9FEE6 /* SDL_egl.c */; };
+		52ED1E1E222889500061FCE0 /* SDL_surface.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA683190DF2374E00F98A1A /* SDL_surface.c */; };
+		52ED1E1F222889500061FCE0 /* SDL_video.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA6831B0DF2374E00F98A1A /* SDL_video.c */; };
+		52ED1E20222889500061FCE0 /* SDL_nullevents.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA685F50DF244C800F98A1A /* SDL_nullevents.c */; };
+		52ED1E21222889500061FCE0 /* SDL_nullvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = FDA685F90DF244C800F98A1A /* SDL_nullvideo.c */; };
+		52ED1E22222889500061FCE0 /* SDL_joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = FD5F9D1E0E0E08B3008E885B /* SDL_joystick.c */; };
+		52ED1E23222889500061FCE0 /* SDL_sysjoystick.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F000E26E5B600F90B21 /* SDL_sysjoystick.m */; };
+		52ED1E24222889500061FCE0 /* SDL_uikitevents.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F0D0E26E5D900F90B21 /* SDL_uikitevents.m */; };
+		52ED1E25222889500061FCE0 /* yuv_rgb.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3561FB8B46300D9FEE6 /* yuv_rgb.c */; };
+		52ED1E26222889500061FCE0 /* SDL_uikitopengles.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F0F0E26E5D900F90B21 /* SDL_uikitopengles.m */; };
+		52ED1E27222889500061FCE0 /* SDL_uikitvideo.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F110E26E5D900F90B21 /* SDL_uikitvideo.m */; };
+		52ED1E28222889500061FCE0 /* SDL_uikitview.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F130E26E5D900F90B21 /* SDL_uikitview.m */; };
+		52ED1E29222889500061FCE0 /* SDL_displayevents.c in Sources */ = {isa = PBXBuildFile; fileRef = A7C19D28212E552B00DF2152 /* SDL_displayevents.c */; };
+		52ED1E2A222889500061FCE0 /* SDL_uikitwindow.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F150E26E5D900F90B21 /* SDL_uikitwindow.m */; };
+		52ED1E2B222889500061FCE0 /* SDL_uikitopenglview.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689F170E26E5D900F90B21 /* SDL_uikitopenglview.m */; };
+		52ED1E2C222889500061FCE0 /* SDL_uikitappdelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FD689FCC0E26E9D400F90B21 /* SDL_uikitappdelegate.m */; };
+		52ED1E2D222889500061FCE0 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = FD8BD8190E27E25900B52CD5 /* SDL_sysloadso.c */; };
+		52ED1E2E222889500061FCE0 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD79120F51CB8004ECBF3 /* SDL_hidapijoystick.c */; };
+		52ED1E2F222889500061FCE0 /* SDL_syshaptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 047677B80EA76A31008ABAF1 /* SDL_syshaptic.c */; };
+		52ED1E30222889500061FCE0 /* SDL_haptic.c in Sources */ = {isa = PBXBuildFile; fileRef = 047677B90EA76A31008ABAF1 /* SDL_haptic.c */; };
+		52ED1E31222889500061FCE0 /* SDL_sysloadso.c in Sources */ = {isa = PBXBuildFile; fileRef = 047AF1B20EA98D6C00811173 /* SDL_sysloadso.c */; };
+		52ED1E32222889500061FCE0 /* SDL_fillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 0463873E0F0B5B7D0041FD65 /* SDL_fillrect.c */; };
+		52ED1E33222889500061FCE0 /* SDL_assert.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F2AF551104ABD200D6DDF7 /* SDL_assert.c */; };
+		52ED1E34222889500061FCE0 /* SDL_hidapi_xboxone.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78D20F51CB8004ECBF3 /* SDL_hidapi_xboxone.c */; };
+		52ED1E35222889500061FCE0 /* SDL_power.c in Sources */ = {isa = PBXBuildFile; fileRef = 56ED04E0118A8EE200A56AA6 /* SDL_power.c */; };
+		52ED1E36222889500061FCE0 /* SDL_syspower.m in Sources */ = {isa = PBXBuildFile; fileRef = 56ED04E2118A8EFD00A56AA6 /* SDL_syspower.m */; };
+		52ED1E37222889500061FCE0 /* SDL_rwopsbundlesupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 006E9887119552DD001DE610 /* SDL_rwopsbundlesupport.m */; };
+		52ED1E38222889500061FCE0 /* SDL_clipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 044E5FB711E606EB0076F181 /* SDL_clipboard.c */; };
+		52ED1E39222889500061FCE0 /* SDL_clipboardevents.c in Sources */ = {isa = PBXBuildFile; fileRef = 0420496F11E6F03D007E7EC9 /* SDL_clipboardevents.c */; };
+		52ED1E3A222889500061FCE0 /* SDL_gesture.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BA9D6011EF474A00B60E01 /* SDL_gesture.c */; };
+		52ED1E3B222889500061FCE0 /* SDL_touch.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BA9D6211EF474A00B60E01 /* SDL_touch.c */; };
+		52ED1E3C222889500061FCE0 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 04FFAB8912E23B8D00BA343D /* SDL_atomic.c */; };
+		52ED1E3D222889500061FCE0 /* SDL_spinlock.c in Sources */ = {isa = PBXBuildFile; fileRef = 04FFAB8A12E23B8D00BA343D /* SDL_spinlock.c */; };
+		52ED1E3E222889500061FCE0 /* SDL_render.c in Sources */ = {isa = PBXBuildFile; fileRef = 041B2CEA12FA0F680087D585 /* SDL_render.c */; };
+		52ED1E3F222889500061FCE0 /* SDL_yuv_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 04409BA512FA989600FB9AA8 /* SDL_yuv_sw.c */; };
+		52ED1E40222889500061FCE0 /* SDL_blendfillrect.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806A12FB751400FC43C0 /* SDL_blendfillrect.c */; };
+		52ED1E41222889500061FCE0 /* SDL_blendline.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806C12FB751400FC43C0 /* SDL_blendline.c */; };
+		52ED1E42222889500061FCE0 /* SDL_blendpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7806E12FB751400FC43C0 /* SDL_blendpoint.c */; };
+		52ED1E43222889500061FCE0 /* SDL_drawline.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7807112FB751400FC43C0 /* SDL_drawline.c */; };
+		52ED1E44222889500061FCE0 /* SDL_drawpoint.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7807312FB751400FC43C0 /* SDL_drawpoint.c */; };
+		52ED1E45222889500061FCE0 /* SDL_nullframebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = 04F7808312FB753F00FC43C0 /* SDL_nullframebuffer.c */; };
+		52ED1E46222889500061FCE0 /* SDL_render_sw.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC4F12FE1C1E004C9285 /* SDL_render_sw.c */; };
+		52ED1E47222889500061FCE0 /* SDL_render_gles.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC5212FE1C28004C9285 /* SDL_render_gles.c */; };
+		52ED1E48222889500061FCE0 /* SDL_hints.c in Sources */ = {isa = PBXBuildFile; fileRef = 0442EC5412FE1C3F004C9285 /* SDL_hints.c */; };
+		52ED1E49222889500061FCE0 /* SDL_shape.c in Sources */ = {isa = PBXBuildFile; fileRef = AA13B3441FB8B27800D9FEE6 /* SDL_shape.c */; };
+		52ED1E4A222889500061FCE0 /* SDL_render_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0402A85512FE70C600CECEE3 /* SDL_render_gles2.c */; };
+		52ED1E4B222889500061FCE0 /* SDL_dummysensor.c in Sources */ = {isa = PBXBuildFile; fileRef = F36839CB214790950000F255 /* SDL_dummysensor.c */; };
+		52ED1E4C222889500061FCE0 /* SDL_shaders_gles2.c in Sources */ = {isa = PBXBuildFile; fileRef = 0402A85612FE70C600CECEE3 /* SDL_shaders_gles2.c */; };
+		52ED1E4D222889500061FCE0 /* SDL_log.c in Sources */ = {isa = PBXBuildFile; fileRef = 04BAC09B1300C1290055DE28 /* SDL_log.c */; };
+		52ED1E4E222889500061FCE0 /* SDL_coreaudio.m in Sources */ = {isa = PBXBuildFile; fileRef = 56EA86F913E9EC2B002E47EB /* SDL_coreaudio.m */; };
+		52ED1E4F222889500061FCE0 /* SDL_sensor.c in Sources */ = {isa = PBXBuildFile; fileRef = F30D9C9D212CD0990047DF2E /* SDL_sensor.c */; };
+		52ED1E50222889500061FCE0 /* SDL_hidapi_switch.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD78C20F51CB8004ECBF3 /* SDL_hidapi_switch.c */; };
+		52ED1E51222889500061FCE0 /* SDL_uikitviewcontroller.m in Sources */ = {isa = PBXBuildFile; fileRef = 93CB792513FC5F5300BD3E05 /* SDL_uikitviewcontroller.m */; };
+		52ED1E52222889500061FCE0 /* SDL_rotate.c in Sources */ = {isa = PBXBuildFile; fileRef = AA628AD9159369E3005138DD /* SDL_rotate.c */; };
+		52ED1E53222889500061FCE0 /* SDL_uikitmodes.m in Sources */ = {isa = PBXBuildFile; fileRef = AA126AD31617C5E6005ABC8F /* SDL_uikitmodes.m */; };
+		52ED1E54222889500061FCE0 /* SDL_dropevents.c in Sources */ = {isa = PBXBuildFile; fileRef = AA704DD5162AA90A0076D1C1 /* SDL_dropevents.c */; };
+		52ED1E55222889500061FCE0 /* SDL_uikitmessagebox.m in Sources */ = {isa = PBXBuildFile; fileRef = AABCC3931640643D00AB8930 /* SDL_uikitmessagebox.m */; };
+		52ED1E56222889500061FCE0 /* SDL_gamecontroller.c in Sources */ = {isa = PBXBuildFile; fileRef = AA0AD06116647BBB00CE5896 /* SDL_gamecontroller.c */; };
+		52ED1E57222889500061FCE0 /* SDL_systls.c in Sources */ = {isa = PBXBuildFile; fileRef = AA0F8494178D5F1A00823F9D /* SDL_systls.c */; };
+		52ED1E58222889500061FCE0 /* SDL_sysfilesystem.m in Sources */ = {isa = PBXBuildFile; fileRef = 56C181E117C44D7A00406AE3 /* SDL_sysfilesystem.m */; };
+		52ED1E6C22288B8C0061FCE0 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E6B22288B8C0061FCE0 /* QuartzCore.framework */; };
+		52ED1E6E22288B960061FCE0 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E6D22288B960061FCE0 /* CoreAudio.framework */; };
+		52ED1E7022288BA20061FCE0 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E6F22288BA20061FCE0 /* AudioToolbox.framework */; };
+		52ED1E7222288BAC0061FCE0 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7122288BAC0061FCE0 /* AVFoundation.framework */; };
+		52ED1E7422288BB70061FCE0 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7322288BB70061FCE0 /* CoreBluetooth.framework */; };
+		52ED1E7622288BC10061FCE0 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7522288BC10061FCE0 /* CoreGraphics.framework */; };
+		52ED1E7822288BCA0061FCE0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7722288BCA0061FCE0 /* UIKit.framework */; };
+		52ED1E7A22288BDD0061FCE0 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7922288BDD0061FCE0 /* GameController.framework */; };
+		52ED1E7C22288BE70061FCE0 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7B22288BE70061FCE0 /* CoreMotion.framework */; };
+		52ED1E7E22288BF00061FCE0 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7D22288BF00061FCE0 /* Metal.framework */; };
+		52ED1E8022288BFA0061FCE0 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 52ED1E7F22288BFA0061FCE0 /* OpenGLES.framework */; };
 		55FFA91A2122302B00D7CBED /* SDL_syspower.h in Headers */ = {isa = PBXBuildFile; fileRef = 55FFA9192122302B00D7CBED /* SDL_syspower.h */; };
 		566726451DF72CF5001DD3DB /* SDL_dataqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 566726431DF72CF5001DD3DB /* SDL_dataqueue.c */; };
 		566726461DF72CF5001DD3DB /* SDL_dataqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 566726441DF72CF5001DD3DB /* SDL_dataqueue.h */; };
@@ -224,6 +470,8 @@
 		F3BDD79D20F51CB8004ECBF3 /* SDL_hidapijoystick.c in Sources */ = {isa = PBXBuildFile; fileRef = F3BDD79120F51CB8004ECBF3 /* SDL_hidapijoystick.c */; };
 		F3E3C55D223DEC6C007D243C /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = F3E3C55C223DEC6C007D243C /* SDL_hidapi_gamecube.c */; };
 		F3E3C55E223DEC6C007D243C /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = F3E3C55C223DEC6C007D243C /* SDL_hidapi_gamecube.c */; };
+		F3E3C55F224065AE007D243C /* SDL_hidapi_gamecube.c in Sources */ = {isa = PBXBuildFile; fileRef = F3E3C55C223DEC6C007D243C /* SDL_hidapi_gamecube.c */; };
+		F3E3C658224069CE007D243C /* SDL_uikit_main.c in Sources */ = {isa = PBXBuildFile; fileRef = F3E3C657224069CE007D243C /* SDL_uikit_main.c */; };
 		FA1DC2721C62BE65008F99A0 /* SDL_uikitclipboard.h in Headers */ = {isa = PBXBuildFile; fileRef = FA1DC2701C62BE65008F99A0 /* SDL_uikitclipboard.h */; };
 		FA1DC2731C62BE65008F99A0 /* SDL_uikitclipboard.m in Sources */ = {isa = PBXBuildFile; fileRef = FA1DC2711C62BE65008F99A0 /* SDL_uikitclipboard.m */; };
 		FAB5981D1BB5C31500BE72C5 /* SDL_atomic.c in Sources */ = {isa = PBXBuildFile; fileRef = 04FFAB8912E23B8D00BA343D /* SDL_atomic.c */; };
@@ -445,6 +693,18 @@
 		4D7517191EE1D32200820EEA /* SDL_uikitmetalview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitmetalview.h; sourceTree = "<group>"; };
 		4D75171D1EE1D98200820EEA /* SDL_vulkan_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_vulkan_internal.h; sourceTree = "<group>"; };
 		4D75171E1EE1D98200820EEA /* SDL_vulkan_utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_vulkan_utils.c; sourceTree = "<group>"; };
+		52ED1E5C222889500061FCE0 /* libSDL2.dylib */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
+		52ED1E6B22288B8C0061FCE0 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+		52ED1E6D22288B960061FCE0 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
+		52ED1E6F22288BA20061FCE0 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
+		52ED1E7122288BAC0061FCE0 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
+		52ED1E7322288BB70061FCE0 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; };
+		52ED1E7522288BC10061FCE0 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+		52ED1E7722288BCA0061FCE0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+		52ED1E7922288BDD0061FCE0 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
+		52ED1E7B22288BE70061FCE0 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
+		52ED1E7D22288BF00061FCE0 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
+		52ED1E7F22288BFA0061FCE0 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
 		55FFA9192122302B00D7CBED /* SDL_syspower.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_syspower.h; sourceTree = "<group>"; };
 		566726431DF72CF5001DD3DB /* SDL_dataqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_dataqueue.c; sourceTree = "<group>"; };
 		566726441DF72CF5001DD3DB /* SDL_dataqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_dataqueue.h; sourceTree = "<group>"; };
@@ -556,6 +816,8 @@
 		F3BDD79020F51CB8004ECBF3 /* SDL_hidapijoystick_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_hidapijoystick_c.h; sourceTree = "<group>"; };
 		F3BDD79120F51CB8004ECBF3 /* SDL_hidapijoystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapijoystick.c; sourceTree = "<group>"; };
 		F3E3C55C223DEC6C007D243C /* SDL_hidapi_gamecube.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_hidapi_gamecube.c; sourceTree = "<group>"; };
+		F3E3C65222406928007D243C /* libSDLmain.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDLmain.a; sourceTree = BUILT_PRODUCTS_DIR; };
+		F3E3C657224069CE007D243C /* SDL_uikit_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SDL_uikit_main.c; sourceTree = "<group>"; };
 		FA1DC2701C62BE65008F99A0 /* SDL_uikitclipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDL_uikitclipboard.h; sourceTree = "<group>"; };
 		FA1DC2711C62BE65008F99A0 /* SDL_uikitclipboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDL_uikitclipboard.m; sourceTree = "<group>"; };
 		FAB598141BB5C1B100BE72C5 /* libSDL2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSDL2.a; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -656,6 +918,27 @@
 		FDC261780E3A3FC8001C4554 /* keyinfotable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = keyinfotable.h; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
+/* Begin PBXFrameworksBuildPhase section */
+		52ED1E6922288B720061FCE0 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				52ED1E8022288BFA0061FCE0 /* OpenGLES.framework in Frameworks */,
+				52ED1E7E22288BF00061FCE0 /* Metal.framework in Frameworks */,
+				52ED1E7C22288BE70061FCE0 /* CoreMotion.framework in Frameworks */,
+				52ED1E7A22288BDD0061FCE0 /* GameController.framework in Frameworks */,
+				52ED1E7822288BCA0061FCE0 /* UIKit.framework in Frameworks */,
+				52ED1E7622288BC10061FCE0 /* CoreGraphics.framework in Frameworks */,
+				52ED1E7422288BB70061FCE0 /* CoreBluetooth.framework in Frameworks */,
+				52ED1E7222288BAC0061FCE0 /* AVFoundation.framework in Frameworks */,
+				52ED1E7022288BA20061FCE0 /* AudioToolbox.framework in Frameworks */,
+				52ED1E6E22288B960061FCE0 /* CoreAudio.framework in Frameworks */,
+				52ED1E6C22288B8C0061FCE0 /* QuartzCore.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
 /* Begin PBXGroup section */
 		006E9885119552DD001DE610 /* cocoa */ = {
 			isa = PBXGroup;
@@ -761,6 +1044,8 @@
 			children = (
 				FD6526630DE8FCCB002AD96B /* libSDL2.a */,
 				FAB598141BB5C1B100BE72C5 /* libSDL2.a */,
+				52ED1E5C222889500061FCE0 /* libSDL2.dylib */,
+				F3E3C65222406928007D243C /* libSDLmain.a */,
 			);
 			name = Products;
 			sourceTree = "<group>";
@@ -771,11 +1056,30 @@
 				FD99B8BC0DD52E5C00FB1D6B /* Public Headers */,
 				FD99B8BD0DD52E6D00FB1D6B /* Library Source */,
 				19C28FACFE9D520D11CA2CBB /* Products */,
+				52ED1E6A22288B8C0061FCE0 /* Frameworks */,
 			);
 			name = CustomTemplate;
 			sourceTree = "<group>";
 			usesTabs = 0;
 		};
+		52ED1E6A22288B8C0061FCE0 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				52ED1E7F22288BFA0061FCE0 /* OpenGLES.framework */,
+				52ED1E7D22288BF00061FCE0 /* Metal.framework */,
+				52ED1E7B22288BE70061FCE0 /* CoreMotion.framework */,
+				52ED1E7922288BDD0061FCE0 /* GameController.framework */,
+				52ED1E7722288BCA0061FCE0 /* UIKit.framework */,
+				52ED1E7522288BC10061FCE0 /* CoreGraphics.framework */,
+				52ED1E7322288BB70061FCE0 /* CoreBluetooth.framework */,
+				52ED1E7122288BAC0061FCE0 /* AVFoundation.framework */,
+				52ED1E6F22288BA20061FCE0 /* AudioToolbox.framework */,
+				52ED1E6D22288B960061FCE0 /* CoreAudio.framework */,
+				52ED1E6B22288B8C0061FCE0 /* QuartzCore.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
 		56A6702F18565E4F0007D20F /* dynapi */ = {
 			isa = PBXGroup;
 			children = (
@@ -902,6 +1206,22 @@
 			path = hidapi;
 			sourceTree = "<group>";
 		};
+		F3E3C65322406963007D243C /* main */ = {
+			isa = PBXGroup;
+			children = (
+				F3E3C656224069A1007D243C /* uikit */,
+			);
+			path = main;
+			sourceTree = "<group>";
+		};
+		F3E3C656224069A1007D243C /* uikit */ = {
+			isa = PBXGroup;
+			children = (
+				F3E3C657224069CE007D243C /* SDL_uikit_main.c */,
+			);
+			path = uikit;
+			sourceTree = "<group>";
+		};
 		FD3F4A6F0DEA620800C5B771 /* stdlib */ = {
 			isa = PBXGroup;
 			children = (
@@ -1067,6 +1387,7 @@
 				F35CEA6E20F51B7F003ECE98 /* hidapi */,
 				FD5F9D080E0E08B3008E885B /* joystick */,
 				FD8BD8150E27E25900B52CD5 /* loadso */,
+				F3E3C65322406963007D243C /* main */,
 				56ED04DE118A8E9A00A56AA6 /* power */,
 				041B2CE312FA0F680087D585 /* render */,
 				F30D9C9A212CD0590047DF2E /* sensor */,
@@ -1266,6 +1587,142 @@
 /* End PBXGroup section */
 
 /* Begin PBXHeadersBuildPhase section */
+		52ED1D6C222889500061FCE0 /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				52ED1D6D222889500061FCE0 /* SDL_blit.h in Headers */,
+				52ED1D6E222889500061FCE0 /* SDL_uikitmetalview.h in Headers */,
+				52ED1D6F222889500061FCE0 /* SDL_vulkan_internal.h in Headers */,
+				52ED1D70222889500061FCE0 /* SDL_blit_auto.h in Headers */,
+				52ED1D71222889500061FCE0 /* SDL_blit_copy.h in Headers */,
+				52ED1D72222889500061FCE0 /* SDL_pixels_c.h in Headers */,
+				52ED1D73222889500061FCE0 /* SDL_dynapi_procs.h in Headers */,
+				52ED1D74222889500061FCE0 /* SDL_RLEaccel_c.h in Headers */,
+				52ED1D75222889500061FCE0 /* SDL_sysvideo.h in Headers */,
+				52ED1D76222889500061FCE0 /* SDL_nullevents_c.h in Headers */,
+				52ED1D77222889500061FCE0 /* SDL_nullvideo.h in Headers */,
+				52ED1D78222889500061FCE0 /* SDL_joystick_c.h in Headers */,
+				52ED1D79222889500061FCE0 /* SDL_sysjoystick.h in Headers */,
+				52ED1D7A222889500061FCE0 /* SDL_uikitevents.h in Headers */,
+				52ED1D7B222889500061FCE0 /* SDL_uikitopengles.h in Headers */,
+				52ED1D7C222889500061FCE0 /* SDL_uikitvideo.h in Headers */,
+				52ED1D7D222889500061FCE0 /* SDL_uikitwindow.h in Headers */,
+				52ED1D7E222889500061FCE0 /* SDL_uikitopenglview.h in Headers */,
+				52ED1D7F222889500061FCE0 /* SDL_dynapi.h in Headers */,
+				52ED1D80222889500061FCE0 /* SDL_uikitappdelegate.h in Headers */,
+				52ED1D81222889500061FCE0 /* SDL_dynapi_overrides.h in Headers */,
+				52ED1D82222889500061FCE0 /* yuv_rgb_std_func.h in Headers */,
+				52ED1D83222889500061FCE0 /* SDL_syshaptic.h in Headers */,
+				52ED1D84222889500061FCE0 /* SDL_blit_slow.h in Headers */,
+				52ED1D85222889500061FCE0 /* SDL_rwopsbundlesupport.h in Headers */,
+				52ED1D86222889500061FCE0 /* SDL_clipboardevents_c.h in Headers */,
+				52ED1D87222889500061FCE0 /* SDL_rect_c.h in Headers */,
+				52ED1D88222889500061FCE0 /* yuv_rgb_sse_func.h in Headers */,
+				52ED1D89222889500061FCE0 /* SDL_gesture_c.h in Headers */,
+				52ED1D8A222889500061FCE0 /* SDL_touch_c.h in Headers */,
+				52ED1D8B222889500061FCE0 /* SDL_sysrender.h in Headers */,
+				52ED1D8C222889500061FCE0 /* SDL_yuv_sw_c.h in Headers */,
+				52ED1D8D222889500061FCE0 /* yuv_rgb.h in Headers */,
+				52ED1D8E222889500061FCE0 /* SDL_blendfillrect.h in Headers */,
+				52ED1D8F222889500061FCE0 /* SDL_blendline.h in Headers */,
+				52ED1D90222889500061FCE0 /* SDL_hidapijoystick_c.h in Headers */,
+				52ED1D91222889500061FCE0 /* SDL_blendpoint.h in Headers */,
+				52ED1D92222889500061FCE0 /* SDL_draw.h in Headers */,
+				52ED1D93222889500061FCE0 /* SDL_drawline.h in Headers */,
+				52ED1D94222889500061FCE0 /* SDL_yuv_c.h in Headers */,
+				52ED1D95222889500061FCE0 /* SDL_drawpoint.h in Headers */,
+				52ED1D96222889500061FCE0 /* SDL_nullframebuffer_c.h in Headers */,
+				52ED1D97222889500061FCE0 /* SDL_render_sw_c.h in Headers */,
+				52ED1D98222889500061FCE0 /* SDL_uikitclipboard.h in Headers */,
+				52ED1D99222889500061FCE0 /* SDL_shaders_gles2.h in Headers */,
+				52ED1D9A222889500061FCE0 /* SDL_assert_c.h in Headers */,
+				52ED1D9B222889500061FCE0 /* SDL_coreaudio.h in Headers */,
+				52ED1D9C222889500061FCE0 /* SDL_uikitviewcontroller.h in Headers */,
+				52ED1D9D222889500061FCE0 /* SDL_rotate.h in Headers */,
+				52ED1D9E222889500061FCE0 /* begin_code.h in Headers */,
+				52ED1D9F222889500061FCE0 /* close_code.h in Headers */,
+				52ED1DA0222889500061FCE0 /* SDL_assert.h in Headers */,
+				52ED1DA1222889500061FCE0 /* SDL_atomic.h in Headers */,
+				52ED1DA2222889500061FCE0 /* SDL_audio.h in Headers */,
+				52ED1DA3222889500061FCE0 /* SDL_syspower.h in Headers */,
+				52ED1DA4222889500061FCE0 /* SDL_blendmode.h in Headers */,
+				52ED1DA5222889500061FCE0 /* SDL_sensor_c.h in Headers */,
+				52ED1DA6222889500061FCE0 /* SDL_clipboard.h in Headers */,
+				52ED1DA7222889500061FCE0 /* SDL_config_iphoneos.h in Headers */,
+				52ED1DA8222889500061FCE0 /* SDL_config.h in Headers */,
+				52ED1DA9222889500061FCE0 /* SDL_copying.h in Headers */,
+				52ED1DAA222889500061FCE0 /* SDL_egl_c.h in Headers */,
+				52ED1DAB222889500061FCE0 /* SDL_cpuinfo.h in Headers */,
+				52ED1DAC222889500061FCE0 /* SDL_endian.h in Headers */,
+				52ED1DAD222889500061FCE0 /* SDL_error.h in Headers */,
+				52ED1DAE222889500061FCE0 /* SDL_internal.h in Headers */,
+				52ED1DAF222889500061FCE0 /* SDL_events.h in Headers */,
+				52ED1DB0222889500061FCE0 /* SDL_gesture.h in Headers */,
+				52ED1DB1222889500061FCE0 /* SDL_haptic.h in Headers */,
+				52ED1DB2222889500061FCE0 /* SDL_hints.h in Headers */,
+				52ED1DB3222889500061FCE0 /* SDL_dataqueue.h in Headers */,
+				52ED1DB4222889500061FCE0 /* SDL_syssensor.h in Headers */,
+				52ED1DB5222889500061FCE0 /* SDL_joystick.h in Headers */,
+				52ED1DB6222889500061FCE0 /* SDL_shape_internals.h in Headers */,
+				52ED1DB7222889500061FCE0 /* SDL_keyboard.h in Headers */,
+				52ED1DB8222889500061FCE0 /* controller_type.h in Headers */,
+				52ED1DB9222889500061FCE0 /* SDL_keycode.h in Headers */,
+				52ED1DBA222889500061FCE0 /* SDL_loadso.h in Headers */,
+				52ED1DBB222889500061FCE0 /* SDL_log.h in Headers */,
+				52ED1DBC222889500061FCE0 /* SDL_coremotionsensor.h in Headers */,
+				52ED1DBD222889500061FCE0 /* SDL_main.h in Headers */,
+				52ED1DBE222889500061FCE0 /* SDL_mouse.h in Headers */,
+				52ED1DBF222889500061FCE0 /* SDL_displayevents_c.h in Headers */,
+				52ED1DC0222889500061FCE0 /* SDL_mutex.h in Headers */,
+				52ED1DC1222889500061FCE0 /* SDL_name.h in Headers */,
+				52ED1DC2222889500061FCE0 /* SDL_opengl.h in Headers */,
+				52ED1DC3222889500061FCE0 /* SDL_opengles.h in Headers */,
+				52ED1DC4222889500061FCE0 /* SDL_shaders_metal_ios.h in Headers */,
+				52ED1DC5222889500061FCE0 /* SDL_opengles2.h in Headers */,
+				52ED1DC6222889500061FCE0 /* SDL_pixels.h in Headers */,
+				52ED1DC7222889500061FCE0 /* SDL_platform.h in Headers */,
+				52ED1DC8222889500061FCE0 /* SDL_power.h in Headers */,
+				52ED1DC9222889500061FCE0 /* SDL_quit.h in Headers */,
+				52ED1DCA222889500061FCE0 /* SDL_rect.h in Headers */,
+				52ED1DCB222889500061FCE0 /* SDL_render.h in Headers */,
+				52ED1DCC222889500061FCE0 /* SDL_revision.h in Headers */,
+				52ED1DCD222889500061FCE0 /* SDL_rwops.h in Headers */,
+				52ED1DCE222889500061FCE0 /* SDL_scancode.h in Headers */,
+				52ED1DCF222889500061FCE0 /* SDL_shape.h in Headers */,
+				52ED1DD0222889500061FCE0 /* SDL_stdinc.h in Headers */,
+				52ED1DD1222889500061FCE0 /* SDL_sysjoystick_c.h in Headers */,
+				52ED1DD2222889500061FCE0 /* SDL_surface.h in Headers */,
+				52ED1DD3222889500061FCE0 /* SDL_system.h in Headers */,
+				52ED1DD4222889500061FCE0 /* SDL_sensor.h in Headers */,
+				52ED1DD5222889500061FCE0 /* SDL_syswm.h in Headers */,
+				52ED1DD6222889500061FCE0 /* SDL_thread.h in Headers */,
+				52ED1DD7222889500061FCE0 /* SDL_timer.h in Headers */,
+				52ED1DD8222889500061FCE0 /* SDL_touch.h in Headers */,
+				52ED1DD9222889500061FCE0 /* SDL_types.h in Headers */,
+				52ED1DDA222889500061FCE0 /* SDL_version.h in Headers */,
+				52ED1DDB222889500061FCE0 /* SDL_vulkan.h in Headers */,
+				52ED1DDC222889500061FCE0 /* SDL_video.h in Headers */,
+				52ED1DDD222889500061FCE0 /* SDL.h in Headers */,
+				52ED1DDE222889500061FCE0 /* SDL_uikitvulkan.h in Headers */,
+				52ED1DDF222889500061FCE0 /* SDL_uikitmodes.h in Headers */,
+				52ED1DE0222889500061FCE0 /* SDL_dropevents_c.h in Headers */,
+				52ED1DE1222889500061FCE0 /* SDL_messagebox.h in Headers */,
+				52ED1DE2222889500061FCE0 /* SDL_uikitmessagebox.h in Headers */,
+				52ED1DE3222889500061FCE0 /* SDL_gamecontroller.h in Headers */,
+				52ED1DE4222889500061FCE0 /* SDL_dummysensor.h in Headers */,
+				52ED1DE5222889500061FCE0 /* SDL_bits.h in Headers */,
+				52ED1DE6222889500061FCE0 /* SDL_filesystem.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F3E3C56122406928007D243C /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		FD65265F0DE8FCCB002AD96B /* Headers */ = {
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
@@ -1398,6 +1855,39 @@
 /* End PBXHeadersBuildPhase section */
 
 /* Begin PBXNativeTarget section */
+		52ED1D6B222889500061FCE0 /* libSDL-iOS-dylib */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 52ED1E59222889500061FCE0 /* Build configuration list for PBXNativeTarget "libSDL-iOS-dylib" */;
+			buildPhases = (
+				52ED1D6C222889500061FCE0 /* Headers */,
+				52ED1DE7222889500061FCE0 /* Sources */,
+				52ED1E6922288B720061FCE0 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "libSDL-iOS-dylib";
+			productName = iPhoneSDLStaticLib;
+			productReference = 52ED1E5C222889500061FCE0 /* libSDL2.dylib */;
+			productType = "com.apple.product-type.library.static";
+		};
+		F3E3C56022406928007D243C /* libSDLmain-iOS */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = F3E3C64F22406928007D243C /* Build configuration list for PBXNativeTarget "libSDLmain-iOS" */;
+			buildPhases = (
+				F3E3C56122406928007D243C /* Headers */,
+				F3E3C5DC22406928007D243C /* Sources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "libSDLmain-iOS";
+			productName = iPhoneSDLStaticLib;
+			productReference = F3E3C65222406928007D243C /* libSDLmain.a */;
+			productType = "com.apple.product-type.library.static";
+		};
 		FAB598131BB5C1B100BE72C5 /* libSDL-tvOS */ = {
 			isa = PBXNativeTarget;
 			buildConfigurationList = FAB5981A1BB5C1B100BE72C5 /* Build configuration list for PBXNativeTarget "libSDL-tvOS" */;
@@ -1464,7 +1954,9 @@
 			projectRoot = ../..;
 			targets = (
 				FD6526620DE8FCCB002AD96B /* libSDL-iOS */,
+				52ED1D6B222889500061FCE0 /* libSDL-iOS-dylib */,
 				FAB598131BB5C1B100BE72C5 /* libSDL-tvOS */,
+				F3E3C56022406928007D243C /* libSDLmain-iOS */,
 				00B4F48B12F6A69C0084EC00 /* PrepareXcodeProjectTemplate */,
 				C143576D1F4C4DAA000B792B /* All-iOS */,
 				C14357721F4C4F2A000B792B /* All-tvOS */,
@@ -1520,6 +2012,135 @@
 /* End PBXShellScriptBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
+		52ED1DE7222889500061FCE0 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				52ED1DE8222889500061FCE0 /* SDL_systimer.c in Sources */,
+				52ED1DE9222889500061FCE0 /* SDL_timer.c in Sources */,
+				52ED1DEA222889500061FCE0 /* SDL_coremotionsensor.m in Sources */,
+				52ED1DEB222889500061FCE0 /* SDL_string.c in Sources */,
+				52ED1DEC222889500061FCE0 /* SDL_dummyaudio.c in Sources */,
+				52ED1DED222889500061FCE0 /* SDL_audio.c in Sources */,
+				52ED1DEE222889500061FCE0 /* SDL_audiocvt.c in Sources */,
+				52ED1DEF222889500061FCE0 /* SDL_audiotypecvt.c in Sources */,
+				52ED1DF0222889500061FCE0 /* SDL_mixer.c in Sources */,
+				52ED1DF1222889500061FCE0 /* SDL_wave.c in Sources */,
+				52ED1DF2222889500061FCE0 /* SDL_uikitvulkan.m in Sources */,
+				52ED1DF3222889500061FCE0 /* SDL_uikitclipboard.m in Sources */,
+				52ED1DF4222889500061FCE0 /* SDL_cpuinfo.c in Sources */,
+				52ED1DF5222889500061FCE0 /* SDL_events.c in Sources */,
+				52ED1DF6222889500061FCE0 /* SDL_keyboard.c in Sources */,
+				52ED1DF7222889500061FCE0 /* SDL_dynapi.c in Sources */,
+				52ED1DF8222889500061FCE0 /* SDL_mouse.c in Sources */,
+				52ED1DF9222889500061FCE0 /* SDL_quit.c in Sources */,
+				52ED1DFA222889500061FCE0 /* SDL_windowevents.c in Sources */,
+				52ED1DFB222889500061FCE0 /* SDL_uikitmetalview.m in Sources */,
+				52ED1DFC222889500061FCE0 /* SDL_rwops.c in Sources */,
+				52ED1DFD222889500061FCE0 /* hid.m in Sources */,
+				52ED1DFE222889500061FCE0 /* SDL_vulkan_utils.c in Sources */,
+				52ED1DFF222889500061FCE0 /* SDL_error.c in Sources */,
+				52ED1E00222889500061FCE0 /* SDL.c in Sources */,
+				52ED1E01222889500061FCE0 /* SDL_syscond.c in Sources */,
+				52ED1E02222889500061FCE0 /* SDL_render_metal.m in Sources */,
+				52ED1E03222889500061FCE0 /* SDL_sysmutex.c in Sources */,
+				52ED1E04222889500061FCE0 /* SDL_syssem.c in Sources */,
+				52ED1E05222889500061FCE0 /* SDL_systhread.c in Sources */,
+				52ED1E06222889500061FCE0 /* SDL_thread.c in Sources */,
+				52ED1E07222889500061FCE0 /* SDL_getenv.c in Sources */,
+				52ED1E08222889500061FCE0 /* SDL_iconv.c in Sources */,
+				52ED1E09222889500061FCE0 /* SDL_malloc.c in Sources */,
+				52ED1E0A222889500061FCE0 /* SDL_hidapi_xbox360.c in Sources */,
+				52ED1E0B222889500061FCE0 /* SDL_qsort.c in Sources */,
+				52ED1E0C222889500061FCE0 /* SDL_hidapi_ps4.c in Sources */,
+				52ED1E0D222889500061FCE0 /* SDL_stdlib.c in Sources */,
+				52ED1E0E222889500061FCE0 /* SDL_blit.c in Sources */,
+				52ED1E0F222889500061FCE0 /* SDL_blit_0.c in Sources */,
+				52ED1E10222889500061FCE0 /* SDL_yuv.c in Sources */,
+				52ED1E11222889500061FCE0 /* SDL_blit_1.c in Sources */,
+				52ED1E12222889500061FCE0 /* SDL_dataqueue.c in Sources */,
+				52ED1E13222889500061FCE0 /* SDL_blit_A.c in Sources */,
+				52ED1E14222889500061FCE0 /* SDL_blit_auto.c in Sources */,
+				52ED1E15222889500061FCE0 /* SDL_blit_copy.c in Sources */,
+				52ED1E16222889500061FCE0 /* SDL_blit_N.c in Sources */,
+				52ED1E17222889500061FCE0 /* SDL_blit_slow.c in Sources */,
+				52ED1E18222889500061FCE0 /* SDL_bmp.c in Sources */,
+				52ED1E19222889500061FCE0 /* SDL_pixels.c in Sources */,
+				52ED1E1A222889500061FCE0 /* SDL_rect.c in Sources */,
+				52ED1E1B222889500061FCE0 /* SDL_RLEaccel.c in Sources */,
+				52ED1E1C222889500061FCE0 /* SDL_stretch.c in Sources */,
+				52ED1E1D222889500061FCE0 /* SDL_egl.c in Sources */,
+				52ED1E1E222889500061FCE0 /* SDL_surface.c in Sources */,
+				52ED1E1F222889500061FCE0 /* SDL_video.c in Sources */,
+				52ED1E20222889500061FCE0 /* SDL_nullevents.c in Sources */,
+				52ED1E21222889500061FCE0 /* SDL_nullvideo.c in Sources */,
+				52ED1E22222889500061FCE0 /* SDL_joystick.c in Sources */,
+				52ED1E23222889500061FCE0 /* SDL_sysjoystick.m in Sources */,
+				52ED1E24222889500061FCE0 /* SDL_uikitevents.m in Sources */,
+				52ED1E25222889500061FCE0 /* yuv_rgb.c in Sources */,
+				52ED1E26222889500061FCE0 /* SDL_uikitopengles.m in Sources */,
+				F3E3C55F224065AE007D243C /* SDL_hidapi_gamecube.c in Sources */,
+				52ED1E27222889500061FCE0 /* SDL_uikitvideo.m in Sources */,
+				52ED1E28222889500061FCE0 /* SDL_uikitview.m in Sources */,
+				52ED1E29222889500061FCE0 /* SDL_displayevents.c in Sources */,
+				52ED1E2A222889500061FCE0 /* SDL_uikitwindow.m in Sources */,
+				52ED1E2B222889500061FCE0 /* SDL_uikitopenglview.m in Sources */,
+				52ED1E2C222889500061FCE0 /* SDL_uikitappdelegate.m in Sources */,
+				52ED1E2D222889500061FCE0 /* SDL_sysloadso.c in Sources */,
+				52ED1E2E222889500061FCE0 /* SDL_hidapijoystick.c in Sources */,
+				52ED1E2F222889500061FCE0 /* SDL_syshaptic.c in Sources */,
+				52ED1E30222889500061FCE0 /* SDL_haptic.c in Sources */,
+				52ED1E31222889500061FCE0 /* SDL_sysloadso.c in Sources */,
+				52ED1E32222889500061FCE0 /* SDL_fillrect.c in Sources */,
+				52ED1E33222889500061FCE0 /* SDL_assert.c in Sources */,
+				52ED1E34222889500061FCE0 /* SDL_hidapi_xboxone.c in Sources */,
+				52ED1E35222889500061FCE0 /* SDL_power.c in Sources */,
+				52ED1E36222889500061FCE0 /* SDL_syspower.m in Sources */,
+				52ED1E37222889500061FCE0 /* SDL_rwopsbundlesupport.m in Sources */,
+				52ED1E38222889500061FCE0 /* SDL_clipboard.c in Sources */,
+				52ED1E39222889500061FCE0 /* SDL_clipboardevents.c in Sources */,
+				52ED1E3A222889500061FCE0 /* SDL_gesture.c in Sources */,
+				52ED1E3B222889500061FCE0 /* SDL_touch.c in Sources */,
+				52ED1E3C222889500061FCE0 /* SDL_atomic.c in Sources */,
+				52ED1E3D222889500061FCE0 /* SDL_spinlock.c in Sources */,
+				52ED1E3E222889500061FCE0 /* SDL_render.c in Sources */,
+				52ED1E3F222889500061FCE0 /* SDL_yuv_sw.c in Sources */,
+				52ED1E40222889500061FCE0 /* SDL_blendfillrect.c in Sources */,
+				52ED1E41222889500061FCE0 /* SDL_blendline.c in Sources */,
+				52ED1E42222889500061FCE0 /* SDL_blendpoint.c in Sources */,
+				52ED1E43222889500061FCE0 /* SDL_drawline.c in Sources */,
+				52ED1E44222889500061FCE0 /* SDL_drawpoint.c in Sources */,
+				52ED1E45222889500061FCE0 /* SDL_nullframebuffer.c in Sources */,
+				52ED1E46222889500061FCE0 /* SDL_render_sw.c in Sources */,
+				52ED1E47222889500061FCE0 /* SDL_render_gles.c in Sources */,
+				52ED1E48222889500061FCE0 /* SDL_hints.c in Sources */,
+				52ED1E49222889500061FCE0 /* SDL_shape.c in Sources */,
+				52ED1E4A222889500061FCE0 /* SDL_render_gles2.c in Sources */,
+				52ED1E4B222889500061FCE0 /* SDL_dummysensor.c in Sources */,
+				52ED1E4C222889500061FCE0 /* SDL_shaders_gles2.c in Sources */,
+				52ED1E4D222889500061FCE0 /* SDL_log.c in Sources */,
+				52ED1E4E222889500061FCE0 /* SDL_coreaudio.m in Sources */,
+				52ED1E4F222889500061FCE0 /* SDL_sensor.c in Sources */,
+				52ED1E50222889500061FCE0 /* SDL_hidapi_switch.c in Sources */,
+				52ED1E51222889500061FCE0 /* SDL_uikitviewcontroller.m in Sources */,
+				52ED1E52222889500061FCE0 /* SDL_rotate.c in Sources */,
+				52ED1E53222889500061FCE0 /* SDL_uikitmodes.m in Sources */,
+				52ED1E54222889500061FCE0 /* SDL_dropevents.c in Sources */,
+				52ED1E55222889500061FCE0 /* SDL_uikitmessagebox.m in Sources */,
+				52ED1E56222889500061FCE0 /* SDL_gamecontroller.c in Sources */,
+				52ED1E57222889500061FCE0 /* SDL_systls.c in Sources */,
+				52ED1E58222889500061FCE0 /* SDL_sysfilesystem.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F3E3C5DC22406928007D243C /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				F3E3C658224069CE007D243C /* SDL_uikit_main.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		FAB598101BB5C1B100BE72C5 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -1783,6 +2404,50 @@
 			};
 			name = Release;
 		};
+		52ED1E5A222889500061FCE0 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES;
+				COPY_PHASE_STRIP = NO;
+				EXECUTABLE_EXTENSION = dylib;
+				GCC_PREPROCESSOR_DEFINITIONS = "IOS_DYLIB=1";
+				GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES;
+				GCC_WARN_STRICT_SELECTOR_MATCH = YES;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include";
+				LD_DYLIB_INSTALL_NAME = "@rpath/libSDL2.dylib";
+				MACH_O_TYPE = mh_dylib;
+				PRODUCT_MODULE_NAME = SDL2;
+				PRODUCT_NAME = SDL2;
+				SKIP_INSTALL = YES;
+			};
+			name = Debug;
+		};
+		52ED1E5B222889500061FCE0 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES;
+				COPY_PHASE_STRIP = YES;
+				EXECUTABLE_EXTENSION = dylib;
+				GCC_PREPROCESSOR_DEFINITIONS = "IOS_DYLIB=1";
+				GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES;
+				GCC_WARN_STRICT_SELECTOR_MATCH = YES;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include";
+				LD_DYLIB_INSTALL_NAME = "@rpath/libSDL2.dylib";
+				MACH_O_TYPE = mh_dylib;
+				PRODUCT_MODULE_NAME = SDL2;
+				PRODUCT_NAME = SDL2;
+				SKIP_INSTALL = YES;
+			};
+			name = Release;
+		};
 		C01FCF4F08A954540054247B /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
@@ -1890,6 +2555,40 @@
 			};
 			name = Release;
 		};
+		F3E3C65022406928007D243C /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES;
+				COPY_PHASE_STRIP = NO;
+				GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES;
+				GCC_WARN_STRICT_SELECTOR_MATCH = YES;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include";
+				PRODUCT_NAME = SDLmain;
+				SKIP_INSTALL = YES;
+			};
+			name = Debug;
+		};
+		F3E3C65122406928007D243C /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES;
+				COPY_PHASE_STRIP = YES;
+				GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = YES;
+				GCC_WARN_STRICT_SELECTOR_MATCH = YES;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				HEADER_SEARCH_PATHS = "$(VULKAN_SDK)/include";
+				PRODUCT_NAME = SDLmain;
+				SKIP_INSTALL = YES;
+			};
+			name = Release;
+		};
 		FAB5981B1BB5C1B100BE72C5 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
@@ -2022,6 +2721,15 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
+		52ED1E59222889500061FCE0 /* Build configuration list for PBXNativeTarget "libSDL-iOS-dylib" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				52ED1E5A222889500061FCE0 /* Debug */,
+				52ED1E5B222889500061FCE0 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
 		C01FCF4E08A954540054247B /* Build configuration list for PBXProject "SDL" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
@@ -2049,6 +2757,15 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
+		F3E3C64F22406928007D243C /* Build configuration list for PBXNativeTarget "libSDLmain-iOS" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				F3E3C65022406928007D243C /* Debug */,
+				F3E3C65122406928007D243C /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
 		FAB5981A1BB5C1B100BE72C5 /* Build configuration list for PBXNativeTarget "libSDL-tvOS" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (
diff --git a/Xcode/SDL/SDL.xcodeproj/project.pbxproj b/Xcode/SDL/SDL.xcodeproj/project.pbxproj
old mode 100644
new mode 100755
diff --git a/include/SDL_main.h b/include/SDL_main.h
index 9756b5d..658fd7c 100644
--- a/include/SDL_main.h
+++ b/include/SDL_main.h
@@ -55,6 +55,10 @@
 /* On iOS SDL provides a main function that creates an application delegate
    and starts the iOS application run loop.
 
+   If you link with SDL dynamically on iOS, the main function can't be in a
+   shared library, so you need to link with libSDLmain.a, which includes a
+   stub main function that calls into the shared library to start execution.
+
    See src/video/uikit/SDL_uikitappdelegate.m for more details.
  */
 #define SDL_MAIN_NEEDED
@@ -114,6 +118,7 @@
 /**
  *  The prototype for the application's main() function
  */
+typedef C_LINKAGE SDLMAIN_DECLSPEC int (*SDL_main_func)(int argc, char *argv[]);
 extern C_LINKAGE SDLMAIN_DECLSPEC int SDL_main(int argc, char *argv[]);
 
 
@@ -136,8 +141,7 @@ extern DECLSPEC void SDLCALL SDL_SetMainReady(void);
 /**
  *  This can be called to set the application class at startup
  */
-extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style,
-                                            void *hInst);
+extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style, void *hInst);
 extern DECLSPEC void SDLCALL SDL_UnregisterApp(void);
 
 #endif /* __WIN32__ */
@@ -153,10 +157,24 @@ extern DECLSPEC void SDLCALL SDL_UnregisterApp(void);
  *  \return 0 on success, -1 on failure.  On failure, use SDL_GetError to retrieve more
  *      information on the failure.
  */
-extern DECLSPEC int SDLCALL SDL_WinRTRunApp(int (*mainFunction)(int, char **), void * reserved);
+extern DECLSPEC int SDLCALL SDL_WinRTRunApp(SDL_main_func mainFunction, void * reserved);
 
 #endif /* __WINRT__ */
 
+#if defined(__IPHONEOS__)
+
+/**
+ *  \brief Initializes and launches an SDL application.
+ *
+ *  \param argc The argc parameter from the application's main() function
+ *  \param argv The argv parameter from the application's main() function
+ *  \param mainFunction The SDL app's C-style main().
+ *  \return the return value from mainFunction
+ */
+extern DECLSPEC int SDLCALL SDL_UIKitRunApp(int argc, char *argv[], SDL_main_func mainFunction);
+
+#endif /* __IPHONEOS__ */
+
 
 #ifdef __cplusplus
 }
diff --git a/src/core/winrt/SDL_winrtapp_common.cpp b/src/core/winrt/SDL_winrtapp_common.cpp
index e772c9f..cee2a2b 100644
--- a/src/core/winrt/SDL_winrtapp_common.cpp
+++ b/src/core/winrt/SDL_winrtapp_common.cpp
@@ -29,7 +29,7 @@
 int (*WINRT_SDLAppEntryPoint)(int, char **) = NULL;
 
 extern "C" DECLSPEC int
-SDL_WinRTRunApp(int (*mainFunction)(int, char **), void * xamlBackgroundPanel)
+SDL_WinRTRunApp(SDL_main_func mainFunction, void * xamlBackgroundPanel)
 {
     if (xamlBackgroundPanel) {
         return SDL_WinRTInitXAMLApp(mainFunction, xamlBackgroundPanel);
@@ -63,4 +63,4 @@ SDL_WinRTGetDeviceFamily()
 #endif
 
     return SDL_WINRT_DEVICEFAMILY_UNKNOWN;
-}
\ No newline at end of file
+}
diff --git a/src/dynapi/SDL_dynapi_overrides.h b/src/dynapi/SDL_dynapi_overrides.h
index 73abc66..2583524 100644
--- a/src/dynapi/SDL_dynapi_overrides.h
+++ b/src/dynapi/SDL_dynapi_overrides.h
@@ -713,3 +713,4 @@
 #define SDL_RenderCopyF SDL_RenderCopyF_REAL
 #define SDL_RenderCopyExF SDL_RenderCopyExF_REAL
 #define SDL_GetTouchDeviceType SDL_GetTouchDeviceType_REAL
+#define SDL_UIKitRunApp SDL_UIKitRunApp_REAL
diff --git a/src/dynapi/SDL_dynapi_procs.h b/src/dynapi/SDL_dynapi_procs.h
index 489b969..3bf0a45 100644
--- a/src/dynapi/SDL_dynapi_procs.h
+++ b/src/dynapi/SDL_dynapi_procs.h
@@ -767,3 +767,6 @@ SDL_DYNAPI_PROC(int,SDL_RenderFillRectsF,(SDL_Renderer *a, const SDL_FRect *b, i
 SDL_DYNAPI_PROC(int,SDL_RenderCopyF,(SDL_Renderer *a, SDL_Texture *b, const SDL_Rect *c, const SDL_FRect *d),(a,b,c,d),return)
 SDL_DYNAPI_PROC(int,SDL_RenderCopyExF,(SDL_Renderer *a, SDL_Texture *b, const SDL_Rect *c, const SDL_FRect *d, const double e, const SDL_FPoint *f, const SDL_RendererFlip g),(a,b,c,d,e,f,g),return)
 SDL_DYNAPI_PROC(SDL_TouchDeviceType,SDL_GetTouchDeviceType,(SDL_TouchID a),(a),return)
+#ifdef __IPHONEOS__
+SDL_DYNAPI_PROC(int,SDL_UIKitRunApp,(int a, char *b, SDL_main_func c),(a,b,c),return)
+#endif
diff --git a/src/main/uikit/SDL_uikit_main.c b/src/main/uikit/SDL_uikit_main.c
new file mode 100644
index 0000000..7bbf59f
--- /dev/null
+++ b/src/main/uikit/SDL_uikit_main.c
@@ -0,0 +1,19 @@
+/*
+    SDL_uiki_main.c, placed in the public domain by Sam Lantinga  3/18/2019
+*/
+#include "../../SDL_internal.h"
+
+/* Include the SDL main definition header */
+#include "SDL_main.h"
+
+#ifdef main
+#undef main
+#endif
+
+int
+main(int argc, char *argv[])
+{
+    return SDL_UIKitRunApp(argc, argv, SDL_main);
+}
+
+/* vi: set ts=4 sw=4 expandtab: */
diff --git a/src/video/uikit/SDL_uikitappdelegate.m b/src/video/uikit/SDL_uikitappdelegate.m
index 4e73b40..8d3e3c4 100644
--- a/src/video/uikit/SDL_uikitappdelegate.m
+++ b/src/video/uikit/SDL_uikitappdelegate.m
@@ -38,15 +38,25 @@
 #undef main
 #endif
 
+static SDL_main_func forward_main;
 static int forward_argc;
 static char **forward_argv;
 static int exit_status;
 
-int main(int argc, char **argv)
+#if defined(SDL_MAIN_NEEDED) && !defined(IOS_DYLIB)
+/* SDL is being built as a static library, include main() */
+int main(int argc, char *argv[])
+{
+	return SDL_UIKitRunApp(argc, argv, SDL_main);
+}
+#endif /* SDL_MAIN_NEEDED && !IOS_DYLIB */
+
+int SDL_UIKitRunApp(int argc, char *argv[], SDL_main_func mainFunction)
 {
     int i;
 
     /* store arguments */
+	forward_main = mainFunction;
     forward_argc = argc;
     forward_argv = (char **)malloc((argc+1) * sizeof(char *));
     for (i = 0; i < argc; i++) {
@@ -344,7 +354,7 @@ SDL_LoadLaunchImageNamed(NSString *name, int screenh)
 
     /* run the user's application, passing argc and argv */
     SDL_iPhoneSetEventPump(SDL_TRUE);
-    exit_status = SDL_main(forward_argc, forward_argv);
+    exit_status = forward_main(forward_argc, forward_argv);
     SDL_iPhoneSetEventPump(SDL_FALSE);
 
     if (launchWindow) {