Shader converters as XCFramework.

Create shader converters as XCFrameworks.
Don't create shader converters as fat libs, dylibs, or regular frameworks.
Rename create_xcframework.sh to create_xcframework_func.sh.
Use separate MoltenVK packaging scripts for one or all OS's.
Add package_one_os.sh.
Remove package_shader_converter_lib.sh.
Remove redundant GLSL shader converter dependencies in MoltenVK packaging targets.
This commit is contained in:
Bill Hollings 2020-08-27 19:29:14 -04:00
parent 7c2951f419
commit e97d11a4f5
11 changed files with 138 additions and 317 deletions

View File

@ -2177,7 +2177,7 @@
A9765DEE2485758500FDD115 /* validation_state.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validation_state.cpp; sourceTree = "<group>"; };
A9765DEF2485758500FDD115 /* validate_primitives.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = validate_primitives.cpp; sourceTree = "<group>"; };
A9765DF02485758500FDD115 /* decoration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decoration.h; sourceTree = "<group>"; };
A991DB2124E6016E00AEEC36 /* create_xcframework.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_xcframework.sh; sourceTree = "<group>"; };
A991DB2124E6016E00AEEC36 /* create_xcframework_func.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_xcframework_func.sh; sourceTree = "<group>"; };
A9C2104521D14FD7006BA2D3 /* fetchDependencies */ = {isa = PBXFileReference; lastKnownFileType = text; path = fetchDependencies; sourceTree = "<group>"; };
A9C2104721D15843006BA2D3 /* ExternalRevisions */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ExternalRevisions; sourceTree = "<group>"; };
A9FC5F7F249DA96D003CB086 /* package_ext_libs_finish.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_ext_libs_finish.sh; sourceTree = "<group>"; };
@ -2385,7 +2385,7 @@
A9194DF524E8979100FB127B /* create_ext_lib_xcframeworks.sh */,
A932E9DF249BC44D00D64150 /* create_fat_ext_libs.sh */,
A932E9C5249A743B00D64150 /* create_fat_lib_func.sh */,
A991DB2124E6016E00AEEC36 /* create_xcframework.sh */,
A991DB2124E6016E00AEEC36 /* create_xcframework_func.sh */,
A9FC5F7F249DA96D003CB086 /* package_ext_libs_finish.sh */,
A9415EF624366B0E00566F16 /* packagePregenSpirvToolsHeaders */,
);

View File

@ -4,15 +4,15 @@ XC_SCHEME := MoltenVK Package
# Specify individually (not as dependencies) so the sub-targets don't run in parallel
.PHONY: all
all:
@$(MAKE) macos
@$(MAKE) iosfat
@$(MAKE) tvosfat
@$(MAKE) macos
.PHONY: all-debug
all-debug:
@$(MAKE) macos-debug
@$(MAKE) iosfat-debug
@$(MAKE) tvosfat-debug
@$(MAKE) macos-debug
.PHONY: macos
macos:

View File

@ -15,7 +15,6 @@
);
dependencies = (
2FEA0AC32490303F00EEF3AD /* PBXTargetDependency */,
2FEA0AD92490308E00EEF3AD /* PBXTargetDependency */,
);
name = "MoltenVK-tvOS";
productName = Package;
@ -28,7 +27,6 @@
);
dependencies = (
A975D5792140585200D4834F /* PBXTargetDependency */,
A975D5812140585200D4834F /* PBXTargetDependency */,
);
name = "MoltenVK-iOS";
productName = Package;
@ -62,11 +60,13 @@
isa = PBXAggregateTarget;
buildConfigurationList = A9FEADDC1F3517480010240E /* Build configuration list for PBXAggregateTarget "MoltenVK" */;
buildPhases = (
A9B1008824F84BE400EADC6E /* Package MoltenVK */,
);
dependencies = (
A9AFC2622184EEF60084B396 /* PBXTargetDependency */,
A9AFC2602184EEF60084B396 /* PBXTargetDependency */,
A9FC5F5F249D277E003CB086 /* PBXTargetDependency */,
A9B1008124F84BA700EADC6E /* PBXTargetDependency */,
A9B1008324F84BA700EADC6E /* PBXTargetDependency */,
A9B1008524F84BA700EADC6E /* PBXTargetDependency */,
A9B1008724F84BA700EADC6E /* PBXTargetDependency */,
);
name = MoltenVK;
productName = Package;
@ -88,13 +88,6 @@
remoteGlobalIDString = 2FEA0A3B24902F9F00EEF3AD;
remoteInfo = "MoltenVK-tvOS";
};
2FEA0AD82490308E00EEF3AD /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 2FEA0AC42490305800EEF3AD;
remoteInfo = "MoltenVKGLSLToSPIRVConverter-tvOS";
};
2FEA0ADB2490308E00EEF3AD /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
@ -123,13 +116,6 @@
remoteGlobalIDString = A9B8EE091A98D796009C5A02;
remoteInfo = "MoltenVK-iOS";
};
A975D5822140585200D4834F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = A937472B1A9A8B2900F29B34;
remoteInfo = "MoltenVKGLSLToSPIRVConverter-iOS";
};
A975D58F2140586700D4834F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
@ -186,20 +172,34 @@
remoteGlobalIDString = A9092A8C1A81717B00051823;
remoteInfo = MoltenVKShaderConverter;
};
A9AFC25F2184EEF60084B396 /* PBXContainerItemProxy */ = {
A9B1008024F84BA700EADC6E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A90B2B1D1A9B6170008EE819 /* Project object */;
containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = A975D5782140585200D4834F;
remoteGlobalIDString = A9B8EE091A98D796009C5A02;
remoteInfo = "MoltenVK-iOS";
};
A9AFC2612184EEF60084B396 /* PBXContainerItemProxy */ = {
A9B1008224F84BA700EADC6E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A90B2B1D1A9B6170008EE819 /* Project object */;
containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = A975D58B2140586700D4834F;
remoteGlobalIDString = A9CBED861B6299D800E45FDC;
remoteInfo = "MoltenVK-macOS";
};
A9B1008424F84BA700EADC6E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = 2FEA0A3B24902F9F00EEF3AD;
remoteInfo = "MoltenVK-tvOS";
};
A9B1008624F84BA700EADC6E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = A9092A8C1A81717B00051823;
remoteInfo = MoltenVKShaderConverter;
};
A9FC5F5C249D2547003CB086 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
@ -207,17 +207,9 @@
remoteGlobalIDString = 2FEA0D142490381A00EEF3AD;
remoteInfo = "MoltenVKSPIRVToMSLConverter-tvOS";
};
A9FC5F5E249D277E003CB086 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = A90B2B1D1A9B6170008EE819 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 2FEA0A2F24902F5E00EEF3AD;
remoteInfo = "MoltenVK-tvOS";
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
A9149F7A221A528900DD7C6C /* package_shader_converter_lib.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_shader_converter_lib.sh; sourceTree = "<group>"; };
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>"; };
@ -229,12 +221,16 @@
A92EF7CA21856EA200C8B91B /* package_update_latest.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_update_latest.sh; sourceTree = "<group>"; };
A92EF7CB21856EA300C8B91B /* package_shader_converter.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_shader_converter.sh; sourceTree = "<group>"; };
A92EF7DE2186451700C8B91B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Makefile; path = ../Makefile; sourceTree = "<group>"; };
A93ED4DE24F59CDB00FEB018 /* copy_to_staging.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = copy_to_staging.sh; sourceTree = "<group>"; };
A93ED4E324F59CDB00FEB018 /* copy_lib_to_staging.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = copy_lib_to_staging.sh; sourceTree = "<group>"; };
A941E2B1221AEBD000890C56 /* create_framework_ios.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_framework_ios.sh; sourceTree = "<group>"; };
A941E2B2221AEBD000890C56 /* create_framework_macos.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_framework_macos.sh; sourceTree = "<group>"; };
A975D55C213F25D700D4834F /* create_dylib.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_dylib.sh; sourceTree = "<group>"; };
A980A25F24C628F3007A8F6F /* gen_moltenvk_rev_hdr.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = gen_moltenvk_rev_hdr.sh; 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>"; };
A99A760321852584000A8E2A /* create_framework.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_framework.sh; sourceTree = "<group>"; };
A9B1007A24F837AF00EADC6E /* create_xcframework_func.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_xcframework_func.sh; sourceTree = "<group>"; };
A9B1008924F84EC800EADC6E /* package_one_os.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_one_os.sh; sourceTree = "<group>"; };
A9C70F41221B04C800FBA31A /* create_dylib_macos.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_dylib_macos.sh; sourceTree = "<group>"; };
A9C70F45221B04C800FBA31A /* create_dylib_ios.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_dylib_ios.sh; sourceTree = "<group>"; };
A9DA8340218A198C002AA662 /* .travis.yml */ = {isa = PBXFileReference; lastKnownFileType = text; path = .travis.yml; sourceTree = "<group>"; };
@ -284,6 +280,8 @@
A975D55B213F25AD00D4834F /* Scripts */ = {
isa = PBXGroup;
children = (
A93ED4E324F59CDB00FEB018 /* copy_lib_to_staging.sh */,
A93ED4DE24F59CDB00FEB018 /* copy_to_staging.sh */,
A9C70F45221B04C800FBA31A /* create_dylib_ios.sh */,
A9C70F41221B04C800FBA31A /* create_dylib_macos.sh */,
A9FC5F64249D3778003CB086 /* create_dylib_tvos.sh */,
@ -296,11 +294,12 @@
A941E2B2221AEBD000890C56 /* create_framework_macos.sh */,
A9FC5F69249D3843003CB086 /* create_framework_tvos.sh */,
A99A760321852584000A8E2A /* create_framework.sh */,
A9B1007A24F837AF00EADC6E /* create_xcframework_func.sh */,
A980A25F24C628F3007A8F6F /* gen_moltenvk_rev_hdr.sh */,
A9FC5F60249D2ED3003CB086 /* package_all.sh */,
A92EF7C921856EA200C8B91B /* package_docs.sh */,
A92EF7C621856EA200C8B91B /* package_moltenvk.sh */,
A9149F7A221A528900DD7C6C /* package_shader_converter_lib.sh */,
A9B1008924F84EC800EADC6E /* package_one_os.sh */,
A92EF7C721856EA200C8B91B /* package_shader_converter_tool.sh */,
A92EF7CB21856EA300C8B91B /* package_shader_converter.sh */,
A92EF7CA21856EA200C8B91B /* package_update_latest.sh */,
@ -462,7 +461,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "export MVK_OS=\"tvOS\"\nexport MVK_BUILT_PROD_DIR=\"${BUILT_PRODUCTS_DIR}-${MVK_OS}\"\n\n. \"${SRCROOT}/Scripts/package_all.sh\"\n";
shellScript = "export MVK_OS=\"tvOS\"\nexport MVK_BUILT_PROD_DIR=\"${BUILT_PRODUCTS_DIR}-${MVK_OS}\"\n\n. \"${SRCROOT}/Scripts/package_one_os.sh\"\n";
};
A975D5872140585200D4834F /* Package MoltenVK */ = {
isa = PBXShellScriptBuildPhase;
@ -476,7 +475,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "export MVK_OS=\"iOS\"\nexport MVK_BUILT_PROD_DIR=\"${BUILT_PRODUCTS_DIR}-${MVK_OS}\"\n\n. \"${SRCROOT}/Scripts/package_all.sh\"\n";
shellScript = "export MVK_OS=\"iOS\"\nexport MVK_BUILT_PROD_DIR=\"${BUILT_PRODUCTS_DIR}-${MVK_OS}\"\n\n. \"${SRCROOT}/Scripts/package_one_os.sh\"\n";
};
A975D59A2140586700D4834F /* Package MoltenVK */ = {
isa = PBXShellScriptBuildPhase;
@ -490,7 +489,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "export MVK_OS=\"macOS\"\nexport MVK_BUILT_PROD_DIR=\"${BUILT_PRODUCTS_DIR}\"\n\n. \"${SRCROOT}/Scripts/package_all.sh\"\n. \"${SRCROOT}/Scripts/package_shader_converter_tool.sh\"\n";
shellScript = "export MVK_OS=\"macOS\"\nexport MVK_BUILT_PROD_DIR=\"${BUILT_PRODUCTS_DIR}\"\n\n. \"${SRCROOT}/Scripts/package_one_os.sh\"\n. \"${SRCROOT}/Scripts/package_shader_converter_tool.sh\"\n";
};
A9AD70122440ED3B00B9E254 /* Package MoltenVK */ = {
isa = PBXShellScriptBuildPhase;
@ -506,6 +505,24 @@
shellPath = /bin/sh;
shellScript = "export MVK_BUILT_PROD_DIR=\"${BUILT_PRODUCTS_DIR}\"\n. \"${SRCROOT}/Scripts/package_shader_converter_tool.sh\"\n. \"${SRCROOT}/Scripts/package_update_latest.sh\"\n";
};
A9B1008824F84BE400EADC6E /* Package MoltenVK */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "Package MoltenVK";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = ". \"${SRCROOT}/Scripts/package_all.sh\"\n\n";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXTargetDependency section */
@ -514,21 +531,11 @@
name = "MoltenVK-tvOS";
targetProxy = 2FEA0AC22490303F00EEF3AD /* PBXContainerItemProxy */;
};
2FEA0AD92490308E00EEF3AD /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "MoltenVKGLSLToSPIRVConverter-tvOS";
targetProxy = 2FEA0AD82490308E00EEF3AD /* PBXContainerItemProxy */;
};
A975D5792140585200D4834F /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "MoltenVK-iOS";
targetProxy = A975D57A2140585200D4834F /* PBXContainerItemProxy */;
};
A975D5812140585200D4834F /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "MoltenVKGLSLToSPIRVConverter-iOS";
targetProxy = A975D5822140585200D4834F /* PBXContainerItemProxy */;
};
A975D58E2140586700D4834F /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "MoltenVK-macOS";
@ -544,20 +551,25 @@
name = MoltenVKShaderConverter;
targetProxy = A9AD70112440ED3B00B9E254 /* PBXContainerItemProxy */;
};
A9AFC2602184EEF60084B396 /* PBXTargetDependency */ = {
A9B1008124F84BA700EADC6E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = A975D5782140585200D4834F /* MoltenVK-iOS */;
targetProxy = A9AFC25F2184EEF60084B396 /* PBXContainerItemProxy */;
name = "MoltenVK-iOS";
targetProxy = A9B1008024F84BA700EADC6E /* PBXContainerItemProxy */;
};
A9AFC2622184EEF60084B396 /* PBXTargetDependency */ = {
A9B1008324F84BA700EADC6E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = A975D58B2140586700D4834F /* MoltenVK-macOS */;
targetProxy = A9AFC2612184EEF60084B396 /* PBXContainerItemProxy */;
name = "MoltenVK-macOS";
targetProxy = A9B1008224F84BA700EADC6E /* PBXContainerItemProxy */;
};
A9FC5F5F249D277E003CB086 /* PBXTargetDependency */ = {
A9B1008524F84BA700EADC6E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 2FEA0A2F24902F5E00EEF3AD /* MoltenVK-tvOS */;
targetProxy = A9FC5F5E249D277E003CB086 /* PBXContainerItemProxy */;
name = "MoltenVK-tvOS";
targetProxy = A9B1008424F84BA700EADC6E /* PBXContainerItemProxy */;
};
A9B1008724F84BA700EADC6E /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = MoltenVKShaderConverter;
targetProxy = A9B1008624F84BA700EADC6E /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */

View File

@ -128,9 +128,9 @@
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>"; };
A98386F824EEE91A00199A05 /* SPIRVCross.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SPIRVCross.xcframework; path = SPIRVCross.xcframework; sourceTree = "<group>"; };
A98386FD24EEE93700199A05 /* glslang.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = glslang.xcframework; path = glslang.xcframework; sourceTree = "<group>"; };
A983870224EEE94800199A05 /* SPIRVTools.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SPIRVTools.xcframework; path = SPIRVTools.xcframework; sourceTree = "<group>"; };
A98386F824EEE91A00199A05 /* SPIRVCross.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = SPIRVCross.xcframework; sourceTree = "<group>"; };
A98386FD24EEE93700199A05 /* glslang.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = glslang.xcframework; sourceTree = "<group>"; };
A983870224EEE94800199A05 /* SPIRVTools.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = SPIRVTools.xcframework; 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>"; };
@ -387,9 +387,7 @@
2FEA0AC52490305800EEF3AD /* Headers */,
2FEA0ACB2490305800EEF3AD /* Sources */,
2FEA0ACF2490305800EEF3AD /* Frameworks */,
2FEA0AD22490305800EEF3AD /* Create Dynamic Library */,
A9FC5F6B249D3959003CB086 /* Create Fat Libraries */,
2FEA0AD32490305800EEF3AD /* Create Framework */,
A93ED4E524F59DEA00FEB018 /* Copy to Staging */,
);
buildRules = (
);
@ -407,9 +405,7 @@
2FEA0D002490381A00EEF3AD /* Headers */,
2FEA0D072490381A00EEF3AD /* Sources */,
2FEA0D0C2490381A00EEF3AD /* Frameworks */,
2FEA0D0F2490381A00EEF3AD /* Create Dynamic Library */,
A9FC5F6C249D3987003CB086 /* Create Fat Libraries */,
2FEA0D102490381A00EEF3AD /* Create Framework */,
A93ED4E824F59E1100FEB018 /* Copy to Staging */,
);
buildRules = (
);
@ -445,9 +441,7 @@
A93747291A9A8B2900F29B34 /* Headers */,
A93747271A9A8B2900F29B34 /* Sources */,
A972AD2821CEE6310013AB25 /* Frameworks */,
A9C70F49221B075700FBA31A /* Create Dynamic Library */,
A9303625249BDF6B00DE139C /* Create Fat Libraries */,
A941E2A7221AC9C300890C56 /* Create Framework */,
A93ED4E424F59DC600FEB018 /* Copy to Staging */,
);
buildRules = (
);
@ -465,8 +459,7 @@
A937476E1A9A98D000F29B34 /* Headers */,
A937476C1A9A98D000F29B34 /* Sources */,
A972AD2C21CEE6C30013AB25 /* Frameworks */,
A9C70F4A221B076D00FBA31A /* Create Dynamic Library */,
A941E2A9221ACA2C00890C56 /* Create Framework */,
A93ED4E624F59DFB00FEB018 /* Copy to Staging */,
);
buildRules = (
);
@ -484,9 +477,7 @@
A93903B91C57E9D700FE90DC /* Headers */,
A93903BA1C57E9D700FE90DC /* Sources */,
A972AD2E21CEE6F50013AB25 /* Frameworks */,
A9C70F4B221B077C00FBA31A /* Create Dynamic Library */,
A9303626249BDFA000DE139C /* Create Fat Libraries */,
A941E2A8221AC9E800890C56 /* Create Framework */,
A93ED4E724F59E0900FEB018 /* Copy to Staging */,
);
buildRules = (
);
@ -504,8 +495,7 @@
A93903C11C57E9ED00FE90DC /* Headers */,
A93903C21C57E9ED00FE90DC /* Sources */,
A972AD3321CEE7230013AB25 /* Frameworks */,
A9C70F4C221B078C00FBA31A /* Create Dynamic Library */,
A941E2AA221ACA4C00890C56 /* Create Framework */,
A93ED4E924F59E1800FEB018 /* Copy to Staging */,
);
buildRules = (
);
@ -570,7 +560,7 @@
/* End PBXProject section */
/* Begin PBXShellScriptBuildPhase section */
2FEA0AD22490305800EEF3AD /* Create Dynamic Library */ = {
A93ED4E424F59DC600FEB018 /* Copy to Staging */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@ -579,16 +569,16 @@
);
inputPaths = (
);
name = "Create Dynamic Library";
name = "Copy to Staging";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = ". \"${SRCROOT}/../Scripts/create_dylib_tvos.sh\"\n";
shellScript = ". \"${SRCROOT}/../Scripts/copy_lib_to_staging.sh\"\n";
};
2FEA0AD32490305800EEF3AD /* Create Framework */ = {
A93ED4E524F59DEA00FEB018 /* Copy to Staging */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@ -597,16 +587,16 @@
);
inputPaths = (
);
name = "Create Framework";
name = "Copy to Staging";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = ". \"${SRCROOT}/../Scripts/create_framework_tvos.sh\"\n";
shellScript = ". \"${SRCROOT}/../Scripts/copy_lib_to_staging.sh\"\n";
};
2FEA0D0F2490381A00EEF3AD /* Create Dynamic Library */ = {
A93ED4E624F59DFB00FEB018 /* Copy to Staging */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@ -615,16 +605,16 @@
);
inputPaths = (
);
name = "Create Dynamic Library";
name = "Copy to Staging";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = ". \"${SRCROOT}/../Scripts/create_dylib_tvos.sh\"\n";
shellScript = ". \"${SRCROOT}/../Scripts/copy_lib_to_staging.sh\"\n";
};
2FEA0D102490381A00EEF3AD /* Create Framework */ = {
A93ED4E724F59E0900FEB018 /* Copy to Staging */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@ -633,16 +623,16 @@
);
inputPaths = (
);
name = "Create Framework";
name = "Copy to Staging";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = ". \"${SRCROOT}/../Scripts/create_framework_tvos.sh\"\n";
shellScript = ". \"${SRCROOT}/../Scripts/copy_lib_to_staging.sh\"\n";
};
A9303625249BDF6B00DE139C /* Create Fat Libraries */ = {
A93ED4E824F59E1100FEB018 /* Copy to Staging */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@ -651,16 +641,16 @@
);
inputPaths = (
);
name = "Create Fat Libraries";
name = "Copy to Staging";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = ". \"${SRCROOT}/../Scripts/create_fat_libs_ios.sh\"\n";
shellScript = ". \"${SRCROOT}/../Scripts/copy_lib_to_staging.sh\"\n";
};
A9303626249BDFA000DE139C /* Create Fat Libraries */ = {
A93ED4E924F59E1800FEB018 /* Copy to Staging */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@ -669,194 +659,14 @@
);
inputPaths = (
);
name = "Create Fat Libraries";
name = "Copy to Staging";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = ". \"${SRCROOT}/../Scripts/create_fat_libs_ios.sh\"\n";
};
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";
};
A9FC5F6B249D3959003CB086 /* Create Fat Libraries */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "Create Fat Libraries";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = ". \"${SRCROOT}/../Scripts/create_fat_libs_tvos.sh\"\n";
};
A9FC5F6C249D3987003CB086 /* Create Fat Libraries */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "Create Fat Libraries";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = ". \"${SRCROOT}/../Scripts/create_fat_libs_tvos.sh\"\n";
shellScript = ". \"${SRCROOT}/../Scripts/copy_lib_to_staging.sh\"\n";
};
/* End PBXShellScriptBuildPhase section */

4
Scripts/copy_lib_to_staging.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
export MVK_XCFWK_STAGING_DIR="${BUILT_PRODUCTS_DIR}/../XCFrameworkStaging/${CONFIGURATION}"
. "${SRCROOT}/../Scripts/copy_to_staging.sh"

View File

@ -1,10 +1,10 @@
#!/bin/bash
. "${PROJECT_DIR}/Scripts/create_xcframework.sh"
. "${PROJECT_DIR}/Scripts/create_xcframework_func.sh"
export MVK_EXT_DIR="${PROJECT_DIR}/External"
export MVK_XCFWK_STAGING_DIR="${MVK_EXT_DIR}/build/Intermediates/XCFrameworkStaging"
export MVK_XCFWK_DEST_DIR="${MVK_EXT_DIR}/build"
export MVK_XCFWK_DEST_DIR="${MVK_EXT_DIR}/build/${CONFIGURATION}"
# Assemble the headers for the external libraries
abs_ext_dir=`cd "${MVK_EXT_DIR}"; pwd; cd - > /dev/null`

View File

@ -9,7 +9,7 @@
#
function create_xcframework() {
prod_name=${1}
xcfwk_path="${MVK_XCFWK_DEST_DIR}/${CONFIGURATION}/${prod_name}.xcframework"
xcfwk_path="${MVK_XCFWK_DEST_DIR}/${prod_name}.xcframework"
hdr_path="${MVK_XCFWK_STAGING_DIR}/Headers/${prod_name}"
xcfwk_cmd="xcodebuild -create-xcframework -output \"${xcfwk_path}\""

View File

@ -1,7 +1,18 @@
#!/bin/bash
export MVK_BUILT_PROD_DIR="${BUILT_PRODUCTS_DIR}"
export MVK_OS="iOS"
. "${SRCROOT}/Scripts/package_moltenvk.sh"
export MVK_OS="tvOS"
. "${SRCROOT}/Scripts/package_moltenvk.sh"
export MVK_OS="macOS"
. "${SRCROOT}/Scripts/package_moltenvk.sh"
. "${SRCROOT}/Scripts/package_shader_converter.sh"
. "${SRCROOT}/Scripts/package_shader_converter_tool.sh"
. "${SRCROOT}/Scripts/package_docs.sh"
. "${SRCROOT}/Scripts/package_update_latest.sh"

7
Scripts/package_one_os.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/bash
. "${SRCROOT}/Scripts/package_moltenvk.sh"
. "${SRCROOT}/Scripts/package_shader_converter.sh"
. "${SRCROOT}/Scripts/package_docs.sh"
. "${SRCROOT}/Scripts/package_update_latest.sh"

View File

@ -2,23 +2,21 @@
set -e
. "${PROJECT_DIR}/Scripts/create_xcframework_func.sh"
export MVK_PROD_BASE_NAME="MoltenVKShaderConverter"
export MVK_PKG_BASE_PATH="${PROJECT_DIR}/Package/${CONFIGURATION}/${MVK_PROD_BASE_NAME}"
export MVK_PKG_INCLUDE_PATH="${MVK_PKG_BASE_PATH}/include"
export MVK_XCFWK_STAGING_DIR="${BUILD_DIR}/XCFrameworkStaging"
export MVK_XCFWK_DEST_DIR="${PROJECT_DIR}/Package/${CONFIGURATION}/${MVK_PROD_BASE_NAME}"
# Remove and replace header include folder
rm -rf "${MVK_PKG_INCLUDE_PATH}"
mkdir -p "${MVK_PKG_INCLUDE_PATH}"
cp -pRL "${PROJECT_DIR}/${MVK_PROD_BASE_NAME}/include/" "${MVK_PKG_INCLUDE_PATH}"
# Assemble the headers for the shader frameworks
hdr_dir="${MVK_XCFWK_STAGING_DIR}/Headers"
rm -rf "${hdr_dir}"
cp -pRL "${PROJECT_DIR}/${MVK_PROD_BASE_NAME}/include/" "${hdr_dir}"
#-----------------------------------
# MoltenVKSPIRVToMSLConverter
export MVK_PROD_NAME="MoltenVKSPIRVToMSLConverter"
# Also copy headers to an include directory in the package.
# This will not be needed once the XCFramework can be created with a Headers directory.
mkdir -p "${MVK_XCFWK_DEST_DIR}"
cp -pRL "${PROJECT_DIR}/${MVK_PROD_BASE_NAME}/include/" "${MVK_XCFWK_DEST_DIR}/include"
. "${SRCROOT}/Scripts/package_shader_converter_lib.sh"
#-----------------------------------
# MoltenVKGLSLToSPIRVConverter
export MVK_PROD_NAME="MoltenVKGLSLToSPIRVConverter"
. "${SRCROOT}/Scripts/package_shader_converter_lib.sh"
create_xcframework "MoltenVKSPIRVToMSLConverter"
create_xcframework "MoltenVKGLSLToSPIRVConverter"

View File

@ -1,21 +0,0 @@
#!/bin/bash
set -e
export MVK_PROD_PROJ_PATH="${PROJECT_DIR}/${MVK_PROD_BASE_NAME}/${MVK_PROD_NAME}"
export MVK_PKG_PROD_PATH="${MVK_PKG_BASE_PATH}/${MVK_PROD_NAME}"
export MVK_PKG_PROD_PATH_OS="${MVK_PKG_PROD_PATH}/${MVK_OS}"
rm -rf "${MVK_PKG_PROD_PATH_OS}"
mkdir -p "${MVK_PKG_PROD_PATH_OS}/static"
cp -a "${MVK_BUILT_PROD_DIR}/lib${MVK_PROD_NAME}.a" "${MVK_PKG_PROD_PATH_OS}/static"
mkdir -p "${MVK_PKG_PROD_PATH_OS}/dynamic"
cp -a "${MVK_BUILT_PROD_DIR}/dynamic/lib${MVK_PROD_NAME}.dylib" "${MVK_PKG_PROD_PATH_OS}/dynamic"
if test "$CONFIGURATION" = Debug; then
cp -a "${MVK_BUILT_PROD_DIR}/dynamic/lib${MVK_PROD_NAME}.dylib.dSYM" "${MVK_PKG_PROD_PATH_OS}/dynamic"
fi
mkdir -p "${MVK_PKG_PROD_PATH_OS}/framework"
cp -a "${MVK_BUILT_PROD_DIR}/framework/${MVK_PROD_NAME}.framework" "${MVK_PKG_PROD_PATH_OS}/framework"