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

/* Begin PBXAggregateTarget section */
		A9FEADBC1F3517480010240E /* MoltenVK */ = {
			isa = PBXAggregateTarget;
			buildConfigurationList = A9FEADDC1F3517480010240E /* Build configuration list for PBXAggregateTarget "MoltenVK" */;
			buildPhases = (
				A9FEADD61F3517480010240E /* Package MoltenVK */,
				A9FEADD71F3517480010240E /* Package MoltenVKShaderConverter */,
				A9A5D8A61FB3AABA00F20475 /* Package Docs */,
				A9FEADDB1F3517480010240E /* Update Latest */,
			);
			dependencies = (
				A9FEADBD1F3517480010240E /* PBXTargetDependency */,
				A9FEADBF1F3517480010240E /* PBXTargetDependency */,
				A98149D11FB7689D005F00B4 /* PBXTargetDependency */,
				A98149D31FB7689D005F00B4 /* PBXTargetDependency */,
				A98149CD1FB7689D005F00B4 /* PBXTargetDependency */,
				A98149CF1FB7689D005F00B4 /* PBXTargetDependency */,
				A98149CB1FB7689D005F00B4 /* PBXTargetDependency */,
			);
			name = MoltenVK;
			productName = Package;
		};
/* End PBXAggregateTarget section */

/* Begin PBXContainerItemProxy section */
		A92DB3F41CE0F72500FBC835 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A9B8EE0A1A98D796009C5A02;
			remoteInfo = "MoltenVK-iOS";
		};
		A92DB3F61CE0F72500FBC835 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A9CBEE011B6299D800E45FDC;
			remoteInfo = "MoltenVK-macOS";
		};
		A981498A1FB6B566005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A964BD5F1C57EFBD00D930D8;
			remoteInfo = MoltenVKShaderConverter;
		};
		A981498C1FB6B566005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A964BD611C57EFBD00D930D8;
			remoteInfo = "MoltenVKGLSLToSPIRVConverter-iOS";
		};
		A981498E1FB6B566005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A964BD601C57EFBD00D930D8;
			remoteInfo = "MoltenVKGLSLToSPIRVConverter-macOS";
		};
		A98149901FB6B566005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A93903BF1C57E9D700FE90DC;
			remoteInfo = "MoltenVKSPIRVToMSLConverter-iOS";
		};
		A98149921FB6B566005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A93903C71C57E9ED00FE90DC;
			remoteInfo = "MoltenVKSPIRVToMSLConverter-macOS";
		};
		A98149CA1FB7689D005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A9092A8C1A81717B00051823;
			remoteInfo = MoltenVKShaderConverter;
		};
		A98149CC1FB7689D005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A937472B1A9A8B2900F29B34;
			remoteInfo = "MoltenVKGLSLToSPIRVConverter-iOS";
		};
		A98149CE1FB7689D005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A93747701A9A98D000F29B34;
			remoteInfo = "MoltenVKGLSLToSPIRVConverter-macOS";
		};
		A98149D01FB7689D005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A93903B81C57E9D700FE90DC;
			remoteInfo = "MoltenVKSPIRVToMSLConverter-iOS";
		};
		A98149D21FB7689D005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A93903C01C57E9ED00FE90DC;
			remoteInfo = "MoltenVKSPIRVToMSLConverter-macOS";
		};
		A9FEADBE1F3517480010240E /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A9B8EE091A98D796009C5A02;
			remoteInfo = "MoltenVK-iOS";
		};
		A9FEADC01F3517480010240E /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A9CBED861B6299D800E45FDC;
			remoteInfo = "MoltenVK-macOS";
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		A92DB3E41CE0F37D00FBC835 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
		A92DB3E51CE0F37D00FBC835 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
		A92DB3E61CE0F37D00FBC835 /* Whats_New.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = Whats_New.md; path = Docs/Whats_New.md; sourceTree = "<group>"; };
		A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MoltenVK.xcodeproj; path = MoltenVK/MoltenVK.xcodeproj; sourceTree = "<group>"; };
		A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MoltenVKShaderConverter.xcodeproj; path = MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj; sourceTree = "<group>"; };
		A943100220546CDD00F5CF87 /* fetchDependencies */ = {isa = PBXFileReference; lastKnownFileType = text; name = fetchDependencies; path = ../fetchDependencies; sourceTree = "<group>"; };
		A98149E51FB78829005F00B4 /* MoltenVK_Runtime_UserGuide.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = MoltenVK_Runtime_UserGuide.md; path = Docs/MoltenVK_Runtime_UserGuide.md; sourceTree = "<group>"; };
		A9AD67D12054E2D700ED3C08 /* VulkanSamples_repo_revision */ = {isa = PBXFileReference; lastKnownFileType = text; path = VulkanSamples_repo_revision; sourceTree = "<group>"; };
		A9AD67D32054E2D700ED3C08 /* SPIRV-Cross_repo_revision */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SPIRV-Cross_repo_revision"; sourceTree = "<group>"; };
		A9AD67E92055D8A600ED3C08 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
		A9D3560A20BB3A2900BE295C /* glslang_repo_revision */ = {isa = PBXFileReference; lastKnownFileType = text; path = glslang_repo_revision; sourceTree = "<group>"; };
		A9D3560B20BB3A5600BE295C /* Vulkan-Headers_repo_revision */ = {isa = PBXFileReference; lastKnownFileType = text; path = "Vulkan-Headers_repo_revision"; sourceTree = "<group>"; };
		A9D3560C20BB3A7200BE295C /* Vulkan-Tools_repo_revision */ = {isa = PBXFileReference; lastKnownFileType = text; path = "Vulkan-Tools_repo_revision"; sourceTree = "<group>"; };
		A9EE46412065766C00193200 /* cereal_repo_revision */ = {isa = PBXFileReference; lastKnownFileType = text; path = cereal_repo_revision; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXGroup section */
		A90B2B1C1A9B6170008EE819 = {
			isa = PBXGroup;
			children = (
				A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */,
				A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */,
				A92DB3E11CE0F34500FBC835 /* Docs */,
				A939A6FB1F5479D0006ACA0C /* External */,
			);
			sourceTree = "<group>";
		};
		A92DB3E11CE0F34500FBC835 /* Docs */ = {
			isa = PBXGroup;
			children = (
				A92DB3E41CE0F37D00FBC835 /* README.md */,
				A92DB3E51CE0F37D00FBC835 /* LICENSE */,
				A98149E51FB78829005F00B4 /* MoltenVK_Runtime_UserGuide.md */,
				A92DB3E61CE0F37D00FBC835 /* Whats_New.md */,
			);
			name = Docs;
			sourceTree = "<group>";
		};
		A92DB3EF1CE0F72500FBC835 /* Products */ = {
			isa = PBXGroup;
			children = (
				A92DB3F51CE0F72500FBC835 /* MoltenVK.framework */,
				A92DB3F71CE0F72500FBC835 /* MoltenVK.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		A939A6FB1F5479D0006ACA0C /* External */ = {
			isa = PBXGroup;
			children = (
				A9AD67E92055D8A600ED3C08 /* README.md */,
				A943100220546CDD00F5CF87 /* fetchDependencies */,
				A9EE46412065766C00193200 /* cereal_repo_revision */,
				A9D3560A20BB3A2900BE295C /* glslang_repo_revision */,
				A9AD67D32054E2D700ED3C08 /* SPIRV-Cross_repo_revision */,
				A9D3560B20BB3A5600BE295C /* Vulkan-Headers_repo_revision */,
				A9D3560C20BB3A7200BE295C /* Vulkan-Tools_repo_revision */,
				A9AD67D12054E2D700ED3C08 /* VulkanSamples_repo_revision */,
			);
			name = External;
			path = ExternalRevisions;
			sourceTree = "<group>";
		};
		A98149741FB6B565005F00B4 /* Products */ = {
			isa = PBXGroup;
			children = (
				A981498B1FB6B566005F00B4 /* MoltenVKShaderConverter */,
				A981498D1FB6B566005F00B4 /* MoltenVKGLSLToSPIRVConverter.framework */,
				A981498F1FB6B566005F00B4 /* MoltenVKGLSLToSPIRVConverter.framework */,
				A98149911FB6B566005F00B4 /* MoltenVKSPIRVToMSLConverter.framework */,
				A98149931FB6B566005F00B4 /* MoltenVKSPIRVToMSLConverter.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXProject section */
		A90B2B1D1A9B6170008EE819 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0940;
				TargetAttributes = {
					A9FEADBC1F3517480010240E = {
						DevelopmentTeam = VU3TCKU48B;
					};
				};
			};
			buildConfigurationList = A90B2B201A9B6170008EE819 /* Build configuration list for PBXProject "MoltenVKPackaging" */;
			compatibilityVersion = "Xcode 8.0";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = A90B2B1C1A9B6170008EE819;
			projectDirPath = "";
			projectReferences = (
				{
					ProductGroup = A92DB3EF1CE0F72500FBC835 /* Products */;
					ProjectRef = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
				},
				{
					ProductGroup = A98149741FB6B565005F00B4 /* Products */;
					ProjectRef = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
				},
			);
			projectRoot = "";
			targets = (
				A9FEADBC1F3517480010240E /* MoltenVK */,
			);
		};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
		A92DB3F51CE0F72500FBC835 /* MoltenVK.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = MoltenVK.framework;
			remoteRef = A92DB3F41CE0F72500FBC835 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A92DB3F71CE0F72500FBC835 /* MoltenVK.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = MoltenVK.framework;
			remoteRef = A92DB3F61CE0F72500FBC835 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A981498B1FB6B566005F00B4 /* MoltenVKShaderConverter */ = {
			isa = PBXReferenceProxy;
			fileType = "compiled.mach-o.executable";
			path = MoltenVKShaderConverter;
			remoteRef = A981498A1FB6B566005F00B4 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A981498D1FB6B566005F00B4 /* MoltenVKGLSLToSPIRVConverter.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = MoltenVKGLSLToSPIRVConverter.framework;
			remoteRef = A981498C1FB6B566005F00B4 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A981498F1FB6B566005F00B4 /* MoltenVKGLSLToSPIRVConverter.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = MoltenVKGLSLToSPIRVConverter.framework;
			remoteRef = A981498E1FB6B566005F00B4 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A98149911FB6B566005F00B4 /* MoltenVKSPIRVToMSLConverter.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = MoltenVKSPIRVToMSLConverter.framework;
			remoteRef = A98149901FB6B566005F00B4 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A98149931FB6B566005F00B4 /* MoltenVKSPIRVToMSLConverter.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = MoltenVKSPIRVToMSLConverter.framework;
			remoteRef = A98149921FB6B566005F00B4 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
/* End PBXReferenceProxy section */

/* Begin PBXShellScriptBuildPhase section */
		A9A5D8A61FB3AABA00F20475 /* Package Docs */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Package Docs";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "set -e\n\n# Package folder\nexport MVK_WKSPC_PATH=\"${PROJECT_DIR}\"\nexport MVK_PKG_LOCN=\"${MVK_WKSPC_PATH}/Package\"\nexport MVK_PKG_CONFIG_PATH=\"${MVK_PKG_LOCN}/${CONFIGURATION}\"\n\n# Copy the docs. Allow silent fail if a symlinked doc is not built.\ncp -a \"${MVK_WKSPC_PATH}/LICENSE\" \"${MVK_PKG_CONFIG_PATH}\"\ncp -pRLf \"${MVK_WKSPC_PATH}/Docs\" \"${MVK_PKG_CONFIG_PATH}\" 2> /dev/null || true\n";
		};
		A9FEADD61F3517480010240E /* Package MoltenVK */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Package MoltenVK";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "set -e\n\n# Package folder\nexport MVK_PROD_NAME=\"MoltenVK\"\nexport MVK_DYLIB_NAME=\"lib${MVK_PROD_NAME}.dylib\"\nexport MVK_ICD_NAME=\"${MVK_PROD_NAME}_icd.json\"\nexport MVK_WKSPC_PATH=\"${PROJECT_DIR}\"\nexport MVK_PROD_PROJ_PATH=\"${MVK_WKSPC_PATH}/${MVK_PROD_NAME}\"\nexport MVK_PKG_LOCN=\"${MVK_WKSPC_PATH}/Package\"\nexport MVK_PKG_CONFIG_PATH=\"${MVK_PKG_LOCN}/${CONFIGURATION}\"\nexport MVK_PKG_PROD_PATH=\"${MVK_PKG_CONFIG_PATH}/${MVK_PROD_NAME}\"\n\n# Remove the product folder\nrm -rf \"${MVK_PKG_PROD_PATH}\"\n\n# Remove and replace the existing macOS framework folder and copy framework into it\nexport MVK_OS_PROD_PATH=\"${MVK_PKG_PROD_PATH}/macOS\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}\"\nrm -rf \"${MVK_OS_PROD_PATH}\"\nmkdir -p \"${MVK_OS_PROD_PATH}\"\ncp -a \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework\" \"${MVK_OS_PROD_PATH}\"\ncp -a \"${MVK_BUILT_PROD_PATH}/${MVK_DYLIB_NAME}\" \"${MVK_OS_PROD_PATH}\"\ncp -a \"${MVK_PROD_PROJ_PATH}/icd/${MVK_ICD_NAME}\" \"${MVK_OS_PROD_PATH}\"\n\n# Remove and replace the existing iOS framework folder and copy framework into it\nexport MVK_OS_PROD_PATH=\"${MVK_PKG_PROD_PATH}/iOS\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}-iphoneos\"\nrm -rf \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/_CodeSignature\"\nrm -rf \"${MVK_OS_PROD_PATH}\"\nmkdir -p \"${MVK_OS_PROD_PATH}\"\ncp -a \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework\" \"${MVK_OS_PROD_PATH}\"\ncp -a \"${MVK_BUILT_PROD_PATH}/${MVK_DYLIB_NAME}\" \"${MVK_OS_PROD_PATH}\"\ncp -a \"${MVK_PROD_PROJ_PATH}/icd/${MVK_ICD_NAME}\" \"${MVK_OS_PROD_PATH}\"\n\n# Remove and replace header include folder\nrm -rf \"${MVK_PKG_PROD_PATH}/include\"\ncp -pRL \"${MVK_PROD_PROJ_PATH}/include\" \"${MVK_PKG_PROD_PATH}\"";
		};
		A9FEADD71F3517480010240E /* Package MoltenVKShaderConverter */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Package MoltenVKShaderConverter";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "set -e\n\n# Package folder\nexport MVK_PROD_BASE_NAME=\"MoltenVKShaderConverter\"\nexport MVK_WKSPC_PATH=\"${PROJECT_DIR}\"\nexport MVK_PKG_LOCN=\"${MVK_WKSPC_PATH}/Package\"\n\n# Remove the base product folder\nrm -rf \"${MVK_PKG_LOCN}/${CONFIGURATION}/${MVK_PROD_BASE_NAME}\"\n\n#-----------------------------------\n# MoltenVKGLSLToSPIRVConverter\nexport MVK_PROD_NAME=\"MoltenVKGLSLToSPIRVConverter\"\nexport MVK_PKG_CONFIG_PATH=\"${MVK_PKG_LOCN}/${CONFIGURATION}/${MVK_PROD_BASE_NAME}/${MVK_PROD_NAME}\"\n\n# Remove and replace the existing macOS framework folder and copy framework into it\nexport MVK_OS_PROD_PATH=\"${MVK_PKG_CONFIG_PATH}/macOS\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}\"\nrm -rf \"${MVK_OS_PROD_PATH}\"\nmkdir -p \"${MVK_OS_PROD_PATH}\"\ncp -a \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework\" \"${MVK_OS_PROD_PATH}\"\n\n# Remove and replace the existing iOS framework folder and copy framework into it\nexport MVK_OS_PROD_PATH=\"${MVK_PKG_CONFIG_PATH}/iOS\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}-iphoneos\"\nrm -rf \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/_CodeSignature\"\nrm -rf \"${MVK_OS_PROD_PATH}\"\nmkdir -p \"${MVK_OS_PROD_PATH}\"\ncp -a \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework\" \"${MVK_OS_PROD_PATH}\"\n\n#-----------------------------------\n# MoltenVKSPIRVToMSLConverter\nexport MVK_PROD_NAME=\"MoltenVKSPIRVToMSLConverter\"\nexport MVK_PKG_CONFIG_PATH=\"${MVK_PKG_LOCN}/${CONFIGURATION}/${MVK_PROD_BASE_NAME}/${MVK_PROD_NAME}\"\n\n# Remove and replace the existing macOS framework folder and copy framework into it\nexport MVK_OS_PROD_PATH=\"${MVK_PKG_CONFIG_PATH}/macOS\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}\"\nrm -rf \"${MVK_OS_PROD_PATH}\"\nmkdir -p \"${MVK_OS_PROD_PATH}\"\ncp -a \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework\" \"${MVK_OS_PROD_PATH}\"\n\n# Remove and replace the existing iOS framework folder and copy framework into it\nexport MVK_OS_PROD_PATH=\"${MVK_PKG_CONFIG_PATH}/iOS\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}-iphoneos\"\nrm -rf \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/_CodeSignature\"\nrm -rf \"${MVK_OS_PROD_PATH}\"\nmkdir -p \"${MVK_OS_PROD_PATH}\"\ncp -a \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework\" \"${MVK_OS_PROD_PATH}\"\n\n#-----------------------------------\n# MoltenVKShaderConverter Tool\nexport MVK_PROD_NAME=\"MoltenVKShaderConverter\"\nexport MVK_PKG_CONFIG_PATH=\"${MVK_PKG_LOCN}/${CONFIGURATION}/${MVK_PROD_BASE_NAME}\"\n\n# Remove and replace the existing macOS framework folder and copy framework into it\nexport MVK_OS_PROD_PATH=\"${MVK_PKG_CONFIG_PATH}/Tools\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}\"\nrm -rf \"${MVK_OS_PROD_PATH}\"\nmkdir -p \"${MVK_OS_PROD_PATH}\"\ncp -a \"${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}\" \"${MVK_OS_PROD_PATH}\"\n";
		};
		A9FEADDB1F3517480010240E /* Update Latest */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Update Latest";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "set -e\n\n# Package folder\nexport MVK_WKSPC_LOCN=\"${PROJECT_DIR}\"\nexport MVK_PKG_LOCN=\"${MVK_WKSPC_LOCN}/Package\"\n\n# Configuration package folder location\nexport MVK_PKG_CONFIG_LOCN=\"${CONFIGURATION}\"\nexport MVK_PKG_LATEST_LOCN=\"Latest\"\n\n# Assign symlink from Latest\nln -sfn \"${MVK_PKG_LOCN}/${MVK_PKG_CONFIG_LOCN}\" \"${MVK_PKG_LOCN}/${MVK_PKG_LATEST_LOCN}\"";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXTargetDependency section */
		A98149CB1FB7689D005F00B4 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = MoltenVKShaderConverter;
			targetProxy = A98149CA1FB7689D005F00B4 /* PBXContainerItemProxy */;
		};
		A98149CD1FB7689D005F00B4 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVKGLSLToSPIRVConverter-iOS";
			targetProxy = A98149CC1FB7689D005F00B4 /* PBXContainerItemProxy */;
		};
		A98149CF1FB7689D005F00B4 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVKGLSLToSPIRVConverter-macOS";
			targetProxy = A98149CE1FB7689D005F00B4 /* PBXContainerItemProxy */;
		};
		A98149D11FB7689D005F00B4 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVKSPIRVToMSLConverter-iOS";
			targetProxy = A98149D01FB7689D005F00B4 /* PBXContainerItemProxy */;
		};
		A98149D31FB7689D005F00B4 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVKSPIRVToMSLConverter-macOS";
			targetProxy = A98149D21FB7689D005F00B4 /* PBXContainerItemProxy */;
		};
		A9FEADBD1F3517480010240E /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVK-iOS";
			targetProxy = A9FEADBE1F3517480010240E /* PBXContainerItemProxy */;
		};
		A9FEADBF1F3517480010240E /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVK-macOS";
			targetProxy = A9FEADC01F3517480010240E /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		A90B2B211A9B6170008EE819 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
			};
			name = Debug;
		};
		A90B2B221A9B6170008EE819 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
			};
			name = Release;
		};
		A9FEADDD1F3517480010240E /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS)";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		A9FEADDE1F3517480010240E /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS)";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		A90B2B201A9B6170008EE819 /* Build configuration list for PBXProject "MoltenVKPackaging" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A90B2B211A9B6170008EE819 /* Debug */,
				A90B2B221A9B6170008EE819 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A9FEADDC1F3517480010240E /* Build configuration list for PBXAggregateTarget "MoltenVK" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A9FEADDD1F3517480010240E /* Debug */,
				A9FEADDE1F3517480010240E /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = A90B2B1D1A9B6170008EE819 /* Project object */;
}
