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

/* Begin PBXBuildFile section */
		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 /* DirectorySupport.mm in Sources */ = {isa = PBXBuildFile; fileRef = A95096BD2003D32400F10950 /* DirectorySupport.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 */; };
		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 */; };
		A9E337B8220129ED00363D2A /* MVKLogging.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9E337B7220129ED00363D2A /* MVKLogging.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 */; };
		A9F042B41FB4D060009FCCB8 /* MVKLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AB1FB4D060009FCCB8 /* MVKLogging.h */; };
		A9F042B51FB4D060009FCCB8 /* MVKLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AB1FB4D060009FCCB8 /* MVKLogging.h */; };
		A9F042B61FB4D060009FCCB8 /* MVKLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AB1FB4D060009FCCB8 /* MVKLogging.h */; };
		A9F042B71FB4D060009FCCB8 /* MVKLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AB1FB4D060009FCCB8 /* MVKLogging.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 */
		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 /* DirectorySupport.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DirectorySupport.mm; sourceTree = "<group>"; };
		A95096BE2003D32400F10950 /* DirectorySupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectorySupport.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>"; };
		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; };
		A9E337B7220129ED00363D2A /* MVKLogging.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MVKLogging.cpp; sourceTree = "<group>"; };
		A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCommonEnvironment.h; sourceTree = "<group>"; };
		A9F042AB1FB4D060009FCCB8 /* MVKLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKLogging.h; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		A9092A8A1A81717B00051823 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				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 */,
				A9093F5A1C58013E0094110D /* SPIRVToMSLConverter.cpp */,
				A9093F5B1C58013E0094110D /* SPIRVToMSLConverter.h */,
			);
			path = MoltenVKSPIRVToMSLConverter;
			sourceTree = "<group>";
		};
		A90940A11C5808BB0094110D /* MoltenVKGLSLToSPIRVConverter */ = {
			isa = PBXGroup;
			children = (
				A90940A31C5808BB0094110D /* GLSLToSPIRVConverter.cpp */,
				A90940A41C5808BB0094110D /* GLSLToSPIRVConverter.h */,
				A90941A11C581F840094110D /* GLSLConversion.mm */,
				A90941A21C581F840094110D /* GLSLConversion.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 = (
				A972AD2A21CEE6A90013AB25 /* libglslang.a */,
				A972AD3821CEE7480013AB25 /* libglslang.a */,
				A972AD2F21CEE7040013AB25 /* libSPIRVCross.a */,
				A972AD3521CEE7330013AB25 /* libSPIRVCross.a */,
				A972AD3021CEE7040013AB25 /* libSPIRVTools.a */,
				A972AD3421CEE7330013AB25 /* libSPIRVTools.a */,
			);
			name = Frameworks;
			path = ../External/build;
			sourceTree = SOURCE_ROOT;
		};
		A97CC73C1C7527F3004A5C7E /* MoltenVKShaderConverterTool */ = {
			isa = PBXGroup;
			children = (
				A95096BE2003D32400F10950 /* DirectorySupport.h */,
				A95096BD2003D32400F10950 /* DirectorySupport.mm */,
				A97CC73D1C7527F3004A5C7E /* main.cpp */,
				A97CC73E1C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp */,
				A97CC73F1C7527F3004A5C7E /* MoltenVKShaderConverterTool.h */,
			);
			path = MoltenVKShaderConverterTool;
			sourceTree = "<group>";
		};
		A9F042A81FB4D060009FCCB8 /* Common */ = {
			isa = PBXGroup;
			children = (
				A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */,
				A9E337B7220129ED00363D2A /* MVKLogging.cpp */,
				A9F042AB1FB4D060009FCCB8 /* MVKLogging.h */,
				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 = (
				A9F042B41FB4D060009FCCB8 /* MVKLogging.h in Headers */,
				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 = (
				A9F042B51FB4D060009FCCB8 /* MVKLogging.h in Headers */,
				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 = (
				A98149681FB6A98A005F00B4 /* MVKStrings.h in Headers */,
				A9C70F61221B321700FBA31A /* SPIRVSupport.h in Headers */,
				A928C9191D0488DC00071B88 /* SPIRVConversion.h in Headers */,
				A9F042B61FB4D060009FCCB8 /* MVKLogging.h in Headers */,
				A909408C1C58013E0094110D /* SPIRVToMSLConverter.h in Headers */,
				A9F042B21FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A93903C11C57E9ED00FE90DC /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A98149691FB6A98A005F00B4 /* MVKStrings.h in Headers */,
				A9C70F62221B321700FBA31A /* SPIRVSupport.h in Headers */,
				A928C91A1D0488DC00071B88 /* SPIRVConversion.h in Headers */,
				A909408D1C58013E0094110D /* SPIRVToMSLConverter.h in Headers */,
				A9F042B71FB4D060009FCCB8 /* MVKLogging.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 = 1010;
				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 = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			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 = (
				A9E337B8220129ED00363D2A /* MVKLogging.cpp in Sources */,
				A97CC7411C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp in Sources */,
				A9C70F63221B321700FBA31A /* SPIRVSupport.cpp in Sources */,
				A95096BF2003D32400F10950 /* DirectorySupport.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";
				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";
				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/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/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;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
				);
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/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;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
				);
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/macOS\"";
				PRODUCT_NAME = MoltenVKGLSLToSPIRVConverter;
				SDKROOT = macosx;
			};
			name = Release;
		};
		A93903BD1C57E9D700FE90DC /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = arm64;
				BITCODE_GENERATION_MODE = bitcode;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)/SPIRV-Cross\"",
					"\"$(SRCROOT)/glslang/External/spirv-tools/\"",
					"\"$(SRCROOT)/glslang/build/External/spirv-tools\"",
				);
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/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_WARN_ABOUT_MISSING_PROTOTYPES = NO;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)/SPIRV-Cross\"",
					"\"$(SRCROOT)/glslang/External/spirv-tools/\"",
					"\"$(SRCROOT)/glslang/build/External/spirv-tools\"",
				);
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/iOS\"";
				PRODUCT_NAME = MoltenVKSPIRVToMSLConverter;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALID_ARCHS = arm64;
			};
			name = Release;
		};
		A93903C51C57E9ED00FE90DC /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)/SPIRV-Cross\"",
					"\"$(SRCROOT)/glslang/External/spirv-tools/\"",
					"\"$(SRCROOT)/glslang/build/External/spirv-tools\"",
				);
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/macOS\"";
				PRODUCT_NAME = MoltenVKSPIRVToMSLConverter;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		A93903C61C57E9ED00FE90DC /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"\"$(SRCROOT)/SPIRV-Cross\"",
					"\"$(SRCROOT)/glslang/External/spirv-tools/\"",
					"\"$(SRCROOT)/glslang/build/External/spirv-tools\"",
				);
				LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../External/build/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",
					"$(inherited)",
					"SPIRV_CROSS_FLT_FMT=\\\"%.6g\\\"",
				);
				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)/glslang/External/spirv-tools/include\"",
					"\"$(SRCROOT)/glslang/External/spirv-tools/external/spirv-headers/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_PREPROCESSOR_DEFINITIONS = "SPIRV_CROSS_FLT_FMT=\\\"%.6g\\\"";
				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)/glslang/External/spirv-tools/include\"",
					"\"$(SRCROOT)/glslang/External/spirv-tools/external/spirv-headers/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 */;
}
