SDL_mixer: Added Xcode projects for gme and wavpack frameworks (6b682)

From 6b682a250e8b5179bed342c13c63af6832a80ffc Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 14 Jan 2024 08:53:27 -0800
Subject: [PATCH] Added Xcode projects for gme and wavpack frameworks

Fixes https://github.com/libsdl-org/SDL_mixer/issues/565

(cherry picked from commit ae3edf862969a4a78f849b2465fa2ff9f92c92c3)
---
 Xcode/SDL_mixer.xcodeproj/project.pbxproj     |  58 +-
 Xcode/config.xcconfig                         |  14 +-
 Xcode/gme/gme.xcodeproj/project.pbxproj       | 629 ++++++++++++++++++
 .../playmus/playmus.xcodeproj/project.pbxproj |  72 +-
 .../playwave.xcodeproj/project.pbxproj        |  72 +-
 Xcode/wavpack/config.xcconfig                 |  22 +
 .../wavpack/wavpack.xcodeproj/project.pbxproj | 569 ++++++++++++++++
 src/codecs/music_gme.c                        |   2 +-
 src/codecs/music_wavpack.c                    |   2 +-
 9 files changed, 1431 insertions(+), 9 deletions(-)
 create mode 100644 Xcode/gme/gme.xcodeproj/project.pbxproj
 create mode 100644 Xcode/wavpack/config.xcconfig
 create mode 100644 Xcode/wavpack/wavpack.xcodeproj/project.pbxproj

diff --git a/Xcode/SDL_mixer.xcodeproj/project.pbxproj b/Xcode/SDL_mixer.xcodeproj/project.pbxproj
index 2c868bd0..48512748 100644
--- a/Xcode/SDL_mixer.xcodeproj/project.pbxproj
+++ b/Xcode/SDL_mixer.xcodeproj/project.pbxproj
@@ -121,6 +121,20 @@
 			remoteGlobalIDString = BE1FA8B407AF96B2004B6283;
 			remoteInfo = Framework;
 		};
+		F307A4732B544C0F0012534B /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F307A46E2B544C0F0012534B /* gme.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = F3F70EDA281F61B4005AA27D;
+			remoteInfo = gme;
+		};
+		F307A47A2B544C1A0012534B /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F307A4752B544C1A0012534B /* wavpack.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = F3968A21281F704800661875;
+			remoteInfo = wavpack;
+		};
 		F3968B96281F817E00661875 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = F3968B90281F817E00661875 /* opus.xcodeproj */;
@@ -186,6 +200,8 @@
 		BE1FA95807AF96B3004B6283 /* Create DMG */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "Create DMG"; sourceTree = BUILT_PRODUCTS_DIR; };
 		F302405F2881DF94002F32D6 /* music_xmp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = music_xmp.h; sourceTree = "<group>"; };
 		F30240622881DF95002F32D6 /* music_xmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = music_xmp.c; sourceTree = "<group>"; };
+		F307A46E2B544C0F0012534B /* gme.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = gme.xcodeproj; path = gme/gme.xcodeproj; sourceTree = "<group>"; };
+		F307A4752B544C1A0012534B /* wavpack.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = wavpack.xcodeproj; path = wavpack/wavpack.xcodeproj; sourceTree = "<group>"; };
 		F3249B36285C448100DB9B5C /* CMake */ = {isa = PBXFileReference; lastKnownFileType = folder; path = CMake; sourceTree = "<group>"; };
 		F37A8D2B2838924900C38E95 /* music_drmp3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = music_drmp3.h; sourceTree = "<group>"; };
 		F37A8D2C2838924900C38E95 /* music_drmp3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = music_drmp3.c; sourceTree = "<group>"; };
@@ -198,7 +214,7 @@
 		F3D87C0A281DFAD4005DA540 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; };
 		F3D87C0C281DFADB005DA540 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = System/Library/Frameworks/CoreServices.framework; sourceTree = SDKROOT; };
 		F3D87C0E281DFB02005DA540 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = macOS/SDL2.framework; sourceTree = "<group>"; };
-		F3E29D022882107B0006D108 /* xmp.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "xmp.xcodeproj"; path = "xmp/xmp.xcodeproj"; sourceTree = "<group>"; };
+		F3E29D022882107B0006D108 /* xmp.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = xmp.xcodeproj; path = xmp/xmp.xcodeproj; sourceTree = "<group>"; };
 		F51BFB0101F724BE01D3D55B /* native_midi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = native_midi.h; sourceTree = "<group>"; };
 		F59C710300D5CB5801000001 /* ReadMe.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ReadMe.txt; sourceTree = "<group>"; };
 		F59C710400D5CB5801000001 /* Welcome.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Welcome.txt; sourceTree = "<group>"; };
@@ -251,7 +267,9 @@
 			isa = PBXGroup;
 			children = (
 				F3968D71281FB5E100661875 /* config.xcconfig */,
+				F307A46E2B544C0F0012534B /* gme.xcodeproj */,
 				F3968B90281F817E00661875 /* opus.xcodeproj */,
+				F307A4752B544C1A0012534B /* wavpack.xcodeproj */,
 				F3E29D022882107B0006D108 /* xmp.xcodeproj */,
 				F59C70FC00D5CB5801000001 /* pkg-support */,
 				0153844A006D81B07F000001 /* Public Headers */,
@@ -354,6 +372,22 @@
 			name = Frameworks;
 			sourceTree = "<group>";
 		};
+		F307A46F2B544C0F0012534B /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				F307A4742B544C0F0012534B /* gme.framework */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		F307A4762B544C1A0012534B /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				F307A47B2B544C1A0012534B /* wavpack.framework */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
 		F3968B91281F817E00661875 /* Products */ = {
 			isa = PBXGroup;
 			children = (
@@ -544,10 +578,18 @@
 			productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */;
 			projectDirPath = "";
 			projectReferences = (
+				{
+					ProductGroup = F307A46F2B544C0F0012534B /* Products */;
+					ProjectRef = F307A46E2B544C0F0012534B /* gme.xcodeproj */;
+				},
 				{
 					ProductGroup = F3968B91281F817E00661875 /* Products */;
 					ProjectRef = F3968B90281F817E00661875 /* opus.xcodeproj */;
 				},
+				{
+					ProductGroup = F307A4762B544C1A0012534B /* Products */;
+					ProjectRef = F307A4752B544C1A0012534B /* wavpack.xcodeproj */;
+				},
 				{
 					ProductGroup = F3E29D032882107B0006D108 /* Products */;
 					ProjectRef = F3E29D022882107B0006D108 /* xmp.xcodeproj */;
@@ -563,6 +605,20 @@
 /* End PBXProject section */
 
 /* Begin PBXReferenceProxy section */
+		F307A4742B544C0F0012534B /* gme.framework */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.framework;
+			path = gme.framework;
+			remoteRef = F307A4732B544C0F0012534B /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		F307A47B2B544C1A0012534B /* wavpack.framework */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.framework;
+			path = wavpack.framework;
+			remoteRef = F307A47A2B544C1A0012534B /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
 		F3968B97281F817E00661875 /* opus.framework */ = {
 			isa = PBXReferenceProxy;
 			fileType = wrapper.framework;
diff --git a/Xcode/config.xcconfig b/Xcode/config.xcconfig
index afb7f838..0ef634ab 100644
--- a/Xcode/config.xcconfig
+++ b/Xcode/config.xcconfig
@@ -8,6 +8,11 @@
 // Include any optional config for this build
 #include? "build.xcconfig"
 
+// Uncomment these lines to enable Game_Music_Emu support
+// If you do this, you should run external/download.sh to download the decode libraries and add gme.framework to your application bundle.
+//GME_PREPROCESSOR_DEFINITIONS = MUSIC_GME
+//GME_FRAMEWORK_LDFLAGS = -weak_framework gme
+
 // Uncomment these lines to enable native MIDI support on OSX
 //MIDI_PREPROCESSOR_DEFINITIONS[sdk=macosx*] = MUSIC_MID_NATIVE
 
@@ -21,5 +26,10 @@
 //OPUS_PREPROCESSOR_DEFINITIONS = MUSIC_OPUS
 //OPUS_FRAMEWORK_LDFLAGS = -weak_framework opus
 
-CONFIG_PREPROCESSOR_DEFINITIONS = $(inherited) $(MIDI_PREPROCESSOR_DEFINITIONS) $(MOD_PREPROCESSOR_DEFINITIONS) $(OPUS_PREPROCESSOR_DEFINITIONS)
-CONFIG_FRAMEWORK_LDFLAGS = $(inherited) $(MIDI_FRAMEWORK_LDFLAGS) $(MOD_FRAMEWORK_LDFLAGS) $(OPUS_FRAMEWORK_LDFLAGS)
+// Uncomment these lines to enable WavPack support
+// If you do this, you should run external/download.sh to download the decode libraries and add wavpack.framework to your application bundle.
+//WAVPACK_PREPROCESSOR_DEFINITIONS = MUSIC_WAVPACK MUSIC_WAVPACK_DSD
+//WAVPACK_FRAMEWORK_LDFLAGS = -weak_framework wavpack
+
+CONFIG_PREPROCESSOR_DEFINITIONS = $(inherited) $(GME_PREPROCESSOR_DEFINITIONS) $(MIDI_PREPROCESSOR_DEFINITIONS) $(MOD_PREPROCESSOR_DEFINITIONS) $(OPUS_PREPROCESSOR_DEFINITIONS) $(WAVPACK_PREPROCESSOR_DEFINITIONS)
+CONFIG_FRAMEWORK_LDFLAGS = $(inherited) $(GME_FRAMEWORK_LDFLAGS) $(MIDI_FRAMEWORK_LDFLAGS) $(MOD_FRAMEWORK_LDFLAGS) $(OPUS_FRAMEWORK_LDFLAGS) $(WAVPACK_FRAMEWORK_LDFLAGS)
diff --git a/Xcode/gme/gme.xcodeproj/project.pbxproj b/Xcode/gme/gme.xcodeproj/project.pbxproj
new file mode 100644
index 00000000..b1f25373
--- /dev/null
+++ b/Xcode/gme/gme.xcodeproj/project.pbxproj
@@ -0,0 +1,629 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 55;
+	objects = {
+
+/* Begin PBXAggregateTarget section */
+		F3B38D8F296F9773005DA6D3 /* gme.xcframework */ = {
+			isa = PBXAggregateTarget;
+			buildConfigurationList = F3B38D92296F9773005DA6D3 /* Build configuration list for PBXAggregateTarget "gme.xcframework" */;
+			buildPhases = (
+				F3B38D93296F9779005DA6D3 /* ShellScript */,
+			);
+			dependencies = (
+			);
+			name = gme.xcframework;
+			productName = xcFramework;
+		};
+/* End PBXAggregateTarget section */
+
+/* Begin PBXBuildFile section */
+		F307A27D2B5431C70012534B /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = F307A27A2B5431C70012534B /* license.txt */; };
+		F307A27E2B5431C70012534B /* gme.txt in Resources */ = {isa = PBXBuildFile; fileRef = F307A27B2B5431C70012534B /* gme.txt */; };
+		F307A27F2B5431C70012534B /* readme.txt in Resources */ = {isa = PBXBuildFile; fileRef = F307A27C2B5431C70012534B /* readme.txt */; };
+		F307A2AF2B54329C0012534B /* Ym2612_GENS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2802B54329C0012534B /* Ym2612_GENS.cpp */; };
+		F307A2B02B54329C0012534B /* Nes_Vrc6_Apu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2812B54329C0012534B /* Nes_Vrc6_Apu.cpp */; };
+		F307A2B12B54329C0012534B /* Sap_Cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2822B54329C0012534B /* Sap_Cpu.cpp */; };
+		F307A2B22B54329C0012534B /* Dual_Resampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2832B54329C0012534B /* Dual_Resampler.cpp */; };
+		F307A2B32B54329C0012534B /* Ym2612_MAME.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2842B54329C0012534B /* Ym2612_MAME.cpp */; };
+		F307A2B42B54329C0012534B /* Nes_Namco_Apu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2852B54329C0012534B /* Nes_Namco_Apu.cpp */; };
+		F307A2B52B54329C0012534B /* M3u_Playlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2862B54329C0012534B /* M3u_Playlist.cpp */; };
+		F307A2B62B54329C0012534B /* Vgm_Emu_Impl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2872B54329C0012534B /* Vgm_Emu_Impl.cpp */; };
+		F307A2B72B54329C0012534B /* Hes_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2882B54329C0012534B /* Hes_Emu.cpp */; };
+		F307A2B82B54329C0012534B /* Snes_Spc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2892B54329C0012534B /* Snes_Spc.cpp */; };
+		F307A2B92B54329C0012534B /* Kss_Cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A28A2B54329C0012534B /* Kss_Cpu.cpp */; };
+		F307A2BA2B54329C0012534B /* Nes_Cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A28B2B54329C0012534B /* Nes_Cpu.cpp */; };
+		F307A2BB2B54329C0012534B /* Effects_Buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A28C2B54329C0012534B /* Effects_Buffer.cpp */; };
+		F307A2BC2B54329C0012534B /* Fir_Resampler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A28D2B54329C0012534B /* Fir_Resampler.cpp */; };
+		F307A2BD2B54329C0012534B /* Music_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A28E2B54329C0012534B /* Music_Emu.cpp */; };
+		F307A2BE2B54329C0012534B /* Blip_Buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A28F2B54329C0012534B /* Blip_Buffer.cpp */; };
+		F307A2BF2B54329C0012534B /* Sap_Apu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2902B54329C0012534B /* Sap_Apu.cpp */; };
+		F307A2C02B54329C0012534B /* Sap_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2912B54329C0012534B /* Sap_Emu.cpp */; };
+		F307A2C12B54329C0012534B /* Classic_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2922B54329C0012534B /* Classic_Emu.cpp */; };
+		F307A2C22B54329C0012534B /* Gbs_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2932B54329C0012534B /* Gbs_Emu.cpp */; };
+		F307A2C32B54329C0012534B /* Nes_Fme7_Apu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2942B54329C0012534B /* Nes_Fme7_Apu.cpp */; };
+		F307A2C42B54329C0012534B /* Sms_Apu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2952B54329C0012534B /* Sms_Apu.cpp */; };
+		F307A2C52B54329C0012534B /* Ym2413_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2962B54329C0012534B /* Ym2413_Emu.cpp */; };
+		F307A2C62B54329C0012534B /* Ym2612_Nuked.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2972B54329C0012534B /* Ym2612_Nuked.cpp */; };
+		F307A2C72B54329C0012534B /* Gme_File.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2982B54329C0012534B /* Gme_File.cpp */; };
+		F307A2C82B54329C0012534B /* Nsfe_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2992B54329C0012534B /* Nsfe_Emu.cpp */; };
+		F307A2C92B54329C0012534B /* Kss_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A29A2B54329C0012534B /* Kss_Emu.cpp */; };
+		F307A2CA2B54329C0012534B /* Spc_Cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A29B2B54329C0012534B /* Spc_Cpu.cpp */; };
+		F307A2CB2B54329C0012534B /* Hes_Cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A29C2B54329C0012534B /* Hes_Cpu.cpp */; };
+		F307A2CC2B54329C0012534B /* Gb_Cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A29D2B54329C0012534B /* Gb_Cpu.cpp */; };
+		F307A2CD2B54329C0012534B /* Nes_Oscs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A29E2B54329C0012534B /* Nes_Oscs.cpp */; };
+		F307A2CE2B54329C0012534B /* Nsf_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A29F2B54329C0012534B /* Nsf_Emu.cpp */; };
+		F307A2CF2B54329C0012534B /* Hes_Apu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2A02B54329C0012534B /* Hes_Apu.cpp */; };
+		F307A2D02B54329C0012534B /* Gb_Apu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2A12B54329C0012534B /* Gb_Apu.cpp */; };
+		F307A2D12B54329C0012534B /* Multi_Buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2A22B54329C0012534B /* Multi_Buffer.cpp */; };
+		F307A2D22B54329C0012534B /* Spc_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2A32B54329C0012534B /* Spc_Emu.cpp */; };
+		F307A2D32B54329C0012534B /* Ay_Cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2A42B54329C0012534B /* Ay_Cpu.cpp */; };
+		F307A2D42B54329C0012534B /* Ay_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2A52B54329C0012534B /* Ay_Emu.cpp */; };
+		F307A2D52B54329C0012534B /* Kss_Scc_Apu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2A62B54329C0012534B /* Kss_Scc_Apu.cpp */; };
+		F307A2D62B54329C0012534B /* Ay_Apu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2A72B54329C0012534B /* Ay_Apu.cpp */; };
+		F307A2D72B54329C0012534B /* Gym_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2A82B54329C0012534B /* Gym_Emu.cpp */; };
+		F307A2D82B54329C0012534B /* Data_Reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2A92B54329C0012534B /* Data_Reader.cpp */; };
+		F307A2D92B54329C0012534B /* Nes_Apu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2AA2B54329C0012534B /* Nes_Apu.cpp */; };
+		F307A2DA2B54329C0012534B /* Gb_Oscs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2AB2B54329C0012534B /* Gb_Oscs.cpp */; };
+		F307A2DB2B54329C0012534B /* Spc_Filter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2AC2B54329C0012534B /* Spc_Filter.cpp */; };
+		F307A2DC2B54329C0012534B /* Spc_Dsp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2AD2B54329C0012534B /* Spc_Dsp.cpp */; };
+		F307A2DD2B54329C0012534B /* gme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2AE2B54329C0012534B /* gme.cpp */; };
+		F307A2DF2B5434FF0012534B /* Vgm_Emu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F307A2DE2B5434FF0012534B /* Vgm_Emu.cpp */; };
+		F307A2E12B54358D0012534B /* gme.h in Headers */ = {isa = PBXBuildFile; fileRef = F307A2E02B54358D0012534B /* gme.h */; settings = {ATTRIBUTES = (Public, ); }; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		F307A27A2B5431C70012534B /* license.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = license.txt; path = ../../external/libgme/license.txt; sourceTree = "<group>"; };
+		F307A27B2B5431C70012534B /* gme.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = gme.txt; path = ../../external/libgme/gme.txt; sourceTree = "<group>"; };
+		F307A27C2B5431C70012534B /* readme.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = readme.txt; path = ../../external/libgme/readme.txt; sourceTree = "<group>"; };
+		F307A2802B54329C0012534B /* Ym2612_GENS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Ym2612_GENS.cpp; path = ../../external/libgme/gme/Ym2612_GENS.cpp; sourceTree = "<group>"; };
+		F307A2812B54329C0012534B /* Nes_Vrc6_Apu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Nes_Vrc6_Apu.cpp; path = ../../external/libgme/gme/Nes_Vrc6_Apu.cpp; sourceTree = "<group>"; };
+		F307A2822B54329C0012534B /* Sap_Cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Sap_Cpu.cpp; path = ../../external/libgme/gme/Sap_Cpu.cpp; sourceTree = "<group>"; };
+		F307A2832B54329C0012534B /* Dual_Resampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Dual_Resampler.cpp; path = ../../external/libgme/gme/Dual_Resampler.cpp; sourceTree = "<group>"; };
+		F307A2842B54329C0012534B /* Ym2612_MAME.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Ym2612_MAME.cpp; path = ../../external/libgme/gme/Ym2612_MAME.cpp; sourceTree = "<group>"; };
+		F307A2852B54329C0012534B /* Nes_Namco_Apu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Nes_Namco_Apu.cpp; path = ../../external/libgme/gme/Nes_Namco_Apu.cpp; sourceTree = "<group>"; };
+		F307A2862B54329C0012534B /* M3u_Playlist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = M3u_Playlist.cpp; path = ../../external/libgme/gme/M3u_Playlist.cpp; sourceTree = "<group>"; };
+		F307A2872B54329C0012534B /* Vgm_Emu_Impl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Vgm_Emu_Impl.cpp; path = ../../external/libgme/gme/Vgm_Emu_Impl.cpp; sourceTree = "<group>"; };
+		F307A2882B54329C0012534B /* Hes_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Hes_Emu.cpp; path = ../../external/libgme/gme/Hes_Emu.cpp; sourceTree = "<group>"; };
+		F307A2892B54329C0012534B /* Snes_Spc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Snes_Spc.cpp; path = ../../external/libgme/gme/Snes_Spc.cpp; sourceTree = "<group>"; };
+		F307A28A2B54329C0012534B /* Kss_Cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Kss_Cpu.cpp; path = ../../external/libgme/gme/Kss_Cpu.cpp; sourceTree = "<group>"; };
+		F307A28B2B54329C0012534B /* Nes_Cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Nes_Cpu.cpp; path = ../../external/libgme/gme/Nes_Cpu.cpp; sourceTree = "<group>"; };
+		F307A28C2B54329C0012534B /* Effects_Buffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Effects_Buffer.cpp; path = ../../external/libgme/gme/Effects_Buffer.cpp; sourceTree = "<group>"; };
+		F307A28D2B54329C0012534B /* Fir_Resampler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fir_Resampler.cpp; path = ../../external/libgme/gme/Fir_Resampler.cpp; sourceTree = "<group>"; };
+		F307A28E2B54329C0012534B /* Music_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Music_Emu.cpp; path = ../../external/libgme/gme/Music_Emu.cpp; sourceTree = "<group>"; };
+		F307A28F2B54329C0012534B /* Blip_Buffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Blip_Buffer.cpp; path = ../../external/libgme/gme/Blip_Buffer.cpp; sourceTree = "<group>"; };
+		F307A2902B54329C0012534B /* Sap_Apu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Sap_Apu.cpp; path = ../../external/libgme/gme/Sap_Apu.cpp; sourceTree = "<group>"; };
+		F307A2912B54329C0012534B /* Sap_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Sap_Emu.cpp; path = ../../external/libgme/gme/Sap_Emu.cpp; sourceTree = "<group>"; };
+		F307A2922B54329C0012534B /* Classic_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Classic_Emu.cpp; path = ../../external/libgme/gme/Classic_Emu.cpp; sourceTree = "<group>"; };
+		F307A2932B54329C0012534B /* Gbs_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Gbs_Emu.cpp; path = ../../external/libgme/gme/Gbs_Emu.cpp; sourceTree = "<group>"; };
+		F307A2942B54329C0012534B /* Nes_Fme7_Apu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Nes_Fme7_Apu.cpp; path = ../../external/libgme/gme/Nes_Fme7_Apu.cpp; sourceTree = "<group>"; };
+		F307A2952B54329C0012534B /* Sms_Apu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Sms_Apu.cpp; path = ../../external/libgme/gme/Sms_Apu.cpp; sourceTree = "<group>"; };
+		F307A2962B54329C0012534B /* Ym2413_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Ym2413_Emu.cpp; path = ../../external/libgme/gme/Ym2413_Emu.cpp; sourceTree = "<group>"; };
+		F307A2972B54329C0012534B /* Ym2612_Nuked.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Ym2612_Nuked.cpp; path = ../../external/libgme/gme/Ym2612_Nuked.cpp; sourceTree = "<group>"; };
+		F307A2982B54329C0012534B /* Gme_File.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Gme_File.cpp; path = ../../external/libgme/gme/Gme_File.cpp; sourceTree = "<group>"; };
+		F307A2992B54329C0012534B /* Nsfe_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Nsfe_Emu.cpp; path = ../../external/libgme/gme/Nsfe_Emu.cpp; sourceTree = "<group>"; };
+		F307A29A2B54329C0012534B /* Kss_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Kss_Emu.cpp; path = ../../external/libgme/gme/Kss_Emu.cpp; sourceTree = "<group>"; };
+		F307A29B2B54329C0012534B /* Spc_Cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Spc_Cpu.cpp; path = ../../external/libgme/gme/Spc_Cpu.cpp; sourceTree = "<group>"; };
+		F307A29C2B54329C0012534B /* Hes_Cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Hes_Cpu.cpp; path = ../../external/libgme/gme/Hes_Cpu.cpp; sourceTree = "<group>"; };
+		F307A29D2B54329C0012534B /* Gb_Cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Gb_Cpu.cpp; path = ../../external/libgme/gme/Gb_Cpu.cpp; sourceTree = "<group>"; };
+		F307A29E2B54329C0012534B /* Nes_Oscs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Nes_Oscs.cpp; path = ../../external/libgme/gme/Nes_Oscs.cpp; sourceTree = "<group>"; };
+		F307A29F2B54329C0012534B /* Nsf_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Nsf_Emu.cpp; path = ../../external/libgme/gme/Nsf_Emu.cpp; sourceTree = "<group>"; };
+		F307A2A02B54329C0012534B /* Hes_Apu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Hes_Apu.cpp; path = ../../external/libgme/gme/Hes_Apu.cpp; sourceTree = "<group>"; };
+		F307A2A12B54329C0012534B /* Gb_Apu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Gb_Apu.cpp; path = ../../external/libgme/gme/Gb_Apu.cpp; sourceTree = "<group>"; };
+		F307A2A22B54329C0012534B /* Multi_Buffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Multi_Buffer.cpp; path = ../../external/libgme/gme/Multi_Buffer.cpp; sourceTree = "<group>"; };
+		F307A2A32B54329C0012534B /* Spc_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Spc_Emu.cpp; path = ../../external/libgme/gme/Spc_Emu.cpp; sourceTree = "<group>"; };
+		F307A2A42B54329C0012534B /* Ay_Cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Ay_Cpu.cpp; path = ../../external/libgme/gme/Ay_Cpu.cpp; sourceTree = "<group>"; };
+		F307A2A52B54329C0012534B /* Ay_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Ay_Emu.cpp; path = ../../external/libgme/gme/Ay_Emu.cpp; sourceTree = "<group>"; };
+		F307A2A62B54329C0012534B /* Kss_Scc_Apu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Kss_Scc_Apu.cpp; path = ../../external/libgme/gme/Kss_Scc_Apu.cpp; sourceTree = "<group>"; };
+		F307A2A72B54329C0012534B /* Ay_Apu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Ay_Apu.cpp; path = ../../external/libgme/gme/Ay_Apu.cpp; sourceTree = "<group>"; };
+		F307A2A82B54329C0012534B /* Gym_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Gym_Emu.cpp; path = ../../external/libgme/gme/Gym_Emu.cpp; sourceTree = "<group>"; };
+		F307A2A92B54329C0012534B /* Data_Reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Data_Reader.cpp; path = ../../external/libgme/gme/Data_Reader.cpp; sourceTree = "<group>"; };
+		F307A2AA2B54329C0012534B /* Nes_Apu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Nes_Apu.cpp; path = ../../external/libgme/gme/Nes_Apu.cpp; sourceTree = "<group>"; };
+		F307A2AB2B54329C0012534B /* Gb_Oscs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Gb_Oscs.cpp; path = ../../external/libgme/gme/Gb_Oscs.cpp; sourceTree = "<group>"; };
+		F307A2AC2B54329C0012534B /* Spc_Filter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Spc_Filter.cpp; path = ../../external/libgme/gme/Spc_Filter.cpp; sourceTree = "<group>"; };
+		F307A2AD2B54329C0012534B /* Spc_Dsp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Spc_Dsp.cpp; path = ../../external/libgme/gme/Spc_Dsp.cpp; sourceTree = "<group>"; };
+		F307A2AE2B54329C0012534B /* gme.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gme.cpp; path = ../../external/libgme/gme/gme.cpp; sourceTree = "<group>"; };
+		F307A2DE2B5434FF0012534B /* Vgm_Emu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Vgm_Emu.cpp; path = ../../external/libgme/gme/Vgm_Emu.cpp; sourceTree = "<group>"; };
+		F307A2E02B54358D0012534B /* gme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gme.h; path = ../../external/libgme/gme/gme.h; sourceTree = "<group>"; };
+		F3F70EDA281F61B4005AA27D /* gme.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = gme.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		F3F70ED7281F61B4005AA27D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		F3F70ED0281F61B4005AA27D = {
+			isa = PBXGroup;
+			children = (
+				F3F70EDB281F61B4005AA27D /* Products */,
+				F3F70EE6281F61D0005AA27D /* Resources */,
+				F3F70EE5281F61C9005AA27D /* Headers */,
+				F3F70EE4281F61C3005AA27D /* Source */,
+			);
+			sourceTree = "<group>";
+		};
+		F3F70EDB281F61B4005AA27D /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				F3F70EDA281F61B4005AA27D /* gme.framework */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		F3F70EE4281F61C3005AA27D /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				F307A2A72B54329C0012534B /* Ay_Apu.cpp */,
+				F307A2A42B54329C0012534B /* Ay_Cpu.cpp */,
+				F307A2A52B54329C0012534B /* Ay_Emu.cpp */,
+				F307A28F2B54329C0012534B /* Blip_Buffer.cpp */,
+				F307A2922B54329C0012534B /* Classic_Emu.cpp */,
+				F307A2A92B54329C0012534B /* Data_Reader.cpp */,
+				F307A2832B54329C0012534B /* Dual_Resampler.cpp */,
+				F307A28C2B54329C0012534B /* Effects_Buffer.cpp */,
+				F307A28D2B54329C0012534B /* Fir_Resampler.cpp */,
+				F307A2A12B54329C0012534B /* Gb_Apu.cpp */,
+				F307A29D2B54329C0012534B /* Gb_Cpu.cpp */,
+				F307A2AB2B54329C0012534B /* Gb_Oscs.cpp */,
+				F307A2932B54329C0012534B /* Gbs_Emu.cpp */,
+				F307A2982B54329C0012534B /* Gme_File.cpp */,
+				F307A2AE2B54329C0012534B /* gme.cpp */,
+				F307A2A82B54329C0012534B /* Gym_Emu.cpp */,
+				F307A2A02B54329C0012534B /* Hes_Apu.cpp */,
+				F307A29C2B54329C0012534B /* Hes_Cpu.cpp */,
+				F307A2882B54329C0012534B /* Hes_Emu.cpp */,
+				F307A28A2B54329C0012534B /* Kss_Cpu.cpp */,
+				F307A29A2B54329C0012534B /* Kss_Emu.cpp */,
+				F307A2A62B54329C0012534B /* Kss_Scc_Apu.cpp */,
+				F307A2862B54329C0012534B /* M3u_Playlist.cpp */,
+				F307A2A22B54329C0012534B /* Multi_Buffer.cpp */,
+				F307A28E2B54329C0012534B /* Music_Emu.cpp */,
+				F307A2AA2B54329C0012534B /* Nes_Apu.

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