// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 48;
	objects = {

/* Begin PBXBuildFile section */
		450A4F61220CB180007203D7 /* SPIRVReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 450A4F5E220CB180007203D7 /* SPIRVReflection.h */; };
		450A4F62220CB180007203D7 /* SPIRVReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 450A4F5E220CB180007203D7 /* SPIRVReflection.h */; };
		A909408A1C58013E0094110D /* SPIRVToMSLConverter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9093F5A1C58013E0094110D /* SPIRVToMSLConverter.cpp */; };
		A909408B1C58013E0094110D /* SPIRVToMSLConverter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9093F5A1C58013E0094110D /* SPIRVToMSLConverter.cpp */; };
		A909408C1C58013E0094110D /* SPIRVToMSLConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A9093F5B1C58013E0094110D /* SPIRVToMSLConverter.h */; };
		A909408D1C58013E0094110D /* SPIRVToMSLConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A9093F5B1C58013E0094110D /* SPIRVToMSLConverter.h */; };
		A90940A71C5808BB0094110D /* GLSLToSPIRVConverter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A90940A31C5808BB0094110D /* GLSLToSPIRVConverter.cpp */; };
		A90940A81C5808BB0094110D /* GLSLToSPIRVConverter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A90940A31C5808BB0094110D /* GLSLToSPIRVConverter.cpp */; };
		A90940A91C5808BB0094110D /* GLSLToSPIRVConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A90940A41C5808BB0094110D /* GLSLToSPIRVConverter.h */; };
		A90940AA1C5808BB0094110D /* GLSLToSPIRVConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A90940A41C5808BB0094110D /* GLSLToSPIRVConverter.h */; };
		A90941A31C581F840094110D /* GLSLConversion.mm in Sources */ = {isa = PBXBuildFile; fileRef = A90941A11C581F840094110D /* GLSLConversion.mm */; };
		A90941A41C581F840094110D /* GLSLConversion.mm in Sources */ = {isa = PBXBuildFile; fileRef = A90941A11C581F840094110D /* GLSLConversion.mm */; };
		A90941A51C581F840094110D /* GLSLConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A90941A21C581F840094110D /* GLSLConversion.h */; };
		A90941A61C581F840094110D /* GLSLConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A90941A21C581F840094110D /* GLSLConversion.h */; };
		A925B71A1C78DEB2006E7ECD /* libMoltenVKGLSLToSPIRVConverter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A964BD601C57EFBD00D930D8 /* libMoltenVKGLSLToSPIRVConverter.a */; };
		A925B71B1C78DEB2006E7ECD /* libMoltenVKSPIRVToMSLConverter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A93903C71C57E9ED00FE90DC /* libMoltenVKSPIRVToMSLConverter.a */; };
		A928C9191D0488DC00071B88 /* SPIRVConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A928C9171D0488DC00071B88 /* SPIRVConversion.h */; };
		A928C91A1D0488DC00071B88 /* SPIRVConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A928C9171D0488DC00071B88 /* SPIRVConversion.h */; };
		A928C91B1D0488DC00071B88 /* SPIRVConversion.mm in Sources */ = {isa = PBXBuildFile; fileRef = A928C9181D0488DC00071B88 /* SPIRVConversion.mm */; };
		A928C91C1D0488DC00071B88 /* SPIRVConversion.mm in Sources */ = {isa = PBXBuildFile; fileRef = A928C9181D0488DC00071B88 /* SPIRVConversion.mm */; };
		A95096BB2003D00300F10950 /* FileSupport.mm in Sources */ = {isa = PBXBuildFile; fileRef = A925B70A1C7754B2006E7ECD /* FileSupport.mm */; };
		A95096BC2003D00300F10950 /* FileSupport.mm in Sources */ = {isa = PBXBuildFile; fileRef = A925B70A1C7754B2006E7ECD /* FileSupport.mm */; };
		A95096BF2003D32400F10950 /* OSSupport.mm in Sources */ = {isa = PBXBuildFile; fileRef = A95096BD2003D32400F10950 /* OSSupport.mm */; };
		A972AD2B21CEE6A90013AB25 /* libglslang.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A972AD2A21CEE6A90013AB25 /* libglslang.a */; };
		A972AD3121CEE7040013AB25 /* libSPIRVCross.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A972AD2F21CEE7040013AB25 /* libSPIRVCross.a */; };
		A972AD3221CEE7040013AB25 /* libSPIRVTools.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A972AD3021CEE7040013AB25 /* libSPIRVTools.a */; };
		A972AD3621CEE7330013AB25 /* libSPIRVTools.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A972AD3421CEE7330013AB25 /* libSPIRVTools.a */; };
		A972AD3721CEE7330013AB25 /* libSPIRVCross.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A972AD3521CEE7330013AB25 /* libSPIRVCross.a */; };
		A972AD3921CEE7480013AB25 /* libglslang.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A972AD3821CEE7480013AB25 /* libglslang.a */; };
		A97CC7401C7527F3004A5C7E /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A97CC73D1C7527F3004A5C7E /* main.cpp */; };
		A97CC7411C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A97CC73E1C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp */; };
		A98149661FB6A98A005F00B4 /* MVKStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = A98149651FB6A98A005F00B4 /* MVKStrings.h */; };
		A98149671FB6A98A005F00B4 /* MVKStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = A98149651FB6A98A005F00B4 /* MVKStrings.h */; };
		A98149681FB6A98A005F00B4 /* MVKStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = A98149651FB6A98A005F00B4 /* MVKStrings.h */; };
		A98149691FB6A98A005F00B4 /* MVKStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = A98149651FB6A98A005F00B4 /* MVKStrings.h */; };
		A9A14E332244388700C080F3 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9A14E322244388700C080F3 /* Metal.framework */; };
		A9B51BDD225E98BB00AC74D2 /* MVKOSExtensions.mm in Sources */ = {isa = PBXBuildFile; fileRef = A9B51BDB225E98BB00AC74D2 /* MVKOSExtensions.mm */; };
		A9C70F5A221B2F6500FBA31A /* libSPIRVTools.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A972AD3021CEE7040013AB25 /* libSPIRVTools.a */; };
		A9C70F5B221B2F8100FBA31A /* libSPIRVTools.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A972AD3421CEE7330013AB25 /* libSPIRVTools.a */; };
		A9C70F5F221B321700FBA31A /* SPIRVSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A9C70F5D221B321600FBA31A /* SPIRVSupport.h */; };
		A9C70F60221B321700FBA31A /* SPIRVSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A9C70F5D221B321600FBA31A /* SPIRVSupport.h */; };
		A9C70F61221B321700FBA31A /* SPIRVSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A9C70F5D221B321600FBA31A /* SPIRVSupport.h */; };
		A9C70F62221B321700FBA31A /* SPIRVSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A9C70F5D221B321600FBA31A /* SPIRVSupport.h */; };
		A9C70F63221B321700FBA31A /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */; };
		A9C70F64221B321700FBA31A /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */; };
		A9C70F65221B321700FBA31A /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */; };
		A9C70F66221B321700FBA31A /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */; };
		A9C70F67221B321700FBA31A /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */; };
		A9F042B01FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */; };
		A9F042B11FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */; };
		A9F042B21FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */; };
		A9F042B31FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		A925B71C1C78DEBF006E7ECD /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A9F55D25198BE6A7004EC31B /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = A93903C01C57E9ED00FE90DC;
			remoteInfo = "MoltenVKSPIRVToMSLConverter-macOS";
		};
		A93749CE1A9AA7AF00F29B34 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A9F55D25198BE6A7004EC31B /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = A93747701A9A98D000F29B34;
			remoteInfo = "MetalGLShaderConverter-macOS";
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		450A4F5E220CB180007203D7 /* SPIRVReflection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPIRVReflection.h; sourceTree = "<group>"; };
		A9093F5A1C58013E0094110D /* SPIRVToMSLConverter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SPIRVToMSLConverter.cpp; sourceTree = "<group>"; };
		A9093F5B1C58013E0094110D /* SPIRVToMSLConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPIRVToMSLConverter.h; sourceTree = "<group>"; };
		A90940A31C5808BB0094110D /* GLSLToSPIRVConverter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GLSLToSPIRVConverter.cpp; sourceTree = "<group>"; };
		A90940A41C5808BB0094110D /* GLSLToSPIRVConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLSLToSPIRVConverter.h; sourceTree = "<group>"; };
		A90941A11C581F840094110D /* GLSLConversion.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = GLSLConversion.mm; sourceTree = "<group>"; };
		A90941A21C581F840094110D /* GLSLConversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLSLConversion.h; sourceTree = "<group>"; };
		A925B70A1C7754B2006E7ECD /* FileSupport.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FileSupport.mm; sourceTree = "<group>"; };
		A925B70B1C7754B2006E7ECD /* FileSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileSupport.h; sourceTree = "<group>"; };
		A928C9171D0488DC00071B88 /* SPIRVConversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPIRVConversion.h; sourceTree = "<group>"; };
		A928C9181D0488DC00071B88 /* SPIRVConversion.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SPIRVConversion.mm; sourceTree = "<group>"; };
		A93903BF1C57E9D700FE90DC /* libMoltenVKSPIRVToMSLConverter.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMoltenVKSPIRVToMSLConverter.a; sourceTree = BUILT_PRODUCTS_DIR; };
		A93903C71C57E9ED00FE90DC /* libMoltenVKSPIRVToMSLConverter.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMoltenVKSPIRVToMSLConverter.a; sourceTree = BUILT_PRODUCTS_DIR; };
		A95096BD2003D32400F10950 /* OSSupport.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OSSupport.mm; sourceTree = "<group>"; };
		A95096BE2003D32400F10950 /* OSSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSSupport.h; sourceTree = "<group>"; };
		A964BD5F1C57EFBD00D930D8 /* MoltenVKShaderConverter */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = MoltenVKShaderConverter; sourceTree = BUILT_PRODUCTS_DIR; };
		A964BD601C57EFBD00D930D8 /* libMoltenVKGLSLToSPIRVConverter.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMoltenVKGLSLToSPIRVConverter.a; sourceTree = BUILT_PRODUCTS_DIR; };
		A964BD611C57EFBD00D930D8 /* libMoltenVKGLSLToSPIRVConverter.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMoltenVKGLSLToSPIRVConverter.a; sourceTree = BUILT_PRODUCTS_DIR; };
		A972AD2A21CEE6A90013AB25 /* libglslang.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libglslang.a; path = iOS/libglslang.a; sourceTree = "<group>"; };
		A972AD2F21CEE7040013AB25 /* libSPIRVCross.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSPIRVCross.a; path = iOS/libSPIRVCross.a; sourceTree = "<group>"; };
		A972AD3021CEE7040013AB25 /* libSPIRVTools.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSPIRVTools.a; path = iOS/libSPIRVTools.a; sourceTree = "<group>"; };
		A972AD3421CEE7330013AB25 /* libSPIRVTools.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSPIRVTools.a; path = macOS/libSPIRVTools.a; sourceTree = "<group>"; };
		A972AD3521CEE7330013AB25 /* libSPIRVCross.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSPIRVCross.a; path = macOS/libSPIRVCross.a; sourceTree = "<group>"; };
		A972AD3821CEE7480013AB25 /* libglslang.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libglslang.a; path = macOS/libglslang.a; sourceTree = "<group>"; };
		A97CC73D1C7527F3004A5C7E /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
		A97CC73E1C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MoltenVKShaderConverterTool.cpp; sourceTree = "<group>"; };
		A97CC73F1C7527F3004A5C7E /* MoltenVKShaderConverterTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoltenVKShaderConverterTool.h; sourceTree = "<group>"; };
		A98149651FB6A98A005F00B4 /* MVKStrings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKStrings.h; sourceTree = "<group>"; };
		A9A14E322244388700C080F3 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
		A9B51BDB225E98BB00AC74D2 /* MVKOSExtensions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MVKOSExtensions.mm; sourceTree = "<group>"; };
		A9B51BDC225E98BB00AC74D2 /* MVKOSExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKOSExtensions.h; sourceTree = "<group>"; };
		A9C70F5D221B321600FBA31A /* SPIRVSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SPIRVSupport.h; path = Common/SPIRVSupport.h; sourceTree = SOURCE_ROOT; };
		A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SPIRVSupport.cpp; path = Common/SPIRVSupport.cpp; sourceTree = SOURCE_ROOT; };
		A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCommonEnvironment.h; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		A9092A8A1A81717B00051823 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A9A14E332244388700C080F3 /* Metal.framework in Frameworks */,
				A925B71A1C78DEB2006E7ECD /* libMoltenVKGLSLToSPIRVConverter.a in Frameworks */,
				A925B71B1C78DEB2006E7ECD /* libMoltenVKSPIRVToMSLConverter.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A972AD2821CEE6310013AB25 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A972AD2B21CEE6A90013AB25 /* libglslang.a in Frameworks */,
				A9C70F5A221B2F6500FBA31A /* libSPIRVTools.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A972AD2C21CEE6C30013AB25 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A972AD3921CEE7480013AB25 /* libglslang.a in Frameworks */,
				A9C70F5B221B2F8100FBA31A /* libSPIRVTools.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A972AD2E21CEE6F50013AB25 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A972AD3221CEE7040013AB25 /* libSPIRVTools.a in Frameworks */,
				A972AD3121CEE7040013AB25 /* libSPIRVCross.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A972AD3321CEE7230013AB25 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A972AD3621CEE7330013AB25 /* libSPIRVTools.a in Frameworks */,
				A972AD3721CEE7330013AB25 /* libSPIRVCross.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		A9093C561C58013D0094110D /* MoltenVKSPIRVToMSLConverter */ = {
			isa = PBXGroup;
			children = (
				A925B70B1C7754B2006E7ECD /* FileSupport.h */,
				A925B70A1C7754B2006E7ECD /* FileSupport.mm */,
				A928C9171D0488DC00071B88 /* SPIRVConversion.h */,
				A928C9181D0488DC00071B88 /* SPIRVConversion.mm */,
				450A4F5E220CB180007203D7 /* SPIRVReflection.h */,
				A9093F5A1C58013E0094110D /* SPIRVToMSLConverter.cpp */,
				A9093F5B1C58013E0094110D /* SPIRVToMSLConverter.h */,
			);
			path = MoltenVKSPIRVToMSLConverter;
			sourceTree = "<group>";
		};
		A90940A11C5808BB0094110D /* MoltenVKGLSLToSPIRVConverter */ = {
			isa = PBXGroup;
			children = (
				A90941A21C581F840094110D /* GLSLConversion.h */,
				A90941A11C581F840094110D /* GLSLConversion.mm */,
				A90940A31C5808BB0094110D /* GLSLToSPIRVConverter.cpp */,
				A90940A41C5808BB0094110D /* GLSLToSPIRVConverter.h */,
			);
			path = MoltenVKGLSLToSPIRVConverter;
			sourceTree = "<group>";
		};
		A964B28D1C57EBC400D930D8 /* Products */ = {
			isa = PBXGroup;
			children = (
				A93903C71C57E9ED00FE90DC /* libMoltenVKSPIRVToMSLConverter.a */,
				A93903BF1C57E9D700FE90DC /* libMoltenVKSPIRVToMSLConverter.a */,
				A964BD5F1C57EFBD00D930D8 /* MoltenVKShaderConverter */,
				A964BD601C57EFBD00D930D8 /* libMoltenVKGLSLToSPIRVConverter.a */,
				A964BD611C57EFBD00D930D8 /* libMoltenVKGLSLToSPIRVConverter.a */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		A972AD2921CEE6A80013AB25 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				A9A14E322244388700C080F3 /* Metal.framework */,
				A972AD2A21CEE6A90013AB25 /* libglslang.a */,
				A972AD3821CEE7480013AB25 /* libglslang.a */,
				A972AD2F21CEE7040013AB25 /* libSPIRVCross.a */,
				A972AD3521CEE7330013AB25 /* libSPIRVCross.a */,
				A972AD3021CEE7040013AB25 /* libSPIRVTools.a */,
				A972AD3421CEE7330013AB25 /* libSPIRVTools.a */,
			);
			name = Frameworks;
			path = ../External/build/Latest;
			sourceTree = SOURCE_ROOT;
		};
		A97CC73C1C7527F3004A5C7E /* MoltenVKShaderConverterTool */ = {
			isa = PBXGroup;
			children = (
				A97CC73D1C7527F3004A5C7E /* main.cpp */,
				A97CC73E1C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp */,
				A97CC73F1C7527F3004A5C7E /* MoltenVKShaderConverterTool.h */,
				A95096BE2003D32400F10950 /* OSSupport.h */,
				A95096BD2003D32400F10950 /* OSSupport.mm */,
			);
			path = MoltenVKShaderConverterTool;
			sourceTree = "<group>";
		};
		A9F042A81FB4D060009FCCB8 /* Common */ = {
			isa = PBXGroup;
			children = (
				A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */,
				A9B51BDC225E98BB00AC74D2 /* MVKOSExtensions.h */,
				A9B51BDB225E98BB00AC74D2 /* MVKOSExtensions.mm */,
				A98149651FB6A98A005F00B4 /* MVKStrings.h */,
				A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */,
				A9C70F5D221B321600FBA31A /* SPIRVSupport.h */,
			);
			name = Common;
			path = ../Common;
			sourceTree = "<group>";
		};
		A9F55D24198BE6A7004EC31B = {
			isa = PBXGroup;
			children = (
				A9093C561C58013D0094110D /* MoltenVKSPIRVToMSLConverter */,
				A90940A11C5808BB0094110D /* MoltenVKGLSLToSPIRVConverter */,
				A97CC73C1C7527F3004A5C7E /* MoltenVKShaderConverterTool */,
				A9F042A81FB4D060009FCCB8 /* Common */,
				A964B28D1C57EBC400D930D8 /* Products */,
				A972AD2921CEE6A80013AB25 /* Frameworks */,
			);
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		A93747291A9A8B2900F29B34 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A9C70F5F221B321700FBA31A /* SPIRVSupport.h in Headers */,
				A90941A51C581F840094110D /* GLSLConversion.h in Headers */,
				A90940A91C5808BB0094110D /* GLSLToSPIRVConverter.h in Headers */,
				A9F042B01FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */,
				A98149661FB6A98A005F00B4 /* MVKStrings.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A937476E1A9A98D000F29B34 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A9C70F60221B321700FBA31A /* SPIRVSupport.h in Headers */,
				A90941A61C581F840094110D /* GLSLConversion.h in Headers */,
				A90940AA1C5808BB0094110D /* GLSLToSPIRVConverter.h in Headers */,
				A9F042B11FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */,
				A98149671FB6A98A005F00B4 /* MVKStrings.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A93903B91C57E9D700FE90DC /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				450A4F61220CB180007203D7 /* SPIRVReflection.h in Headers */,
				A98149681FB6A98A005F00B4 /* MVKStrings.h in Headers */,
				A9C70F61221B321700FBA31A /* SPIRVSupport.h in Headers */,
				A928C9191D0488DC00071B88 /* SPIRVConversion.h in Headers */,
				A909408C1C58013E0094110D /* SPIRVToMSLConverter.h in Headers */,
				A9F042B21FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A93903C11C57E9ED00FE90DC /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				450A4F62220CB180007203D7 /* SPIRVReflection.h in Headers */,
				A98149691FB6A98A005F00B4 /* MVKStrings.h in Headers */,
				A9C70F62221B321700FBA31A /* SPIRVSupport.h in Headers */,
				A928C91A1D0488DC00071B88 /* SPIRVConversion.h in Headers */,
				A909408D1C58013E0094110D /* SPIRVToMSLConverter.h in Headers */,
				A9F042B31FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		A9092A8C1A81717B00051823 /* MoltenVKShaderConverter */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = A9092A931A81717C00051823 /* Build configuration list for PBXNativeTarget "MoltenVKShaderConverter" */;
			buildPhases = (
				A9092A891A81717B00051823 /* Sources */,
				A9092A8A1A81717B00051823 /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
				A925B71D1C78DEBF006E7ECD /* PBXTargetDependency */,
				A93749CF1A9AA7AF00F29B34 /* PBXTargetDependency */,
			);
			name = MoltenVKShaderConverter;
			productName = MetalGLShaderConverterTool;
			productReference = A964BD5F1C57EFBD00D930D8 /* MoltenVKShaderConverter */;
			productType = "com.apple.product-type.tool";
		};
		A937472B1A9A8B2900F29B34 /* MoltenVKGLSLToSPIRVConverter-iOS */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = A937473F1A9A8B2900F29B34 /* Build configuration list for PBXNativeTarget "MoltenVKGLSLToSPIRVConverter-iOS" */;
			buildPhases = (
				A93747291A9A8B2900F29B34 /* Headers */,
				A93747271A9A8B2900F29B34 /* Sources */,
				A972AD2821CEE6310013AB25 /* Frameworks */,
				A9C70F49221B075700FBA31A /* Create Dynamic Library */,
				A941E2A7221AC9C300890C56 /* Create Framework */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "MoltenVKGLSLToSPIRVConverter-iOS";
			productName = "MetalGLShaderConverter-iOS";
			productReference = A964BD611C57EFBD00D930D8 /* libMoltenVKGLSLToSPIRVConverter.a */;
			productType = "com.apple.product-type.library.static";
		};
		A93747701A9A98D000F29B34 /* MoltenVKGLSLToSPIRVConverter-macOS */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = A93747841A9A98D000F29B34 /* Build configuration list for PBXNativeTarget "MoltenVKGLSLToSPIRVConverter-macOS" */;
			buildPhases = (
				A937476E1A9A98D000F29B34 /* Headers */,
				A937476C1A9A98D000F29B34 /* Sources */,
				A972AD2C21CEE6C30013AB25 /* Frameworks */,
				A9C70F4A221B076D00FBA31A /* Create Dynamic Library */,
				A941E2A9221ACA2C00890C56 /* Create Framework */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "MoltenVKGLSLToSPIRVConverter-macOS";
			productName = "MetalGLShaderConverter-macOS";
			productReference = A964BD601C57EFBD00D930D8 /* libMoltenVKGLSLToSPIRVConverter.a */;
			productType = "com.apple.product-type.library.static";
		};
		A93903B81C57E9D700FE90DC /* MoltenVKSPIRVToMSLConverter-iOS */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = A93903BC1C57E9D700FE90DC /* Build configuration list for PBXNativeTarget "MoltenVKSPIRVToMSLConverter-iOS" */;
			buildPhases = (
				A93903B91C57E9D700FE90DC /* Headers */,
				A93903BA1C57E9D700FE90DC /* Sources */,
				A972AD2E21CEE6F50013AB25 /* Frameworks */,
				A9C70F4B221B077C00FBA31A /* Create Dynamic Library */,
				A941E2A8221AC9E800890C56 /* Create Framework */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "MoltenVKSPIRVToMSLConverter-iOS";
			productName = "MetalGLShaderConverter-iOS";
			productReference = A93903BF1C57E9D700FE90DC /* libMoltenVKSPIRVToMSLConverter.a */;
			productType = "com.apple.product-type.library.static";
		};
		A93903C01C57E9ED00FE90DC /* MoltenVKSPIRVToMSLConverter-macOS */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = A93903C41C57E9ED00FE90DC /* Build configuration list for PBXNativeTarget "MoltenVKSPIRVToMSLConverter-macOS" */;
			buildPhases = (
				A93903C11C57E9ED00FE90DC /* Headers */,
				A93903C21C57E9ED00FE90DC /* Sources */,
				A972AD3321CEE7230013AB25 /* Frameworks */,
				A9C70F4C221B078C00FBA31A /* Create Dynamic Library */,
				A941E2AA221ACA4C00890C56 /* Create Framework */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "MoltenVKSPIRVToMSLConverter-macOS";
			productName = "MetalGLShaderConverter-macOS";
			productReference = A93903C71C57E9ED00FE90DC /* libMoltenVKSPIRVToMSLConverter.a */;
			productType = "com.apple.product-type.library.static";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		A9F55D25198BE6A7004EC31B /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 1150;
				ORGANIZATIONNAME = "The Brenwill Workshop Ltd.";
				TargetAttributes = {
					A9092A8C1A81717B00051823 = {
						CreatedOnToolsVersion = 6.1.1;
						DevelopmentTeam = VU3TCKU48B;
					};
					A937472B1A9A8B2900F29B34 = {
						CreatedOnToolsVersion = 6.1.1;
						DevelopmentTeam = VU3TCKU48B;
					};
					A93747701A9A98D000F29B34 = {
						CreatedOnToolsVersion = 6.1.1;
						DevelopmentTeam = VU3TCKU48B;
					};
					A93903B81C57E9D700FE90DC = {
						DevelopmentTeam = VU3TCKU48B;
					};
					A93903C01C57E9ED00FE90DC = {
						DevelopmentTeam = VU3TCKU48B;
					};
				};
			};
			buildConfigurationList = A9F55D28198BE6A7004EC31B /* Build configuration list for PBXProject "MoltenVKShaderConverter" */;
			compatibilityVersion = "Xcode 8.0";
			developmentRegion = en;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = A9F55D24198BE6A7004EC31B;
			productRefGroup = A9F55D24198BE6A7004EC31B;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				A9092A8C1A81717B00051823 /* MoltenVKShaderConverter */,
				A937472B1A9A8B2900F29B34 /* MoltenVKGLSLToSPIRVConverter-iOS */,
				A93747701A9A98D000F29B34 /* MoltenVKGLSLToSPIRVConverter-macOS */,
				A93903B81C57E9D700FE90DC /* MoltenVKSPIRVToMSLConverter-iOS */,
				A93903C01C57E9ED00FE90DC /* MoltenVKSPIRVToMSLConverter-macOS */,
			);
		};
/* End PBXProject section */

/* Begin PBXShellScriptBuildPhase section */
		A941E2A7221AC9C300890C56 /* Create Framework */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
			);
			inputPaths = (
			);
			name = "Create Framework";
			outputFileListPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = ". \"${SRCROOT}/../Scripts/create_framework_ios.sh\"\n";
		};
		A941E2A8221AC9E800890C56 /* Create Framework */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
			);
			inputPaths = (
			);
			name = "Create Framework";
			outputFileListPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = ". \"${SRCROOT}/../Scripts/create_framework_ios.sh\"\n";
		};
		A941E2A9221ACA2C00890C56 /* Create Framework */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
			);
			inputPaths = (
			);
			name = "Create Framework";
			outputFileListPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = ". \"${SRCROOT}/../Scripts/create_framework_macos.sh\"\n";
		};
		A941E2AA221ACA4C00890C56 /* Create Framework */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
			);
			inputPaths = (
			);
			name = "Create Framework";
			outputFileListPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = ". \"${SRCROOT}/../Scripts/create_framework_macos.sh\"\n";
		};
		A9C70F49221B075700FBA31A /* Create Dynamic Library */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
			);
			inputPaths = (
			);
			name = "Create Dynamic Library";
			outputFileListPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = ". \"${SRCROOT}/../Scripts/create_dylib_ios.sh\"\n";
		};
		A9C70F4A221B076D00FBA31A /* Create Dynamic Library */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
			);
			inputPaths = (
			);
			name = "Create Dynamic Library";
			outputFileListPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = ". \"${SRCROOT}/../Scripts/create_dylib_macos.sh\"\n";
		};
		A9C70F4B221B077C00FBA31A /* Create Dynamic Library */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
			);
			inputPaths = (
			);
			name = "Create Dynamic Library";
			outputFileListPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = ". \"${SRCROOT}/../Scripts/create_dylib_ios.sh\"\n";
		};
		A9C70F4C221B078C00FBA31A /* Create Dynamic Library */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputFileListPaths = (
			);
			inputPaths = (
			);
			name = "Create Dynamic Library";
			outputFileListPaths = (
			);
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = ". \"${SRCROOT}/../Scripts/create_dylib_macos.sh\"\n";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		A9092A891A81717B00051823 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A97CC7411C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp in Sources */,
				A9C70F63221B321700FBA31A /* SPIRVSupport.cpp in Sources */,
				A95096BF2003D32400F10950 /* OSSupport.mm in Sources */,
				A9B51BDD225E98BB00AC74D2 /* MVKOSExtensions.mm in Sources */,
				A97CC7401C7527F3004A5C7E /* main.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A93747271A9A8B2900F29B34 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A90941A31C581F840094110D /* GLSLConversion.mm in Sources */,
				A9C70F64221B321700FBA31A /* SPIRVSupport.cpp in Sources */,
				A90940A71C5808BB0094110D /* GLSLToSPIRVConverter.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A937476C1A9A98D000F29B34 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A90941A41C581F840094110D /* GLSLConversion.mm in Sources */,
				A9C70F65221B321700FBA31A /* SPIRVSupport.cpp in Sources */,
				A90940A81C5808BB0094110D /* GLSLToSPIRVConverter.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A93903BA1C57E9D700FE90DC /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A95096BB2003D00300F10950 /* FileSupport.mm in Sources */,
				A909408A1C58013E0094110D /* SPIRVToMSLConverter.cpp in Sources */,
				A9C70F66221B321700FBA31A /* SPIRVSupport.cpp in Sources */,
				A928C91B1D0488DC00071B88 /* SPIRVConversion.mm in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A93903C21C57E9ED00FE90DC /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A95096BC2003D00300F10950 /* FileSupport.mm in Sources */,
				A909408B1C58013E0094110D /* SPIRVToMSLConverter.cpp in Sources */,
				A9C70F67221B321700FBA31A /* SPIRVSupport.cpp in Sources */,
				A928C91C1D0488DC00071B88 /* SPIRVConversion.mm in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		A925B71D1C78DEBF006E7ECD /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = A93903C01C57E9ED00FE90DC /* MoltenVKSPIRVToMSLConverter-macOS */;
			targetProxy = A925B71C1C78DEBF006E7ECD /* PBXContainerItemProxy */;
		};
		A93749CF1A9AA7AF00F29B34 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = A93747701A9A98D000F29B34 /* MoltenVKGLSLToSPIRVConverter-macOS */;
			targetProxy = A93749CE1A9AA7AF00F29B34 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		A9092A911A81717C00051823 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GENERATE_MASTER_OBJECT_FILE = NO;
				MACH_O_TYPE = mh_execute;
				OTHER_LDFLAGS = (
					"-ObjC",
					"-w",
				);
				PRODUCT_NAME = MoltenVKShaderConverter;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		A9092A921A81717C00051823 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GENERATE_MASTER_OBJECT_FILE = NO;
				MACH_O_TYPE = mh_execute;
				OTHER_LDFLAGS = (
					"-ObjC",
					"-w",
				);
				PRODUCT_NAME = MoltenVKShaderConverter;
				SDKROOT = macosx;
			};
			name = Release;
		};
		A93747401A9A8B2900F29B34 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = arm64;
				BITCODE_GENERATION_MODE = bitcode;
				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO;
				CLANG_WARN_UNREACHABLE_CODE = NO;
				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO;
				GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
				GCC_WARN_UNUSED_PARAMETER = NO;
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/iOS\"";
				PRODUCT_NAME = MoltenVKGLSLToSPIRVConverter;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALID_ARCHS = arm64;
			};
			name = Debug;
		};
		A93747411A9A8B2900F29B34 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = arm64;
				BITCODE_GENERATION_MODE = bitcode;
				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO;
				CLANG_WARN_UNREACHABLE_CODE = NO;
				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO;
				GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
				GCC_WARN_UNUSED_PARAMETER = NO;
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/iOS\"";
				PRODUCT_NAME = MoltenVKGLSLToSPIRVConverter;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALID_ARCHS = arm64;
			};
			name = Release;
		};
		A93747851A9A98D000F29B34 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO;
				CLANG_WARN_UNREACHABLE_CODE = NO;
				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO;
				GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
				GCC_WARN_UNUSED_PARAMETER = NO;
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/macOS\"";
				PRODUCT_NAME = MoltenVKGLSLToSPIRVConverter;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		A93747861A9A98D000F29B34 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO;
				CLANG_WARN_UNREACHABLE_CODE = NO;
				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO;
				GCC_WARN_CHECK_SWITCH_STATEMENTS = NO;
				GCC_WARN_UNUSED_PARAMETER = NO;
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/macOS\"";
				PRODUCT_NAME = MoltenVKGLSLToSPIRVConverter;
				SDKROOT = macosx;
			};
			name = Release;
		};
		A93903BD1C57E9D700FE90DC /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = arm64;
				BITCODE_GENERATION_MODE = bitcode;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"$(inherited)",
					"SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross",
				);
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/iOS\"";
				PRODUCT_NAME = MoltenVKSPIRVToMSLConverter;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALID_ARCHS = arm64;
			};
			name = Debug;
		};
		A93903BE1C57E9D700FE90DC /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = arm64;
				BITCODE_GENERATION_MODE = bitcode;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"$(inherited)",
					"SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross",
				);
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/iOS\"";
				PRODUCT_NAME = MoltenVKSPIRVToMSLConverter;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALID_ARCHS = arm64;
			};
			name = Release;
		};
		A93903C51C57E9ED00FE90DC /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_PREPROCESSOR_DEFINITIONS = (
					"$(inherited)",
					"SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross",
				);
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/macOS\"";
				PRODUCT_NAME = MoltenVKSPIRVToMSLConverter;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		A93903C61C57E9ED00FE90DC /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_PREPROCESSOR_DEFINITIONS = (
					"$(inherited)",
					"SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross",
				);
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/Latest/macOS\"";
				PRODUCT_NAME = MoltenVKSPIRVToMSLConverter;
				SDKROOT = macosx;
			};
			name = Release;
		};
		A9F55D3F198BE6A8004EC31B /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = NO;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_CXX0X_EXTENSIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = NO;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
				GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_PARAMETER = YES;
				GCC_WARN_UNUSED_VARIABLE = NO;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)\"",
					"\"$(SRCROOT)/glslang\"",
					"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
				);
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				MACH_O_TYPE = staticlib;
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				ONLY_ACTIVE_ARCH = YES;
				SKIP_INSTALL = YES;
				VALID_ARCHS = x86_64;
			};
			name = Debug;
		};
		A9F55D40198BE6A8004EC31B /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = NO;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_CXX0X_EXTENSIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = NO;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = YES;
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = fast;
				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
				GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_PARAMETER = YES;
				GCC_WARN_UNUSED_VARIABLE = NO;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)\"",
					"\"$(SRCROOT)/glslang\"",
					"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
				);
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				MACH_O_TYPE = staticlib;
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				SKIP_INSTALL = YES;
				VALIDATE_PRODUCT = YES;
				VALID_ARCHS = x86_64;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		A9092A931A81717C00051823 /* Build configuration list for PBXNativeTarget "MoltenVKShaderConverter" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A9092A911A81717C00051823 /* Debug */,
				A9092A921A81717C00051823 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A937473F1A9A8B2900F29B34 /* Build configuration list for PBXNativeTarget "MoltenVKGLSLToSPIRVConverter-iOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A93747401A9A8B2900F29B34 /* Debug */,
				A93747411A9A8B2900F29B34 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A93747841A9A98D000F29B34 /* Build configuration list for PBXNativeTarget "MoltenVKGLSLToSPIRVConverter-macOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A93747851A9A98D000F29B34 /* Debug */,
				A93747861A9A98D000F29B34 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A93903BC1C57E9D700FE90DC /* Build configuration list for PBXNativeTarget "MoltenVKSPIRVToMSLConverter-iOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A93903BD1C57E9D700FE90DC /* Debug */,
				A93903BE1C57E9D700FE90DC /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A93903C41C57E9ED00FE90DC /* Build configuration list for PBXNativeTarget "MoltenVKSPIRVToMSLConverter-macOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A93903C51C57E9ED00FE90DC /* Debug */,
				A93903C61C57E9ED00FE90DC /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A9F55D28198BE6A7004EC31B /* Build configuration list for PBXProject "MoltenVKShaderConverter" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A9F55D3F198BE6A8004EC31B /* Debug */,
				A9F55D40198BE6A8004EC31B /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = A9F55D25198BE6A7004EC31B /* Project object */;
}
