From 025259426cd442a40c796d8770e7f8cb5a4e84ac Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Tue, 30 Oct 2018 23:16:12 -0400 Subject: [PATCH] Refactor the build environment. Support creation of static library and build framework and dynamic library from it. Add Makefile to better support command line or script building integration. Update demos to each use one of framework, static library, and dynamic library. Refactor and rename the build scripts. Refactor and rename the Xcode Schemes. Update build and runtime documentation. Update What's New document. --- .../API-Samples.xcodeproj/project.pbxproj | 132 +++---------- .../Cube/Cube.xcodeproj/project.pbxproj | 107 +++-------- .../Hologram.xcodeproj/project.pbxproj | 144 ++++---------- Demos/README.md | 10 +- Docs/MoltenVK_Runtime_UserGuide.md | 181 ++++++++---------- Docs/Whats_New.md | 9 +- Makefile | 19 ++ MoltenVK/MoltenVK.xcodeproj/project.pbxproj | 82 +++++--- .../xcschemes/MoltenVK-iOS.xcscheme | 6 +- .../xcschemes/MoltenVK-macOS.xcscheme | 6 +- ...{create_dylib_macos.sh => create_dylib.sh} | 14 +- MoltenVK/scripts/create_dylib_ios.sh | 33 ---- MoltenVK/scripts/create_framework.sh | 12 ++ .../macOS/MoltenVK.framework/Headers | 1 + .../macOS/MoltenVK.framework/MoltenVK | 1 + .../macOS/MoltenVK.framework/Versions/Current | 1 + MoltenVKPackaging.xcodeproj/project.pbxproj | 162 +++++----------- ...ltenVK Package (Debug) (iOS only).xcscheme | 81 -------- ...enVK Package (Debug) (macOS only).xcscheme | 81 -------- .../MoltenVK Package (Debug).xcscheme | 10 +- ...e => MoltenVK Package (iOS only).xcscheme} | 0 ...=> MoltenVK Package (macOS only).xcscheme} | 0 ...se).xcscheme => MoltenVK Package.xcscheme} | 0 .../MoltenVKGLSLToSPIRVConverter-iOS.xcscheme | 2 +- .../MoltenVKSPIRVToMSLConverter-iOS.xcscheme | 2 +- README.md | 42 ++-- Scripts/package_docs.sh | 10 +- Scripts/{package_all.sh => package_ios.sh} | 5 +- Scripts/package_macos.sh | 11 ++ Scripts/package_moltenvk.sh | 45 ++--- Scripts/package_shader_converter.sh | 69 ++----- Scripts/package_shader_converter_tool.sh | 10 + Scripts/package_update_latest.sh | 9 + Scripts/update_latest.sh | 14 -- 34 files changed, 430 insertions(+), 881 deletions(-) create mode 100644 Makefile rename MoltenVK/scripts/{create_dylib_macos.sh => create_dylib.sh} (52%) delete mode 100755 MoltenVK/scripts/create_dylib_ios.sh create mode 100755 MoltenVK/scripts/create_framework.sh create mode 120000 MoltenVK/templates/framework/macOS/MoltenVK.framework/Headers create mode 120000 MoltenVK/templates/framework/macOS/MoltenVK.framework/MoltenVK create mode 120000 MoltenVK/templates/framework/macOS/MoltenVK.framework/Versions/Current delete mode 100644 MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug) (iOS only).xcscheme delete mode 100644 MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug) (macOS only).xcscheme rename MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/{MoltenVK Package (Release) (iOS only).xcscheme => MoltenVK Package (iOS only).xcscheme} (100%) rename MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/{MoltenVK Package (Release) (macOS only).xcscheme => MoltenVK Package (macOS only).xcscheme} (100%) rename MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/{MoltenVK Package (Release).xcscheme => MoltenVK Package.xcscheme} (100%) rename Scripts/{package_all.sh => package_ios.sh} (52%) create mode 100755 Scripts/package_macos.sh create mode 100755 Scripts/package_shader_converter_tool.sh create mode 100755 Scripts/package_update_latest.sh delete mode 100755 Scripts/update_latest.sh diff --git a/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/project.pbxproj b/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/project.pbxproj index f6e302d0..992d96ca 100644 --- a/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/project.pbxproj +++ b/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/project.pbxproj @@ -27,12 +27,6 @@ A964BD3E1E4EA6FC00CA9AF1 /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A964BC611E4EA6FC00CA9AF1 /* util.cpp */; }; A964BD3F1E4EA6FC00CA9AF1 /* util_init.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A964BC631E4EA6FC00CA9AF1 /* util_init.cpp */; }; A964BD401E4EA6FC00CA9AF1 /* util_init.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A964BC631E4EA6FC00CA9AF1 /* util_init.cpp */; }; - A9B5D09C1CF8830B00D7CBDD /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A9B5D09B1CF8830B00D7CBDD /* libc++.tbd */; }; - A9B5D09E1CF8831400D7CBDD /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A9B5D09D1CF8831400D7CBDD /* libc++.tbd */; }; - A9B5D0A01CF8834600D7CBDD /* MoltenVK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9B5D09F1CF8834600D7CBDD /* MoltenVK.framework */; }; - A9B5D0A21CF8835500D7CBDD /* MoltenVK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9B5D0A11CF8835500D7CBDD /* MoltenVK.framework */; }; - A9B5D0A41CF8837900D7CBDD /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9B5D0A31CF8837900D7CBDD /* MoltenVKGLSLToSPIRVConverter.framework */; }; - A9B5D0A61CF8838E00D7CBDD /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9B5D0A51CF8838E00D7CBDD /* MoltenVKGLSLToSPIRVConverter.framework */; }; A9B67B781C3AAE9800373FFD /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B6C1C3AAE9800373FFD /* AppDelegate.m */; }; A9B67B7A1C3AAE9800373FFD /* DemoViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B6F1C3AAE9800373FFD /* DemoViewController.mm */; }; A9B67B7C1C3AAE9800373FFD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B711C3AAE9800373FFD /* main.m */; }; @@ -45,23 +39,15 @@ A9B67B8F1C3AAEA200373FFD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B871C3AAEA200373FFD /* main.m */; }; A9B67B901C3AAEA200373FFD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B8A1C3AAEA200373FFD /* Main.storyboard */; }; A9B67B911C3AAEA200373FFD /* macOS.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B8B1C3AAEA200373FFD /* macOS.xcassets */; }; + A9C2ABA2218505B000DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2ABA0218505B000DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */; }; + A9C2ABA3218505B000DDBC03 /* MoltenVK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2ABA1218505B000DDBC03 /* MoltenVK.framework */; }; + A9C2ABA6218505CB00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2ABA4218505CB00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */; }; + A9C2ABA7218505CB00DDBC03 /* MoltenVK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2ABA5218505CB00DDBC03 /* MoltenVK.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 1D6058910D05DD3D006BFB54 /* API-Samples.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "API-Samples.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 2D500B990D5A79CF00DBA0E3 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - A900B1A21B5EAA1C00150D60 /* libc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.dylib"; path = "usr/lib/libc++.dylib"; sourceTree = SDKROOT; }; - A90941BB1C582DF40094110D /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = "../../../../../../../../Library/Developer/Xcode/DerivedData/VulkanSamples-emusmkeclqfwfncmwqpcvdzumhpu/Build/Products/Release/MoltenVKGLSLToSPIRVConverter.framework"; sourceTree = ""; }; - A9096E4E1F7EF10300DFBEA6 /* IOSurface.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOSurface.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.0.sdk/System/Library/Frameworks/IOSurface.framework; sourceTree = DEVELOPER_DIR; }; A92F37071C7E1B2B008F8BC9 /* Samples.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Samples.h; sourceTree = ""; }; - A92F3CED1C7E5E9D008F8BC9 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../MoltenShaderConverter/build/Debug/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = ""; }; - A92F3CEF1C7E5EB5008F8BC9 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../MoltenShaderConverter/build/Debug/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = ""; }; - A92F3CF11C7E5EBF008F8BC9 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = "../../../MoltenShaderConverter/build/Debug-iphoneos/MoltenVKGLSLToSPIRVConverter.framework"; sourceTree = ""; }; - A94A67231B7BDE9B00F6D7C4 /* MetalGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalGL.framework; path = ../../MetalGL/macOS/MetalGL.framework; sourceTree = ""; }; - A94A67241B7BDE9B00F6D7C4 /* MetalGLShaderConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalGLShaderConverter.framework; path = ../../MetalGLShaderConverter/macOS/MetalGLShaderConverter.framework; sourceTree = ""; }; A95C05021C98FC1100CC653D /* blue.ppm */ = {isa = PBXFileReference; lastKnownFileType = file; path = blue.ppm; sourceTree = ""; }; A95C05031C98FC1100CC653D /* cube_data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cube_data.h; sourceTree = ""; }; A95C05041C98FC1100CC653D /* green.ppm */ = {isa = PBXFileReference; lastKnownFileType = file; path = green.ppm; sourceTree = ""; }; @@ -71,8 +57,6 @@ A95C05081C98FC1100CC653D /* red.ppm */ = {isa = PBXFileReference; lastKnownFileType = file; path = red.ppm; sourceTree = ""; }; A95C05091C98FC1100CC653D /* spotlight.ppm */ = {isa = PBXFileReference; lastKnownFileType = file; path = spotlight.ppm; sourceTree = ""; }; A95C050A1C98FC1100CC653D /* yellow.ppm */ = {isa = PBXFileReference; lastKnownFileType = file; path = yellow.ppm; sourceTree = ""; }; - A95C07051C98FDB800CC653D /* MoltenSPIRVToMSLConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenSPIRVToMSLConverter.framework; path = "../../../../MoltenShaderConverter/build/Debug-iphoneos/MoltenSPIRVToMSLConverter.framework"; sourceTree = ""; }; - A95C07071C98FDD400CC653D /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = "../../../../../../../../../Library/Developer/Xcode/DerivedData/LunarGSamples-csovmpqhztbhjscdjbysjxxoqgvu/Build/Products/Debug/MoltenVKGLSLToSPIRVConverter.framework"; sourceTree = ""; }; A964BAF11E4E95E500CA9AF1 /* copy_blit_image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = copy_blit_image.cpp; sourceTree = ""; }; A964BAF51E4E968F00CA9AF1 /* 15-draw_cube.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "15-draw_cube.cpp"; sourceTree = ""; }; A964BAF91E4E96B400CA9AF1 /* draw_subpasses.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = draw_subpasses.cpp; sourceTree = ""; }; @@ -106,18 +90,6 @@ A964BC631E4EA6FC00CA9AF1 /* util_init.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = util_init.cpp; sourceTree = ""; }; A964BC641E4EA6FC00CA9AF1 /* util_init.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = util_init.hpp; sourceTree = ""; }; A977BCFE1B66BB010067E5BF /* API-Samples.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "API-Samples.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - A977BD211B67186B0067E5BF /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/AppKit.framework; sourceTree = DEVELOPER_DIR; }; - A977BD221B67186B0067E5BF /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - A977BD231B67186B0067E5BF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - A977BD251B67186B0067E5BF /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Metal.framework; sourceTree = DEVELOPER_DIR; }; - A977BD261B67186B0067E5BF /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - A9A222171B5D69F40050A5F9 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; - A9B5D09B1CF8830B00D7CBDD /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; - A9B5D09D1CF8831400D7CBDD /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib/libc++.tbd"; sourceTree = DEVELOPER_DIR; }; - A9B5D09F1CF8834600D7CBDD /* MoltenVK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVK.framework; path = ../../../../Package/Latest/MoltenVK/macOS/MoltenVK.framework; sourceTree = ""; }; - A9B5D0A11CF8835500D7CBDD /* MoltenVK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVK.framework; path = ../../../../Package/Latest/MoltenVK/iOS/MoltenVK.framework; sourceTree = ""; }; - A9B5D0A31CF8837900D7CBDD /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../../Package/Latest/MoltenShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = ""; }; - A9B5D0A51CF8838E00D7CBDD /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../../Package/Latest/MoltenShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = ""; }; A9B67B6B1C3AAE9800373FFD /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; A9B67B6C1C3AAE9800373FFD /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; A9B67B6E1C3AAE9800373FFD /* DemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoViewController.h; sourceTree = ""; }; @@ -138,12 +110,10 @@ A9B67B881C3AAEA200373FFD /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = ""; }; A9B67B8A1C3AAEA200373FFD /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; A9B67B8B1C3AAEA200373FFD /* macOS.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = macOS.xcassets; sourceTree = ""; }; - A9B6B75F1C0F795000A9E33A /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.1.sdk/System/Library/Frameworks/CoreAudio.framework; sourceTree = DEVELOPER_DIR; }; - A9B6B7641C0F795D00A9E33A /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; - A9BF67C21C582EC900B8CF77 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = "../../../MoltenShaderConverter/build/Debug-iphoneos/MoltenVKGLSLToSPIRVConverter.framework"; sourceTree = ""; }; - A9CDEA271B6A782C00F7B008 /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; }; - A9E264761B671B0A00FE691A /* libc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.dylib"; path = "Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/libc++.dylib"; sourceTree = DEVELOPER_DIR; }; - BA240AC10FEFE77A00DE852D /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + A9C2ABA0218505B000DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = ""; }; + A9C2ABA1218505B000DDBC03 /* MoltenVK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVK.framework; path = ../../../MoltenVK/iOS/framework/MoltenVK.framework; sourceTree = ""; }; + A9C2ABA4218505CB00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = ""; }; + A9C2ABA5218505CB00DDBC03 /* MoltenVK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVK.framework; path = ../../../MoltenVK/macOS/framework/MoltenVK.framework; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -151,9 +121,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A9B5D0A21CF8835500D7CBDD /* MoltenVK.framework in Frameworks */, - A9B5D0A61CF8838E00D7CBDD /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */, - A9B5D09E1CF8831400D7CBDD /* libc++.tbd in Frameworks */, + A9C2ABA3218505B000DDBC03 /* MoltenVK.framework in Frameworks */, + A9C2ABA2218505B000DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -161,9 +130,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A9B5D0A01CF8834600D7CBDD /* MoltenVK.framework in Frameworks */, - A9B5D0A41CF8837900D7CBDD /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */, - A9B5D09C1CF8830B00D7CBDD /* libc++.tbd in Frameworks */, + A9C2ABA7218505CB00DDBC03 /* MoltenVK.framework in Frameworks */, + A9C2ABA6218505CB00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -186,37 +154,12 @@ A95C03971C98FBED00CC653D /* API-Samples */, A9B67B6A1C3AAE9800373FFD /* iOS */, A9B67B811C3AAEA200373FFD /* macOS */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, 19C28FACFE9D520D11CA2CBB /* Products */, + A9C2AB9F218505B000DDBC03 /* Frameworks */, ); name = CustomTemplate; sourceTree = ""; }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - A9096E4E1F7EF10300DFBEA6 /* IOSurface.framework */, - A9B5D0A51CF8838E00D7CBDD /* MoltenVKGLSLToSPIRVConverter.framework */, - A9B5D0A31CF8837900D7CBDD /* MoltenVKGLSLToSPIRVConverter.framework */, - A9B5D0A11CF8835500D7CBDD /* MoltenVK.framework */, - A9B5D09F1CF8834600D7CBDD /* MoltenVK.framework */, - A9B5D09D1CF8831400D7CBDD /* libc++.tbd */, - A9B5D09B1CF8830B00D7CBDD /* libc++.tbd */, - A95C07071C98FDD400CC653D /* MoltenVKGLSLToSPIRVConverter.framework */, - A95C07051C98FDB800CC653D /* MoltenSPIRVToMSLConverter.framework */, - A92F3CF11C7E5EBF008F8BC9 /* MoltenVKGLSLToSPIRVConverter.framework */, - A92F3CEF1C7E5EB5008F8BC9 /* MoltenVKGLSLToSPIRVConverter.framework */, - A92F3CED1C7E5E9D008F8BC9 /* MoltenVKGLSLToSPIRVConverter.framework */, - A9BF67C21C582EC900B8CF77 /* MoltenVKGLSLToSPIRVConverter.framework */, - A90941BB1C582DF40094110D /* MoltenVKGLSLToSPIRVConverter.framework */, - A9B6B7641C0F795D00A9E33A /* CoreAudio.framework */, - A9B6B75F1C0F795000A9E33A /* CoreAudio.framework */, - A9ADEC601B6EC2EB00DBA48C /* iOS */, - A9ADEC611B6EC2F300DBA48C /* macOS */, - ); - name = Frameworks; - sourceTree = ""; - }; A95C03971C98FBED00CC653D /* API-Samples */ = { isa = PBXGroup; children = ( @@ -498,36 +441,6 @@ path = utils; sourceTree = ""; }; - A9ADEC601B6EC2EB00DBA48C /* iOS */ = { - isa = PBXGroup; - children = ( - A9A222171B5D69F40050A5F9 /* Metal.framework */, - BA240AC10FEFE77A00DE852D /* OpenGLES.framework */, - 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */, - 2D500B990D5A79CF00DBA0E3 /* QuartzCore.framework */, - 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, - 1D30AB110D05D00D00671497 /* Foundation.framework */, - A9CDEA271B6A782C00F7B008 /* GLKit.framework */, - A900B1A21B5EAA1C00150D60 /* libc++.dylib */, - ); - name = iOS; - sourceTree = ""; - }; - A9ADEC611B6EC2F300DBA48C /* macOS */ = { - isa = PBXGroup; - children = ( - A94A67231B7BDE9B00F6D7C4 /* MetalGL.framework */, - A94A67241B7BDE9B00F6D7C4 /* MetalGLShaderConverter.framework */, - A9E264761B671B0A00FE691A /* libc++.dylib */, - A977BD251B67186B0067E5BF /* Metal.framework */, - A977BD261B67186B0067E5BF /* QuartzCore.framework */, - A977BD211B67186B0067E5BF /* AppKit.framework */, - A977BD221B67186B0067E5BF /* CoreGraphics.framework */, - A977BD231B67186B0067E5BF /* Foundation.framework */, - ); - name = macOS; - sourceTree = ""; - }; A9B67B6A1C3AAE9800373FFD /* iOS */ = { isa = PBXGroup; children = ( @@ -578,6 +491,17 @@ path = Resources; sourceTree = ""; }; + A9C2AB9F218505B000DDBC03 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A9C2ABA5218505CB00DDBC03 /* MoltenVK.framework */, + A9C2ABA4218505CB00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */, + A9C2ABA1218505B000DDBC03 /* MoltenVK.framework */, + A9C2ABA0218505B000DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -721,7 +645,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../MoltenVK/iOS\"", + "\"$(SRCROOT)/../../../MoltenVK/iOS/framework\"", "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\"", ); GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch"; @@ -747,7 +671,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../MoltenVK/iOS\"", + "\"$(SRCROOT)/../../../MoltenVK/iOS/framework\"", "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\"", ); GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch"; @@ -769,7 +693,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../MoltenVK/macOS\"", + "\"$(SRCROOT)/../../../MoltenVK/macOS/framework\"", "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS\"", ); GCC_PREFIX_HEADER = "$(SRCROOT)/macOS/Prefix.pch"; @@ -792,7 +716,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../MoltenVK/macOS\"", + "\"$(SRCROOT)/../../../MoltenVK/macOS/framework\"", "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS\"", ); GCC_PREFIX_HEADER = "$(SRCROOT)/macOS/Prefix.pch"; diff --git a/Demos/LunarG-VulkanSamples/Cube/Cube.xcodeproj/project.pbxproj b/Demos/LunarG-VulkanSamples/Cube/Cube.xcodeproj/project.pbxproj index 292c6091..d3f84da3 100644 --- a/Demos/LunarG-VulkanSamples/Cube/Cube.xcodeproj/project.pbxproj +++ b/Demos/LunarG-VulkanSamples/Cube/Cube.xcodeproj/project.pbxproj @@ -7,16 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - A904B5711C9A08C90008C013 /* cube-frag.spv in Resources */ = {isa = PBXBuildFile; fileRef = A904B52E1C9A08C90008C013 /* cube-frag.spv */; }; - A904B5721C9A08C90008C013 /* cube-frag.spv in Resources */ = {isa = PBXBuildFile; fileRef = A904B52E1C9A08C90008C013 /* cube-frag.spv */; }; - A904B5751C9A08C90008C013 /* cube-vert.spv in Resources */ = {isa = PBXBuildFile; fileRef = A904B52F1C9A08C90008C013 /* cube-vert.spv */; }; - A904B5761C9A08C90008C013 /* cube-vert.spv in Resources */ = {isa = PBXBuildFile; fileRef = A904B52F1C9A08C90008C013 /* cube-vert.spv */; }; - A91F43A01EDDD46B00733D01 /* libMoltenVK.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A91F439F1EDDD46B00733D01 /* libMoltenVK.dylib */; }; - A91F43A51EDDD5CF00733D01 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A91F43A41EDDD5CF00733D01 /* libc++.tbd */; }; - A91F43A61EDDD61100733D01 /* libMoltenVK.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A91F439F1EDDD46B00733D01 /* libMoltenVK.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; - A91F43A71EDDD61D00733D01 /* libMoltenVK.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A9B2A5551D7E4FB300F66656 /* libMoltenVK.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; - A9A262E91CF0C60F00A87A75 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A9A262E71CF0C60500A87A75 /* libc++.tbd */; }; - A9B2A5561D7E4FB300F66656 /* libMoltenVK.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A9B2A5551D7E4FB300F66656 /* libMoltenVK.dylib */; }; A9B53B151C3AC0BE00ABC6F6 /* macOS.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B8B1C3AAEA200373FFD /* macOS.xcassets */; }; A9B53B161C3AC0BE00ABC6F6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B8A1C3AAEA200373FFD /* Main.storyboard */; }; A9B53B181C3AC0BE00ABC6F6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B831C3AAEA200373FFD /* AppDelegate.m */; }; @@ -29,6 +19,10 @@ A9B53B341C3AC15200ABC6F6 /* DemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B6F1C3AAE9800373FFD /* DemoViewController.m */; }; A9B53B351C3AC15200ABC6F6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B6C1C3AAE9800373FFD /* AppDelegate.m */; }; A9B53B361C3AC15200ABC6F6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B711C3AAE9800373FFD /* main.m */; }; + A9C2ABAC2185086D00DDBC03 /* libMoltenVK.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2ABAB2185086D00DDBC03 /* libMoltenVK.dylib */; }; + A9C2ABAD2185087500DDBC03 /* libMoltenVK.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2ABA92185085B00DDBC03 /* libMoltenVK.dylib */; }; + A9C2ABB02185098A00DDBC03 /* libMoltenVK.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A9C2ABAB2185086D00DDBC03 /* libMoltenVK.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + A9C2ABB12185099500DDBC03 /* libMoltenVK.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A9C2ABA92185085B00DDBC03 /* libMoltenVK.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -38,7 +32,7 @@ dstPath = ""; dstSubfolderSpec = 6; files = ( - A91F43A61EDDD61100733D01 /* libMoltenVK.dylib in CopyFiles */, + A9C2ABB02185098A00DDBC03 /* libMoltenVK.dylib in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -48,23 +42,16 @@ dstPath = ""; dstSubfolderSpec = 6; files = ( - A91F43A71EDDD61D00733D01 /* libMoltenVK.dylib in CopyFiles */, + A9C2ABB12185099500DDBC03 /* libMoltenVK.dylib in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - A904B52E1C9A08C90008C013 /* cube-frag.spv */ = {isa = PBXFileReference; lastKnownFileType = file; path = "cube-frag.spv"; sourceTree = ""; }; - A904B52F1C9A08C90008C013 /* cube-vert.spv */ = {isa = PBXFileReference; lastKnownFileType = file; path = "cube-vert.spv"; sourceTree = ""; }; A904B5301C9A08C90008C013 /* cube.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cube.c; sourceTree = ""; }; A904B5311C9A08C90008C013 /* cube.frag */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = cube.frag; sourceTree = ""; }; A904B5331C9A08C90008C013 /* cube.vert */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.glsl; path = cube.vert; sourceTree = ""; }; - A9096E501F7EF11A00DFBEA6 /* IOSurface.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOSurface.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.0.sdk/System/Library/Frameworks/IOSurface.framework; sourceTree = DEVELOPER_DIR; }; - A91F439F1EDDD46B00733D01 /* libMoltenVK.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libMoltenVK.dylib; path = ../../../MoltenVK/iOS/libMoltenVK.dylib; sourceTree = ""; }; - A91F43A41EDDD5CF00733D01 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/usr/lib/libc++.tbd"; sourceTree = DEVELOPER_DIR; }; - A9A262E71CF0C60500A87A75 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; - A9B2A5551D7E4FB300F66656 /* libMoltenVK.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libMoltenVK.dylib; path = ../../../MoltenVK/macOS/libMoltenVK.dylib; sourceTree = ""; }; A9B53B271C3AC0BE00ABC6F6 /* Cube.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Cube.app; sourceTree = BUILT_PRODUCTS_DIR; }; A9B53B431C3AC15200ABC6F6 /* Cube.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Cube.app; sourceTree = BUILT_PRODUCTS_DIR; }; A9B67B6B1C3AAE9800373FFD /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; @@ -87,8 +74,8 @@ A9B67B881C3AAEA200373FFD /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = ""; }; A9B67B8A1C3AAEA200373FFD /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; A9B67B8B1C3AAEA200373FFD /* macOS.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = macOS.xcassets; sourceTree = ""; }; - A9E34B841CECF28700E40A7F /* MoltenVK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVK.framework; path = ../../../iOS/MoltenVK.framework; sourceTree = ""; }; - A9E34B871CECF29800E40A7F /* MoltenVK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVK.framework; path = ../../../macOS/MoltenVK.framework; sourceTree = ""; }; + A9C2ABA92185085B00DDBC03 /* libMoltenVK.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libMoltenVK.dylib; path = ../../../MoltenVK/macOS/dynamic/libMoltenVK.dylib; sourceTree = ""; }; + A9C2ABAB2185086D00DDBC03 /* libMoltenVK.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libMoltenVK.dylib; path = ../../../MoltenVK/iOS/dynamic/libMoltenVK.dylib; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -96,8 +83,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A9B2A5561D7E4FB300F66656 /* libMoltenVK.dylib in Frameworks */, - A9A262E91CF0C60F00A87A75 /* libc++.tbd in Frameworks */, + A9C2ABAD2185087500DDBC03 /* libMoltenVK.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -105,8 +91,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A91F43A01EDDD46B00733D01 /* libMoltenVK.dylib in Frameworks */, - A91F43A51EDDD5CF00733D01 /* libc++.tbd in Frameworks */, + A9C2ABAC2185086D00DDBC03 /* libMoltenVK.dylib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -128,8 +113,8 @@ A904B52C1C9A08C80008C013 /* cube */, A9B67B6A1C3AAE9800373FFD /* iOS */, A9B67B811C3AAEA200373FFD /* macOS */, - A9295EAA1CECEF0900EFC483 /* Frameworks */, 19C28FACFE9D520D11CA2CBB /* Products */, + A9C2ABA82185085B00DDBC03 /* Frameworks */, ); name = CustomTemplate; sourceTree = ""; @@ -137,8 +122,6 @@ A904B52C1C9A08C80008C013 /* cube */ = { isa = PBXGroup; children = ( - A904B52E1C9A08C90008C013 /* cube-frag.spv */, - A904B52F1C9A08C90008C013 /* cube-vert.spv */, A904B5301C9A08C90008C013 /* cube.c */, A904B5311C9A08C90008C013 /* cube.frag */, A904B5331C9A08C90008C013 /* cube.vert */, @@ -147,20 +130,6 @@ path = "../Vulkan-Tools/cube"; sourceTree = ""; }; - A9295EAA1CECEF0900EFC483 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A9096E501F7EF11A00DFBEA6 /* IOSurface.framework */, - A91F439F1EDDD46B00733D01 /* libMoltenVK.dylib */, - A9B2A5551D7E4FB300F66656 /* libMoltenVK.dylib */, - A9E34B841CECF28700E40A7F /* MoltenVK.framework */, - A9E34B871CECF29800E40A7F /* MoltenVK.framework */, - A9A262E71CF0C60500A87A75 /* libc++.tbd */, - A91F43A41EDDD5CF00733D01 /* libc++.tbd */, - ); - name = Frameworks; - sourceTree = ""; - }; A9B67B6A1C3AAE9800373FFD /* iOS */ = { isa = PBXGroup; children = ( @@ -211,6 +180,15 @@ path = Resources; sourceTree = ""; }; + A9C2ABA82185085B00DDBC03 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A9C2ABAB2185086D00DDBC03 /* libMoltenVK.dylib */, + A9C2ABA92185085B00DDBC03 /* libMoltenVK.dylib */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -218,7 +196,6 @@ isa = PBXNativeTarget; buildConfigurationList = A9B53B241C3AC0BE00ABC6F6 /* Build configuration list for PBXNativeTarget "Cube-macOS" */; buildPhases = ( - A9BA29C5204F24D400EA6575 /* Generate SPIR-V shaders */, A9B53B141C3AC0BE00ABC6F6 /* Resources */, A9B53B171C3AC0BE00ABC6F6 /* Sources */, A9B53B1B1C3AC0BE00ABC6F6 /* Frameworks */, @@ -237,7 +214,6 @@ isa = PBXNativeTarget; buildConfigurationList = A9B53B401C3AC15200ABC6F6 /* Build configuration list for PBXNativeTarget "Cube-iOS" */; buildPhases = ( - A9BA29C6204F298800EA6575 /* Generate SPIR-V shaders */, A9B53B2E1C3AC15200ABC6F6 /* Resources */, A9B53B331C3AC15200ABC6F6 /* Sources */, A9B53B371C3AC15200ABC6F6 /* Frameworks */, @@ -290,8 +266,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - A904B5761C9A08C90008C013 /* cube-vert.spv in Resources */, - A904B5721C9A08C90008C013 /* cube-frag.spv in Resources */, A9B53B151C3AC0BE00ABC6F6 /* macOS.xcassets in Resources */, A9B53B161C3AC0BE00ABC6F6 /* Main.storyboard in Resources */, ); @@ -301,48 +275,15 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - A904B5751C9A08C90008C013 /* cube-vert.spv in Resources */, A9B53B2F1C3AC15200ABC6F6 /* Icon.png in Resources */, A9B53B301C3AC15200ABC6F6 /* Main.storyboard in Resources */, A9B53B311C3AC15200ABC6F6 /* Default~ipad.png in Resources */, A9B53B321C3AC15200ABC6F6 /* Default-568h@2x.png in Resources */, - A904B5711C9A08C90008C013 /* cube-frag.spv in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - A9BA29C5204F24D400EA6575 /* Generate SPIR-V shaders */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Generate SPIR-V shaders"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "set -e\n\n\"${PROJECT_DIR}/../../../MoltenVKShaderConverter/Tools/MoltenVKShaderConverter\" -gi -so -xs \"-\" -d \"${PROJECT_DIR}/../Vulkan-Tools/cube\"\n"; - }; - A9BA29C6204F298800EA6575 /* Generate SPIR-V shaders */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Generate SPIR-V shaders"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "set -e\n\n\"${PROJECT_DIR}/../../../MoltenVKShaderConverter/Tools/MoltenVKShaderConverter\" -gi -so -xs \"-\" -d \"${PROJECT_DIR}/../Vulkan-Tools/cube\"\n"; - }; -/* End PBXShellScriptBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ A9B53B171C3AC0BE00ABC6F6 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -379,7 +320,7 @@ ); INFOPLIST_FILE = "$(SRCROOT)/macOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "@executable_path"; - LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/macOS\""; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/macOS/dynamic\""; MACOSX_DEPLOYMENT_TARGET = 10.11; PRODUCT_NAME = Cube; SDKROOT = macosx; @@ -398,7 +339,7 @@ ); INFOPLIST_FILE = "$(SRCROOT)/macOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "@executable_path"; - LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/macOS\""; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/macOS/dynamic\""; MACOSX_DEPLOYMENT_TARGET = 10.11; PRODUCT_NAME = Cube; SDKROOT = macosx; @@ -418,7 +359,7 @@ INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "@executable_path"; - LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS\""; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS/dynamic\""; PRODUCT_NAME = Cube; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -439,7 +380,7 @@ INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "@executable_path"; - LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS\""; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS/dynamic\""; PRODUCT_NAME = Cube; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/Demos/LunarG-VulkanSamples/Hologram/Hologram.xcodeproj/project.pbxproj b/Demos/LunarG-VulkanSamples/Hologram/Hologram.xcodeproj/project.pbxproj index c9dbc2e7..e1db4ad2 100644 --- a/Demos/LunarG-VulkanSamples/Hologram/Hologram.xcodeproj/project.pbxproj +++ b/Demos/LunarG-VulkanSamples/Hologram/Hologram.xcodeproj/project.pbxproj @@ -37,35 +37,19 @@ A9B67B8F1C3AAEA200373FFD /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A9B67B871C3AAEA200373FFD /* main.m */; }; A9B67B901C3AAEA200373FFD /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B8A1C3AAEA200373FFD /* Main.storyboard */; }; A9B67B911C3AAEA200373FFD /* macOS.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A9B67B8B1C3AAEA200373FFD /* macOS.xcassets */; }; + A9C2AB99218503A400DDBC03 /* libMoltenVK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2AB97218503A400DDBC03 /* libMoltenVK.a */; }; + A9C2AB9A218503A400DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2AB98218503A400DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */; }; + A9C2AB9D218503BA00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2AB9B218503BA00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */; }; + A9C2AB9E218503BA00DDBC03 /* libMoltenVK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A9C2AB9C218503BA00DDBC03 /* libMoltenVK.a */; }; A9D516F81CD575E300097D96 /* HelpersDispatchTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9D516F61CD575E300097D96 /* HelpersDispatchTable.cpp */; }; A9D516F91CD575E300097D96 /* HelpersDispatchTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9D516F61CD575E300097D96 /* HelpersDispatchTable.cpp */; }; - A9F4FB461CF68822003FA0C3 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A9F4FB451CF68822003FA0C3 /* libc++.tbd */; }; - A9F4FB481CF6882E003FA0C3 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A9F4FB471CF6882E003FA0C3 /* libc++.tbd */; }; - A9F4FB4A1CF688A5003FA0C3 /* MoltenVK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9F4FB491CF688A5003FA0C3 /* MoltenVK.framework */; }; - A9F4FB4C1CF688B5003FA0C3 /* MoltenVK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9F4FB4B1CF688B5003FA0C3 /* MoltenVK.framework */; }; - A9F4FB4F1CF68C79003FA0C3 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9F4FB4E1CF68C79003FA0C3 /* MoltenVKGLSLToSPIRVConverter.framework */; }; - A9F4FB511CF68C83003FA0C3 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9F4FB501CF68C83003FA0C3 /* MoltenVKGLSLToSPIRVConverter.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 1D6058910D05DD3D006BFB54 /* Hologram.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Hologram.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 2D500B990D5A79CF00DBA0E3 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - A900B1A21B5EAA1C00150D60 /* libc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.dylib"; path = "usr/lib/libc++.dylib"; sourceTree = SDKROOT; }; - A90941BB1C582DF40094110D /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = "../../../../../../../../Library/Developer/Xcode/DerivedData/VulkanSamples-emusmkeclqfwfncmwqpcvdzumhpu/Build/Products/Release/MoltenVKGLSLToSPIRVConverter.framework"; sourceTree = ""; }; - A9096E521F7EF13000DFBEA6 /* IOSurface.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOSurface.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.0.sdk/System/Library/Frameworks/IOSurface.framework; sourceTree = DEVELOPER_DIR; }; A93CC3701CD56B8F00EB8A56 /* generate-dispatch-table */ = {isa = PBXFileReference; explicitFileType = text.script.python; path = "generate-dispatch-table"; sourceTree = ""; }; A93CC3711CD56FD600EB8A56 /* CMakeLists.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; }; - A94A67231B7BDE9B00F6D7C4 /* MetalGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalGL.framework; path = ../../MetalGL/macOS/MetalGL.framework; sourceTree = ""; }; - A94A67241B7BDE9B00F6D7C4 /* MetalGLShaderConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalGLShaderConverter.framework; path = ../../MetalGLShaderConverter/macOS/MetalGLShaderConverter.framework; sourceTree = ""; }; A977BCFE1B66BB010067E5BF /* Hologram.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Hologram.app; sourceTree = BUILT_PRODUCTS_DIR; }; - A977BD211B67186B0067E5BF /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/AppKit.framework; sourceTree = DEVELOPER_DIR; }; - A977BD221B67186B0067E5BF /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - A977BD231B67186B0067E5BF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - A977BD251B67186B0067E5BF /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Metal.framework; sourceTree = DEVELOPER_DIR; }; - A977BD261B67186B0067E5BF /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; A997897F1CD3D4E2005E7DAC /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Game.h; sourceTree = ""; }; A99789821CD3D4E2005E7DAC /* Helpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Helpers.h; sourceTree = ""; }; A99789831CD3D4E2005E7DAC /* Hologram.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Hologram.cpp; sourceTree = ""; }; @@ -83,9 +67,6 @@ A99789961CD3D4E2005E7DAC /* Simulation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Simulation.h; sourceTree = ""; }; A99789C71CD3D819005E7DAC /* ShellMVK.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShellMVK.cpp; sourceTree = SOURCE_ROOT; }; A99789C81CD3D819005E7DAC /* ShellMVK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShellMVK.h; sourceTree = SOURCE_ROOT; }; - A99789E01CD4186E005E7DAC /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = "../../../../MoltenShaderConverter/build/Debug-iphoneos/MoltenVKGLSLToSPIRVConverter.framework"; sourceTree = ""; }; - A99789E21CD4187A005E7DAC /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../../MoltenShaderConverter/build/Debug/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = ""; }; - A9A222171B5D69F40050A5F9 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; A9B67B6B1C3AAE9800373FFD /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; A9B67B6C1C3AAE9800373FFD /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; A9B67B6E1C3AAE9800373FFD /* DemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DemoViewController.h; sourceTree = ""; }; @@ -106,20 +87,12 @@ A9B67B881C3AAEA200373FFD /* Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Prefix.pch; sourceTree = ""; }; A9B67B8A1C3AAEA200373FFD /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; A9B67B8B1C3AAEA200373FFD /* macOS.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = macOS.xcassets; sourceTree = ""; }; - A9B6B75F1C0F795000A9E33A /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.1.sdk/System/Library/Frameworks/CoreAudio.framework; sourceTree = DEVELOPER_DIR; }; - A9B6B7641C0F795D00A9E33A /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; - A9BF67C21C582EC900B8CF77 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = "../../../MoltenShaderConverter/build/Debug-iphoneos/MoltenVKGLSLToSPIRVConverter.framework"; sourceTree = ""; }; - A9CDEA271B6A782C00F7B008 /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; }; + A9C2AB97218503A400DDBC03 /* libMoltenVK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMoltenVK.a; path = ../../../MoltenVK/iOS/static/libMoltenVK.a; sourceTree = ""; }; + A9C2AB98218503A400DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = ""; }; + A9C2AB9B218503BA00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = ""; }; + A9C2AB9C218503BA00DDBC03 /* libMoltenVK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMoltenVK.a; path = ../../../MoltenVK/macOS/static/libMoltenVK.a; sourceTree = ""; }; A9D516F61CD575E300097D96 /* HelpersDispatchTable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HelpersDispatchTable.cpp; sourceTree = SOURCE_ROOT; }; A9D516F71CD575E300097D96 /* HelpersDispatchTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HelpersDispatchTable.h; sourceTree = SOURCE_ROOT; }; - A9E264761B671B0A00FE691A /* libc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.dylib"; path = "Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/libc++.dylib"; sourceTree = DEVELOPER_DIR; }; - A9F4FB451CF68822003FA0C3 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; - A9F4FB471CF6882E003FA0C3 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/lib/libc++.tbd"; sourceTree = DEVELOPER_DIR; }; - A9F4FB491CF688A5003FA0C3 /* MoltenVK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVK.framework; path = ../../../../Package/Latest/MoltenVK/iOS/MoltenVK.framework; sourceTree = ""; }; - A9F4FB4B1CF688B5003FA0C3 /* MoltenVK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVK.framework; path = ../../../../Package/Latest/MoltenVK/macOS/MoltenVK.framework; sourceTree = ""; }; - A9F4FB4E1CF68C79003FA0C3 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../../Package/Latest/MoltenShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = ""; }; - A9F4FB501CF68C83003FA0C3 /* MoltenVKGLSLToSPIRVConverter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MoltenVKGLSLToSPIRVConverter.framework; path = ../../../../Package/Latest/MoltenShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS/MoltenVKGLSLToSPIRVConverter.framework; sourceTree = ""; }; - BA240AC10FEFE77A00DE852D /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -127,9 +100,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A9F4FB4A1CF688A5003FA0C3 /* MoltenVK.framework in Frameworks */, - A9F4FB4F1CF68C79003FA0C3 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */, - A9F4FB481CF6882E003FA0C3 /* libc++.tbd in Frameworks */, + A9C2AB99218503A400DDBC03 /* libMoltenVK.a in Frameworks */, + A9C2AB9A218503A400DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,9 +109,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - A9F4FB4C1CF688B5003FA0C3 /* MoltenVK.framework in Frameworks */, - A9F4FB511CF68C83003FA0C3 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */, - A9F4FB461CF68822003FA0C3 /* libc++.tbd in Frameworks */, + A9C2AB9E218503BA00DDBC03 /* libMoltenVK.a in Frameworks */, + A9C2AB9D218503BA00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -161,34 +132,12 @@ A99789681CD3D4E2005E7DAC /* Hologram */, A9B67B6A1C3AAE9800373FFD /* iOS */, A9B67B811C3AAEA200373FFD /* macOS */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, 19C28FACFE9D520D11CA2CBB /* Products */, + A9C2AB96218503A400DDBC03 /* Frameworks */, ); name = CustomTemplate; sourceTree = ""; }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - A9096E521F7EF13000DFBEA6 /* IOSurface.framework */, - A9F4FB501CF68C83003FA0C3 /* MoltenVKGLSLToSPIRVConverter.framework */, - A9F4FB4E1CF68C79003FA0C3 /* MoltenVKGLSLToSPIRVConverter.framework */, - A9F4FB4B1CF688B5003FA0C3 /* MoltenVK.framework */, - A9F4FB491CF688A5003FA0C3 /* MoltenVK.framework */, - A9F4FB471CF6882E003FA0C3 /* libc++.tbd */, - A9F4FB451CF68822003FA0C3 /* libc++.tbd */, - A99789E21CD4187A005E7DAC /* MoltenVKGLSLToSPIRVConverter.framework */, - A99789E01CD4186E005E7DAC /* MoltenVKGLSLToSPIRVConverter.framework */, - A9BF67C21C582EC900B8CF77 /* MoltenVKGLSLToSPIRVConverter.framework */, - A90941BB1C582DF40094110D /* MoltenVKGLSLToSPIRVConverter.framework */, - A9B6B7641C0F795D00A9E33A /* CoreAudio.framework */, - A9B6B75F1C0F795000A9E33A /* CoreAudio.framework */, - A9ADEC601B6EC2EB00DBA48C /* iOS */, - A9ADEC611B6EC2F300DBA48C /* macOS */, - ); - name = Frameworks; - sourceTree = ""; - }; A99789681CD3D4E2005E7DAC /* Hologram */ = { isa = PBXGroup; children = ( @@ -217,36 +166,6 @@ path = "../VulkanSamples/Sample-Programs/Hologram"; sourceTree = ""; }; - A9ADEC601B6EC2EB00DBA48C /* iOS */ = { - isa = PBXGroup; - children = ( - A9A222171B5D69F40050A5F9 /* Metal.framework */, - BA240AC10FEFE77A00DE852D /* OpenGLES.framework */, - 1D3623EB0D0F72F000981E51 /* CoreGraphics.framework */, - 2D500B990D5A79CF00DBA0E3 /* QuartzCore.framework */, - 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, - 1D30AB110D05D00D00671497 /* Foundation.framework */, - A9CDEA271B6A782C00F7B008 /* GLKit.framework */, - A900B1A21B5EAA1C00150D60 /* libc++.dylib */, - ); - name = iOS; - sourceTree = ""; - }; - A9ADEC611B6EC2F300DBA48C /* macOS */ = { - isa = PBXGroup; - children = ( - A94A67231B7BDE9B00F6D7C4 /* MetalGL.framework */, - A94A67241B7BDE9B00F6D7C4 /* MetalGLShaderConverter.framework */, - A9E264761B671B0A00FE691A /* libc++.dylib */, - A977BD251B67186B0067E5BF /* Metal.framework */, - A977BD261B67186B0067E5BF /* QuartzCore.framework */, - A977BD211B67186B0067E5BF /* AppKit.framework */, - A977BD221B67186B0067E5BF /* CoreGraphics.framework */, - A977BD231B67186B0067E5BF /* Foundation.framework */, - ); - name = macOS; - sourceTree = ""; - }; A9B67B6A1C3AAE9800373FFD /* iOS */ = { isa = PBXGroup; children = ( @@ -297,6 +216,17 @@ path = Resources; sourceTree = ""; }; + A9C2AB96218503A400DDBC03 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A9C2AB9C218503BA00DDBC03 /* libMoltenVK.a */, + A9C2AB9B218503BA00DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */, + A9C2AB97218503A400DDBC03 /* libMoltenVK.a */, + A9C2AB98218503A400DDBC03 /* MoltenVKGLSLToSPIRVConverter.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; A9D516F51CD575B000097D96 /* Generated */ = { isa = PBXGroup; children = ( @@ -462,7 +392,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "../VulkanSamples/Sample-Programs/Hologram/generate-dispatch-table HelpersDispatchTable.cpp"; + shellScript = "../VulkanSamples/Sample-Programs/Hologram/generate-dispatch-table HelpersDispatchTable.cpp\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -509,14 +439,12 @@ buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../MoltenVK/iOS\"", - "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\"", - ); + FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\""; GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS/static\""; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = arm64; @@ -528,14 +456,12 @@ buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../MoltenVK/iOS\"", - "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\"", - ); + FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/iOS\""; GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS/static\""; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = arm64; @@ -547,13 +473,11 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../MoltenVK/macOS\"", - "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS\"", - ); + FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS\""; GCC_PREFIX_HEADER = "$(SRCROOT)/macOS/Prefix.pch"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; INFOPLIST_FILE = "$(SRCROOT)/macOS/Info.plist"; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/macOS/static\""; MACOSX_DEPLOYMENT_TARGET = 10.11; SDKROOT = macosx; }; @@ -564,13 +488,11 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; COMBINE_HIDPI_IMAGES = YES; - FRAMEWORK_SEARCH_PATHS = ( - "\"$(SRCROOT)/../../../MoltenVK/macOS\"", - "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS\"", - ); + FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVKShaderConverter/MoltenVKGLSLToSPIRVConverter/macOS\""; GCC_PREFIX_HEADER = "$(SRCROOT)/macOS/Prefix.pch"; GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; INFOPLIST_FILE = "$(SRCROOT)/macOS/Info.plist"; + LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/macOS/static\""; MACOSX_DEPLOYMENT_TARGET = 10.11; SDKROOT = macosx; }; diff --git a/Demos/README.md b/Demos/README.md index fff3f5eb..a41724a3 100644 --- a/Demos/README.md +++ b/Demos/README.md @@ -55,9 +55,9 @@ To run this demo, run either the `Cube-iOS` or `Cube-macOS` *Scheme* from within This demo includes a sizable window, and represents an example of how to detect, within your *Vulkan* code, when a window has been resized, and to modify the *Vulkan* swapchain accordingly. -This demo is a simple example of installing **MoltenVK** as a dynamic library, instead of as -a statically-linked framework. In this demo, the **MoltenVK** dynamic library is embedded in -the application, but it could have been installed as a system library instead. +The `Cube` demo is a simple example of installing **MoltenVK** as a *dynamic library*. In this demo, +the **MoltenVK** *dynamic library* is embedded in the application, but it could have been installed +as a system library instead. @@ -85,6 +85,8 @@ follow the instructions in the comments within that file. To see descriptions and screenshots of each of the demos, open [this summary document](LunarG-VulkanSamples/VulkanSamples/samples_index.html#AdditionalVulkan). +The `API-Samples` demo is a simple example of installing **MoltenVK** as a *static framework*. + ### *Hologram* @@ -113,6 +115,8 @@ logging the conversion of shaders from *SPIR-V* to *Metal Shading Language*. See functions in the `Hologram/Hologram.cpp` file. To see the effect, modify the `Hologram-iOS` or `Hologram-macOS` *Scheme* from within *Xcode* to use the **Debug** *Build Configuration* setting. +The `Hologram` demo is a simple example of installing **MoltenVK** as a *static library*. + diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index d277828d..74668126 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -21,8 +21,7 @@ Table of Contents - [About **MoltenVK**](#about_moltenvk) - [Installing **MoltenVK** in Your *Vulkan* Application](#install) - [Build and Runtime Requirements](#requirements) - - [Install as Static Library Framework](#install_static_lib) - - [Install as Dynamic Library](#install_dynamic_lib) + - [Install as Static Framework, Static Library, or Dynamic Library](#install_lib) - [Interacting with the **MoltenVK** Runtime](#interaction) - [MoltenVK Extension](#moltenvk_extension) - [*Metal Shading Language* Shaders](#shaders) @@ -93,50 +92,94 @@ Once built, **MoltenVK** can be run on *iOS* or *macOS* devices that support *Me [this article](https://developer.apple.com/library/content/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/HardwareGPUInformation/HardwareGPUInformation.html). - -### Install as Static Library Framework + +### Install as Static Framework, Static Library, or Dynamic Library Installation of **MoltenVK** is straightforward and easy! -For most applications, you can install **MoltenVK** as a *static library framework* that will be -embedded directly in your application executable, or a component library within your application. -This is simple and straightforward, and is the recommended installation approach for all applications. - -To add **MoltenVK** as a *static library framework* to your existing *Vulkan* application, -follow the steps in this section. If you're new to **MoltenVK**, it is recommended that you -start with a smaller project to help you understand the transition, and to reduce the possibility -of needing to make modifications to your [shaders](#shaders) to ensure their compatibility with -the *Metal* environment. +Depending on your build and deployment needs, you can install **MoltenVK** as a *static framework*, +*static library*, or *dynamic library*, by following the steps in this section. If you are unsure +about which linking and deployment option you need, follow the steps for installing a +*static framework*, as it is the simplest to install. 1. Open your application in *Xcode* and select your application's target in the *Project Navigator* panel. -2. Open the *Build Settings* tab, and in the **Framework Search Paths** (aka `FRAMEWORK_SEARCH_PATHS`) - setting: - - If building for *iOS*, add an entry that points to the `MoltenVK/iOS` folder, - found in the **MoltenVK** distribution package. - - If building for *macOS*, add an entry that points to the `MoltenVK/macOS` folder, - found in the **MoltenVK** distribution package. -3. If using `IOSurfaces` on *iOS*, in the *Build Settings* tab, open the **iOS Deployment Target** +2. Open the *Build Settings* tab. + + - If installing **MoltenVK** as a *static framework* in your application: + 1. In the **Framework Search Paths** (aka `FRAMEWORK_SEARCH_PATHS`) + setting, add an entry that points to **_one_** of the following folders: + - `MoltenVK/macOS/framework` *(macOS)* + - `MoltenVK/iOS/framework` *(iOS)* + + - If installing **MoltenVK** as a *static library* in your application: + 1. In the **Library Search Paths** (aka `LIBRARY_SEARCH_PATHS`) setting, + add an entry that points to **_one_** of the following folders: + - `MoltenVK/macOS/static` *(macOS)* + - `MoltenVK/iOS/static` *(iOS)* + 2. In the **Header Search Paths** (aka `HEADER_SEARCH_PATHS`) setting, + add an entry that points to the `MoltenVK/include` folder. + + - If installing **MoltenVK** as a *dynamic library* in your application: + 1. In the **Library Search Paths** (aka `LIBRARY_SEARCH_PATHS`) setting, + add an entry that points to **_one_** of the following folders: + - `MoltenVK/macOS/dynamic` *(macOS)* + - `MoltenVK/iOS/dynamic` *(iOS)* + 2. In the **Header Search Paths** (aka `HEADER_SEARCH_PATHS`) setting, + add an entry that points to the `MoltenVK/include` folder. + 3. In the **Runpath Search Paths** (aka `LD_RUNPATH_SEARCH_PATHS`) setting, + add an entry that matches where the dynamic library will be located in your runtime + environment. If the dynamic library is to be embedded within your application, + you would typically set this value to either `@executable_path` or `@loader_path`. + The `libMoltenVK.dylib` library is internally configured to be located at + `@rpath/libMoltenVK.dylib`. + +3. With the *Build Settings* tab open, if using `IOSurfaces` on *iOS*, open the **iOS Deployment Target** (aka `IPHONEOS_DEPLOYMENT_TARGET`) setting, and ensure it is set to a value of `iOS 11.0` or greater. 4. On the *Build Phases* tab, open the *Link Binary With Libraries* list. + + - For *macOS*, drag **_one_** of the following files to the *Link Binary With Libraries* list: + - `MoltenVK/macOS/framework/MoltenVK.framework ` *(static framework)* + - `MoltenVK/macOS/static/libMoltenVK.a` *(static library)* + - `MoltenVK/macOS/dynamic/libMoltenVK.dylib` *(dynamic library)* - 1. Drag the `MoltenVK/iOS/MoltenVK.framework` or `MoltenVK/macOS/MoltenVK.framework` folder, - found in the **MoltenVK** distribution package, to the *Link Binary With Libraries* list. - 2. Click the **+** button, and (selecting from the list of system libraries) add `libc++.tbd`. - 3. If you do not have the **Link Frameworks Automatically** (aka `CLANG_MODULES_AUTOLINK`) and - **Enable Modules (C and Objective-C** (aka `CLANG_ENABLE_MODULES`) settings enabled, click the - **+** button, and (selecting from the list of system frameworks) add the following frameworks: - - `Metal.framework` - - `Foundation.framework`. - - `QuartzCore.framework` - - `IOKit.framework` (*macOS*) - - `UIKit.framework` (*iOS*) - - `IOSurface.framework` (*macOS*, or *iOS* if `IPHONEOS_DEPLOYMENT_TARGET` is at least `iOS 11.0`) + - For *iOS*, drag **_one_** of the following files to the *Link Binary With Libraries* list: + - `MoltenVK/iOS/framework/MoltenVK.framework ` *(static framework)* + - `MoltenVK/iOS/static/libMoltenVK.a` *(static library)* + - `MoltenVK/iOS/dynamic/libMoltenVK.dylib` *(dynamic library)* -5. When a *Metal* app is running from *Xcode*, the default ***Scheme*** settings reduce +5. While in the *Link Binary With Libraries* list on the *Build Phases* tab, if you do **_not_** + have the **Link Frameworks Automatically** (aka `CLANG_MODULES_AUTOLINK`) and + **Enable Modules (C and Objective-C)** (aka `CLANG_ENABLE_MODULES`) settings enabled, click + the **+** button, and (selecting from the list of system frameworks) add the following items: + - `libc++.tbd` + - `Metal.framework` + - `Foundation.framework`. + - `QuartzCore.framework` + - `IOKit.framework` (*macOS*) + - `UIKit.framework` (*iOS*) + - `IOSurface.framework` (*macOS*, or *iOS* if `IPHONEOS_DEPLOYMENT_TARGET` is at least `iOS 11.0`) + + +6. If installing **MoltenVK** as a *dynamic library* in your application, arrange to install + the `libMoltenVK.dylib` file in your application environment: + + - To copy the `libMoltenVK.dylib` file into your application or component library: + 1. On the *Build Phases* tab, add a new *Copy Files* build phase. + 2. Set the *Destination* into which you want to place the `libMoltenVK.dylib` file. + Typically this will be *Executables*. + 3. Drag **_one_** of the following files to the *Copy Files* list in this new build phase: + - `MoltenVK/macOS/dynamic/libMoltenVK.dylib` *(macOS)* + - `MoltenVK/iOS/dynamic/libMoltenVK.dylib` *(iOS)* + + - Alternately, you may create your own installation mechanism to install either the + `MoltenVK/macOS/dynamic/libMoltenVK.dylib` or `MoltenVK/iOS/dynamic/libMoltenVK.dylib` + file into a standard *macOS* or *iOS* system library folder on the user's device. + +7. When a *Metal* app is running from *Xcode*, the default ***Scheme*** settings reduce performance. To improve performance and gain the benefits of *Metal*, perform the following in *Xcode*: @@ -152,70 +195,12 @@ the *Metal* environment. section of Apple's *Metal Programming Guide* documentation. +The demo apps, found in the `Demos.xcworkspace`, located in the `Demos` folder, demonstrate each +of the installation techniques discussed above: - -### Install as Dynamic Library - -For some applications, you may prefer to install **MoltenVK** as a dynamic library. -This is only recommended for developers who are used to working with dynamic libraries, -and even then, the preferred approach is to link the **MoltenVK** -[*static library framework*](#install_static_lib) into a dynamic library of your own -creation, in order to give you the most flexibility for organizing your dynamic libraries. - -In order to install **MoltenVK** as its own dynamic library in your application, -follow these instructions: - -1. Open your application in *Xcode* and select your application's target in the - *Project Navigator* panel. - -2. On the *Build Settings* tab: - 1. In the **Header Search Paths** (aka `HEADER_SEARCH_PATHS`) setting, add an entry - that points to the `MoltenVK/include` folder, found in the **MoltenVK** distribution package. - 2. In the **Library Search Paths** (aka `LIBRARY_SEARCH_PATHS`) setting, add an entry - that points to either the `MoltenVK/iOS` or `MoltenVK/macOS` folder, found in the - **MoltenVK** distribution package. - 3. In the **Runpath Search Paths** (aka `LD_RUNPATH_SEARCH_PATHS`) setting, add a path - that matches the library destination you established in **Step 2** above. If the dynamic - library is to be embedded within your application, you would typically set this value to - either `@executable_path` or `@loader_path`. The `libMoltenVK.dylib` library is internally - configured to be located at `@rpath/libMoltenVK.dylib`. - -3. If using `IOSurfaces` on *iOS*, in the *Build Settings* tab, open the **iOS Deployment Target** - (aka `IPHONEOS_DEPLOYMENT_TARGET`) setting, and ensure it is set to a value of `iOS 11.0` or greater. - -4. On the *Build Phases* tab, open the *Link Binary With Libraries* list. - - 1. Drag the `MoltenVK/iOS/libMoltenVK.dylib` or `MoltenVK/macOS/libMoltenVK.dylib` file, - found in the **MoltenVK** distribution package, to the *Link Binary With Libraries* list. - 2. Click the **+** button, and (selecting from the list of system libraries) add `libc++.tbd`. - 3. If you do not have the **Link Frameworks Automatically** (aka `CLANG_MODULES_AUTOLINK`) and - **Enable Modules (C and Objective-C** (aka `CLANG_ENABLE_MODULES`) settings enabled, click the - **+** button, and (selecting from the list of system frameworks) add the following frameworks: - - `Metal.framework` - - `Foundation.framework`. - - `QuartzCore.framework` - - `IOKit.framework` (*macOS*) - - `UIKit.framework` (*iOS*) - - `IOSurface.framework` (*macOS*, or *iOS* if `IPHONEOS_DEPLOYMENT_TARGET` is at least `iOS 11.0`) - -5. Arrange to install the `libMoltenVK.dylib` file in your application environment: - - - To copy the `libMoltenVK.dylib` file into your application or component library: - 1. On the *Build Phases* tab, add a new *Copy Files* build phase. - 2. Set the *Destination* into which you want to place the `libMoltenVK.dylib` file. - Typically this will be *Executables*. - 3. Drag the `MoltenVK/iOS/libMoltenVK.dylib` or `MoltenVK/macOS/libMoltenVK.dylib` - file to the *Copy Files* list in this new build phase. - - - Alternately, you may create your own installation mechanism to install the - `MoltenVK/iOS/libMoltenVK.dylib` or `MoltenVK/macOS/libMoltenVK.dylib` file - into a standard *iOS* or *macOS* system library folder on the user's device. - - -The `Cube-iOS` and `Cube-macOS` **MoltenVK** demo apps, found in the `Demos.xcworkspace`, -located in the `Demos` folder within the **MoltenVK** distribution package, are simple -examples of installing *MoltenVK* as a dynamic library embedded within an *iOS* or *macOS* -application, respectively. +- Static Framework: `API-Samples`. +- Static library: `Hologram`. +- Dynamic library: `Cube`. @@ -500,7 +485,3 @@ The following *Vulkan 1.0* features have not been implemented in this version of - Pipeline statistics query pool: - `vkCreateQueryPool(VK_QUERY_TYPE_PIPELINE_STATISTICS)` -- `VkImageViewCreateInfo::VkComponentMapping` supports only the following per-texture swizzles: - - `VK_FORMAT_R8_UNORM`: `VkComponentMapping.r` = `VK_COMPONENT_SWIZZLE_R` - - `VK_FORMAT_R8G8B8A8_UNORM` <-> `VK_FORMAT_B8G8R8A8_UNORM` - - `VK_FORMAT_R8G8B8A8_SRGB` <-> `VK_FORMAT_B8G8R8A8_SRGB` diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index fcf62e79..02af5720 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -15,8 +15,15 @@ For best results, use a Markdown reader.* MoltenVK 1.0.25 --------------- -Released TBD +Released 2018/10/31 +- Refactor the build environment. + - Support creation of static library and build framework and dynamic library from it. + - Add Makefile to better support command line or script building integration. + - Update demos to each use one of framework, static library, and dynamic library. + - Refactor and rename the build scripts. + - Refactor and rename the Xcode Schemes. + - Update build and runtime documentation. - Update shader caching for compatibility with texture swizzling. - Support polygonMode VK_POLYGON_MODE_POINT. - vkCreateInstance returns VK_ERROR_INCOMPATIBLE_DRIVER if Metal not available. diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..a0868e48 --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +XCODE_PROJ := MoltenVKPackaging.xcodeproj + +.PHONY: all +all: + xcodebuild -quiet -project $(XCODE_PROJ) -scheme "MoltenVK Package" build + +.PHONY: macos +macos: + xcodebuild -quiet -project $(XCODE_PROJ) -scheme "MoltenVK Package (macOS only)" build + +.PHONY: ios +ios: + xcodebuild -quiet -project $(XCODE_PROJ) -scheme "MoltenVK Package (iOS only)" build + +.PHONY: clean +clean: + xcodebuild -project $(XCODE_PROJ) -scheme "MoltenVK Package" clean + rm -rf Package + diff --git a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj index 96c1014d..474310a5 100644 --- a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj +++ b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj @@ -23,12 +23,12 @@ A93E83302121C5D4001FEBD4 /* MVKGPUCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = A93E832E2121C5D3001FEBD4 /* MVKGPUCapture.h */; }; A93E83352121F0C8001FEBD4 /* MVKGPUCapture.mm in Sources */ = {isa = PBXBuildFile; fileRef = A93E83342121F0C8001FEBD4 /* MVKGPUCapture.mm */; }; A93E83362121F0C8001FEBD4 /* MVKGPUCapture.mm in Sources */ = {isa = PBXBuildFile; fileRef = A93E83342121F0C8001FEBD4 /* MVKGPUCapture.mm */; }; - A948BB7F1E51642700DE59F2 /* mvk_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A948BB7E1E51642700DE59F2 /* mvk_vulkan.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A948BB801E51642700DE59F2 /* mvk_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A948BB7E1E51642700DE59F2 /* mvk_vulkan.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A94FB7B01C7DFB4800632CA3 /* mvk_datatypes.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7671C7DFB4800632CA3 /* mvk_datatypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A94FB7B11C7DFB4800632CA3 /* mvk_datatypes.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7671C7DFB4800632CA3 /* mvk_datatypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A94FB7B41C7DFB4800632CA3 /* vk_mvk_moltenvk.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7691C7DFB4800632CA3 /* vk_mvk_moltenvk.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A94FB7B51C7DFB4800632CA3 /* vk_mvk_moltenvk.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7691C7DFB4800632CA3 /* vk_mvk_moltenvk.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A948BB7F1E51642700DE59F2 /* mvk_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A948BB7E1E51642700DE59F2 /* mvk_vulkan.h */; }; + A948BB801E51642700DE59F2 /* mvk_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = A948BB7E1E51642700DE59F2 /* mvk_vulkan.h */; }; + A94FB7B01C7DFB4800632CA3 /* mvk_datatypes.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7671C7DFB4800632CA3 /* mvk_datatypes.h */; }; + A94FB7B11C7DFB4800632CA3 /* mvk_datatypes.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7671C7DFB4800632CA3 /* mvk_datatypes.h */; }; + A94FB7B41C7DFB4800632CA3 /* vk_mvk_moltenvk.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7691C7DFB4800632CA3 /* vk_mvk_moltenvk.h */; }; + A94FB7B51C7DFB4800632CA3 /* vk_mvk_moltenvk.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7691C7DFB4800632CA3 /* vk_mvk_moltenvk.h */; }; A94FB7B81C7DFB4800632CA3 /* MVKCmdTransfer.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB76C1C7DFB4800632CA3 /* MVKCmdTransfer.h */; }; A94FB7B91C7DFB4800632CA3 /* MVKCmdTransfer.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB76C1C7DFB4800632CA3 /* MVKCmdTransfer.h */; }; A94FB7BA1C7DFB4800632CA3 /* MVKCmdTransfer.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB76D1C7DFB4800632CA3 /* MVKCmdTransfer.mm */; }; @@ -342,11 +342,11 @@ A981494C1FB6A3F7005F00B4 /* MVKWatermarkTextureContent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKWatermarkTextureContent.h; sourceTree = ""; }; A981496A1FB6A998005F00B4 /* MVKStrings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKStrings.h; sourceTree = ""; }; A9AD67C72054DD6C00ED3C08 /* vulkan */ = {isa = PBXFileReference; lastKnownFileType = folder; path = vulkan; sourceTree = ""; }; - A9B8EE0A1A98D796009C5A02 /* MoltenVK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MoltenVK.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A9B8EE0A1A98D796009C5A02 /* libMoltenVK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMoltenVK.a; sourceTree = BUILT_PRODUCTS_DIR; }; A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MoltenVKShaderConverter.xcodeproj; path = ../MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj; sourceTree = ""; }; A9C96DCE1DDC20C20053187F /* MVKMTLBufferAllocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKMTLBufferAllocation.h; sourceTree = ""; }; A9C96DCF1DDC20C20053187F /* MVKMTLBufferAllocation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MVKMTLBufferAllocation.mm; sourceTree = ""; }; - A9CBEE011B6299D800E45FDC /* MoltenVK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MoltenVK.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A9CBEE011B6299D800E45FDC /* libMoltenVK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMoltenVK.a; sourceTree = BUILT_PRODUCTS_DIR; }; A9DE1083200598C500F18F80 /* icd */ = {isa = PBXFileReference; lastKnownFileType = folder; path = icd; sourceTree = ""; }; A9E4B7881E1D8AF10046A4CE /* MVKMTLResourceBindings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKMTLResourceBindings.h; sourceTree = ""; }; A9E53DCD2100B197002781DD /* MTLSamplerDescriptor+MoltenVK.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MTLSamplerDescriptor+MoltenVK.m"; sourceTree = ""; }; @@ -574,8 +574,8 @@ A9F55D2E198BE6A7004EC31B /* Products */ = { isa = PBXGroup; children = ( - A9B8EE0A1A98D796009C5A02 /* MoltenVK.framework */, - A9CBEE011B6299D800E45FDC /* MoltenVK.framework */, + A9B8EE0A1A98D796009C5A02 /* libMoltenVK.a */, + A9CBEE011B6299D800E45FDC /* libMoltenVK.a */, ); name = Products; sourceTree = ""; @@ -587,11 +587,11 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A94FB7B41C7DFB4800632CA3 /* vk_mvk_moltenvk.h in Headers */, A909F65F213B190700FCD6BE /* MVKExtensions.h in Headers */, + A94FB7B41C7DFB4800632CA3 /* vk_mvk_moltenvk.h in Headers */, A94FB7B01C7DFB4800632CA3 /* mvk_datatypes.h in Headers */, - A98149511FB6A3F7005F00B4 /* MVKEnvironment.h in Headers */, A948BB7F1E51642700DE59F2 /* mvk_vulkan.h in Headers */, + A98149511FB6A3F7005F00B4 /* MVKEnvironment.h in Headers */, A94FB8101C7DFB4800632CA3 /* MVKSurface.h in Headers */, A9E53E0121064F84002781DD /* MTLRenderPipelineDescriptor+MoltenVK.h in Headers */, A94FB7F41C7DFB4800632CA3 /* MVKInstance.h in Headers */, @@ -648,11 +648,11 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A94FB7B51C7DFB4800632CA3 /* vk_mvk_moltenvk.h in Headers */, A909F660213B190700FCD6BE /* MVKExtensions.h in Headers */, + A94FB7B51C7DFB4800632CA3 /* vk_mvk_moltenvk.h in Headers */, A94FB7B11C7DFB4800632CA3 /* mvk_datatypes.h in Headers */, - A98149521FB6A3F7005F00B4 /* MVKEnvironment.h in Headers */, A948BB801E51642700DE59F2 /* mvk_vulkan.h in Headers */, + A98149521FB6A3F7005F00B4 /* MVKEnvironment.h in Headers */, A94FB8111C7DFB4800632CA3 /* MVKSurface.h in Headers */, A9E53E0221064F84002781DD /* MTLRenderPipelineDescriptor+MoltenVK.h in Headers */, A94FB7F51C7DFB4800632CA3 /* MVKInstance.h in Headers */, @@ -715,6 +715,7 @@ A9B8EE071A98D796009C5A02 /* Headers */, A9B8EE051A98D796009C5A02 /* Sources */, A9731FAD1EDDAE39006B7298 /* Create Dynamic Library */, + A92EF79721854B3300C8B91B /* Create Framework */, ); buildRules = ( ); @@ -722,9 +723,9 @@ A981499B1FB6B9CF005F00B4 /* PBXTargetDependency */, ); name = "MoltenVK-iOS"; - productName = MetalGL; - productReference = A9B8EE0A1A98D796009C5A02 /* MoltenVK.framework */; - productType = "com.apple.product-type.framework"; + productName = MoltenVK; + productReference = A9B8EE0A1A98D796009C5A02 /* libMoltenVK.a */; + productType = "com.apple.product-type.library.static"; }; A9CBED861B6299D800E45FDC /* MoltenVK-macOS */ = { isa = PBXNativeTarget; @@ -733,6 +734,7 @@ A9CBED871B6299D800E45FDC /* Headers */, A9CBEDCE1B6299D800E45FDC /* Sources */, A93F47C91D7E389E002AF700 /* Create Dynamic Library */, + A92EF78D21852B2400C8B91B /* Create Framework */, ); buildRules = ( ); @@ -740,9 +742,9 @@ A98149A41FB6B9EB005F00B4 /* PBXTargetDependency */, ); name = "MoltenVK-macOS"; - productName = MetalGL; - productReference = A9CBEE011B6299D800E45FDC /* MoltenVK.framework */; - productType = "com.apple.product-type.framework"; + productName = MoltenVK; + productReference = A9CBEE011B6299D800E45FDC /* libMoltenVK.a */; + productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ @@ -825,6 +827,42 @@ /* End PBXReferenceProxy section */ /* Begin PBXShellScriptBuildPhase section */ + A92EF78D21852B2400C8B91B /* Create Framework */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Create Framework"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export MVK_OS=\"macOS\"\nexport MVK_FRWK_SUBPATH=\"/Versions/A\"\n\n\"${SRCROOT}/scripts/create_framework.sh\"\n"; + }; + A92EF79721854B3300C8B91B /* Create Framework */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Create Framework"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export MVK_OS=\"iOS\"\nexport MVK_FRWK_SUBPATH=\"\"\n\n\"${SRCROOT}/scripts/create_framework.sh\"\n"; + }; A93F47C91D7E389E002AF700 /* Create Dynamic Library */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -837,7 +875,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/scripts/create_dylib_macos.sh\""; + shellScript = "export MVK_OS=\"macosx\"\nexport MVK_ARCH=\"x86_64\"\nexport MVK_UX_FWK=\"AppKit\"\nexport MVK_MIN_OS_VERSION=${MACOSX_DEPLOYMENT_TARGET}\nexport MVK_IOSURFACE_FWK=\"-framework IOSurface\"\n\n\"${SRCROOT}/scripts/create_dylib.sh\"\n"; }; A9731FAD1EDDAE39006B7298 /* Create Dynamic Library */ = { isa = PBXShellScriptBuildPhase; @@ -851,7 +889,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "${SRCROOT}/scripts/create_dylib_ios.sh"; + shellScript = "export MVK_OS=\"ios\"\nexport MVK_ARCH=\"arm64\"\nexport MVK_UX_FWK=\"UIKit\"\nexport MVK_MIN_OS_VERSION=${IPHONEOS_DEPLOYMENT_TARGET}\nexport MVK_IOSURFACE_FWK=\"-framework IOSurface\"\n\n# Do not link to IOSurface if deploying to iOS versions below 11.0, doing so will\n# link IOSurface as a private framework, which will trigger App Store rejection.\nif [ $(echo \"${MVK_MIN_OS_VERSION} < 11.0\" | bc) -eq 1 ]; then\n MVK_IOSURFACE_FWK=\"\"\nfi\n\n\"${SRCROOT}/scripts/create_dylib.sh\"\n"; }; /* End PBXShellScriptBuildPhase section */ diff --git a/MoltenVK/MoltenVK.xcodeproj/xcshareddata/xcschemes/MoltenVK-iOS.xcscheme b/MoltenVK/MoltenVK.xcodeproj/xcshareddata/xcschemes/MoltenVK-iOS.xcscheme index 86fc06d1..678103b3 100644 --- a/MoltenVK/MoltenVK.xcodeproj/xcshareddata/xcschemes/MoltenVK-iOS.xcscheme +++ b/MoltenVK/MoltenVK.xcodeproj/xcshareddata/xcschemes/MoltenVK-iOS.xcscheme @@ -15,7 +15,7 @@ @@ -51,7 +51,7 @@ @@ -69,7 +69,7 @@ diff --git a/MoltenVK/MoltenVK.xcodeproj/xcshareddata/xcschemes/MoltenVK-macOS.xcscheme b/MoltenVK/MoltenVK.xcodeproj/xcshareddata/xcschemes/MoltenVK-macOS.xcscheme index 1155111e..9c9303cc 100644 --- a/MoltenVK/MoltenVK.xcodeproj/xcshareddata/xcschemes/MoltenVK-macOS.xcscheme +++ b/MoltenVK/MoltenVK.xcodeproj/xcshareddata/xcschemes/MoltenVK-macOS.xcscheme @@ -15,7 +15,7 @@ @@ -51,7 +51,7 @@ @@ -69,7 +69,7 @@ diff --git a/MoltenVK/scripts/create_dylib_macos.sh b/MoltenVK/scripts/create_dylib.sh similarity index 52% rename from MoltenVK/scripts/create_dylib_macos.sh rename to MoltenVK/scripts/create_dylib.sh index 2cf63b07..8dc01293 100755 --- a/MoltenVK/scripts/create_dylib_macos.sh +++ b/MoltenVK/scripts/create_dylib.sh @@ -2,9 +2,7 @@ set -e -export MVK_PROD_NAME="MoltenVK" -export MVK_DYLIB_NAME="lib${MVK_PROD_NAME}.dylib" -export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}" +export MVK_DYLIB_NAME="lib${PRODUCT_NAME}.dylib" export MVK_SYS_FWK_DIR="${SDK_DIR}/System/Library/Frameworks" export MVK_USR_LIB_DIR="${SDK_DIR}/usr/lib" @@ -14,15 +12,15 @@ fi clang \ -dynamiclib ${MVK_TSAN} \ --arch x86_64 \ --mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET} \ +-arch ${MVK_ARCH} \ +-m${MVK_OS}-version-min=${MVK_MIN_OS_VERSION} \ -compatibility_version 1.0.0 -current_version 1.0.0 \ -install_name "@rpath/${MVK_DYLIB_NAME}" \ -Wno-incompatible-sysroot \ -isysroot ${SDK_DIR} \ -iframework ${MVK_SYS_FWK_DIR} \ --framework Metal -framework IOSurface -framework IOKit -framework QuartzCore -framework AppKit -framework Foundation \ +-framework Metal ${MVK_IOSURFACE_FWK} -framework ${MVK_UX_FWK} -framework QuartzCore -framework IOKit -framework Foundation \ --library-directory ${MVK_USR_LIB_DIR} \ -lSystem -lc++ \ --o "${MVK_BUILT_PROD_PATH}/${MVK_DYLIB_NAME}" \ --force_load "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/${MVK_PROD_NAME}" +-o "${BUILT_PRODUCTS_DIR}/${MVK_DYLIB_NAME}" \ +-force_load "${BUILT_PRODUCTS_DIR}/lib${PRODUCT_NAME}.a" diff --git a/MoltenVK/scripts/create_dylib_ios.sh b/MoltenVK/scripts/create_dylib_ios.sh deleted file mode 100755 index f1c1fc73..00000000 --- a/MoltenVK/scripts/create_dylib_ios.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -set -e - -export MVK_PROD_NAME="MoltenVK" -export MVK_DYLIB_NAME="lib${MVK_PROD_NAME}.dylib" -export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}" -export MVK_SYS_FWK_DIR="${SDK_DIR}/System/Library/Frameworks" -export MVK_USR_LIB_DIR="${SDK_DIR}/usr/lib" - -# Do not link to IOSurface if deploying to iOS versions below 11.0, doing so will -# link IOSurface as a private framework, which will trigger App Store rejection. -if [ $(echo "${IPHONEOS_DEPLOYMENT_TARGET} >= 11.0" | bc) -eq 1 ] -then - export MVK_IOSURFACE_FWK="-framework IOSurface" -else - export MVK_IOSURFACE_FWK="" -fi - -clang \ --dynamiclib \ --arch arm64 \ --mios-version-min=${IPHONEOS_DEPLOYMENT_TARGET} \ --compatibility_version 1.0.0 -current_version 1.0.0 \ --install_name "@rpath/${MVK_DYLIB_NAME}" \ --Wno-incompatible-sysroot \ --isysroot ${SDK_DIR} \ --iframework ${MVK_SYS_FWK_DIR} \ --framework Metal ${MVK_IOSURFACE_FWK} -framework UIKit -framework QuartzCore -framework UIKit -framework Foundation \ ---library-directory ${MVK_USR_LIB_DIR} \ --lSystem -lc++ \ --o "${MVK_BUILT_PROD_PATH}/${MVK_DYLIB_NAME}" \ --force_load "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/${MVK_PROD_NAME}" diff --git a/MoltenVK/scripts/create_framework.sh b/MoltenVK/scripts/create_framework.sh new file mode 100755 index 00000000..2fa738f3 --- /dev/null +++ b/MoltenVK/scripts/create_framework.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +export MVK_TMPLT_PATH="${PROJECT_DIR}/templates/framework/${MVK_OS}" +export MVK_BUILT_FRWK_PATH="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework" +export MVK_BUILT_FRWK_CONTENT_PATH="${MVK_BUILT_FRWK_PATH}${MVK_FRWK_SUBPATH}" + +rm -rf "${MVK_BUILT_FRWK_PATH}" +cp -a "${MVK_TMPLT_PATH}/${PRODUCT_NAME}.framework" "${BUILT_PRODUCTS_DIR}" +cp -a "${BUILT_PRODUCTS_DIR}/lib${PRODUCT_NAME}.a" "${MVK_BUILT_FRWK_CONTENT_PATH}/${PRODUCT_NAME}" +cp -a "${PROJECT_DIR}/include/${PRODUCT_NAME}/" "${MVK_BUILT_FRWK_CONTENT_PATH}/Headers" diff --git a/MoltenVK/templates/framework/macOS/MoltenVK.framework/Headers b/MoltenVK/templates/framework/macOS/MoltenVK.framework/Headers new file mode 120000 index 00000000..a177d2a6 --- /dev/null +++ b/MoltenVK/templates/framework/macOS/MoltenVK.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/MoltenVK/templates/framework/macOS/MoltenVK.framework/MoltenVK b/MoltenVK/templates/framework/macOS/MoltenVK.framework/MoltenVK new file mode 120000 index 00000000..97628cd0 --- /dev/null +++ b/MoltenVK/templates/framework/macOS/MoltenVK.framework/MoltenVK @@ -0,0 +1 @@ +Versions/Current/MoltenVK \ No newline at end of file diff --git a/MoltenVK/templates/framework/macOS/MoltenVK.framework/Versions/Current b/MoltenVK/templates/framework/macOS/MoltenVK.framework/Versions/Current new file mode 120000 index 00000000..8c7e5a66 --- /dev/null +++ b/MoltenVK/templates/framework/macOS/MoltenVK.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/MoltenVKPackaging.xcodeproj/project.pbxproj b/MoltenVKPackaging.xcodeproj/project.pbxproj index 2929f50f..d8f871b4 100644 --- a/MoltenVKPackaging.xcodeproj/project.pbxproj +++ b/MoltenVKPackaging.xcodeproj/project.pbxproj @@ -40,16 +40,10 @@ isa = PBXAggregateTarget; buildConfigurationList = A9FEADDC1F3517480010240E /* Build configuration list for PBXAggregateTarget "MoltenVK" */; buildPhases = ( - A9FEADD61F3517480010240E /* Package MoltenVK */, ); dependencies = ( - A9FEADBD1F3517480010240E /* PBXTargetDependency */, - A9FEADBF1F3517480010240E /* PBXTargetDependency */, - A98149D11FB7689D005F00B4 /* PBXTargetDependency */, - A98149D31FB7689D005F00B4 /* PBXTargetDependency */, - A98149CD1FB7689D005F00B4 /* PBXTargetDependency */, - A98149CF1FB7689D005F00B4 /* PBXTargetDependency */, - A98149CB1FB7689D005F00B4 /* PBXTargetDependency */, + A9AFC2602184EEF60084B396 /* PBXTargetDependency */, + A9AFC2622184EEF60084B396 /* PBXTargetDependency */, ); name = MoltenVK; productName = Package; @@ -155,53 +149,18 @@ remoteGlobalIDString = A93903C71C57E9ED00FE90DC; remoteInfo = "MoltenVKSPIRVToMSLConverter-macOS"; }; - A98149CA1FB7689D005F00B4 /* PBXContainerItemProxy */ = { + A9AFC25F2184EEF60084B396 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */; + containerPortal = A90B2B1D1A9B6170008EE819 /* Project object */; 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; + remoteGlobalIDString = A975D5782140585200D4834F; remoteInfo = "MoltenVK-iOS"; }; - A9FEADC01F3517480010240E /* PBXContainerItemProxy */ = { + A9AFC2612184EEF60084B396 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */; + containerPortal = A90B2B1D1A9B6170008EE819 /* Project object */; proxyType = 1; - remoteGlobalIDString = A9CBED861B6299D800E45FDC; + remoteGlobalIDString = A975D58B2140586700D4834F; remoteInfo = "MoltenVK-macOS"; }; /* End PBXContainerItemProxy section */ @@ -212,15 +171,18 @@ A92DB3E61CE0F37D00FBC835 /* Whats_New.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = Whats_New.md; path = Docs/Whats_New.md; sourceTree = ""; }; A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MoltenVK.xcodeproj; path = MoltenVK/MoltenVK.xcodeproj; sourceTree = ""; }; A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MoltenVKShaderConverter.xcodeproj; path = MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj; sourceTree = ""; }; + A92EF7C521856EA200C8B91B /* package_ios.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_ios.sh; sourceTree = ""; }; + A92EF7C621856EA200C8B91B /* package_moltenvk.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_moltenvk.sh; sourceTree = ""; }; + A92EF7C721856EA200C8B91B /* package_shader_converter_tool.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_shader_converter_tool.sh; sourceTree = ""; }; + A92EF7C821856EA200C8B91B /* package_macos.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_macos.sh; sourceTree = ""; }; + A92EF7C921856EA200C8B91B /* package_docs.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_docs.sh; sourceTree = ""; }; + A92EF7CA21856EA200C8B91B /* package_update_latest.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_update_latest.sh; sourceTree = ""; }; + A92EF7CB21856EA300C8B91B /* package_shader_converter.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_shader_converter.sh; sourceTree = ""; }; + A92EF7DE2186451700C8B91B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Makefile; path = ../Makefile; sourceTree = ""; }; A943100220546CDD00F5CF87 /* fetchDependencies */ = {isa = PBXFileReference; lastKnownFileType = text; name = fetchDependencies; path = ../fetchDependencies; sourceTree = ""; }; - A975D55C213F25D700D4834F /* create_dylib_ios.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = create_dylib_ios.sh; path = MoltenVK/scripts/create_dylib_ios.sh; sourceTree = SOURCE_ROOT; }; - A975D55D213F266000D4834F /* create_dylib_macos.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = create_dylib_macos.sh; path = MoltenVK/scripts/create_dylib_macos.sh; sourceTree = SOURCE_ROOT; }; - A975D561213F299500D4834F /* update_latest.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = update_latest.sh; sourceTree = ""; }; - A975D562213F2B7700D4834F /* package_docs.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_docs.sh; sourceTree = ""; }; - A975D566213F2DAA00D4834F /* package_shader_converter.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_shader_converter.sh; sourceTree = ""; }; - A975D573214050AB00D4834F /* package_moltenvk.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_moltenvk.sh; sourceTree = ""; }; - A975D5742140567B00D4834F /* package_all.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_all.sh; sourceTree = ""; }; + A975D55C213F25D700D4834F /* create_dylib.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = create_dylib.sh; path = ../MoltenVK/scripts/create_dylib.sh; sourceTree = ""; }; A98149E51FB78829005F00B4 /* MoltenVK_Runtime_UserGuide.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = MoltenVK_Runtime_UserGuide.md; path = Docs/MoltenVK_Runtime_UserGuide.md; sourceTree = ""; }; + A99A760321852584000A8E2A /* create_framework.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = create_framework.sh; path = ../MoltenVK/scripts/create_framework.sh; sourceTree = ""; }; A9AD67D12054E2D700ED3C08 /* VulkanSamples_repo_revision */ = {isa = PBXFileReference; lastKnownFileType = text; path = VulkanSamples_repo_revision; sourceTree = ""; }; A9AD67D32054E2D700ED3C08 /* SPIRV-Cross_repo_revision */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SPIRV-Cross_repo_revision"; sourceTree = ""; }; A9AD67E92055D8A600ED3C08 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; @@ -256,8 +218,8 @@ A92DB3EF1CE0F72500FBC835 /* Products */ = { isa = PBXGroup; children = ( - A92DB3F51CE0F72500FBC835 /* MoltenVK.framework */, - A92DB3F71CE0F72500FBC835 /* MoltenVK.framework */, + A92DB3F51CE0F72500FBC835 /* libMoltenVK.a */, + A92DB3F71CE0F72500FBC835 /* libMoltenVK.a */, ); name = Products; sourceTree = ""; @@ -281,13 +243,16 @@ A975D55B213F25AD00D4834F /* Scripts */ = { isa = PBXGroup; children = ( - A975D55C213F25D700D4834F /* create_dylib_ios.sh */, - A975D55D213F266000D4834F /* create_dylib_macos.sh */, - A975D5742140567B00D4834F /* package_all.sh */, - A975D562213F2B7700D4834F /* package_docs.sh */, - A975D573214050AB00D4834F /* package_moltenvk.sh */, - A975D566213F2DAA00D4834F /* package_shader_converter.sh */, - A975D561213F299500D4834F /* update_latest.sh */, + A975D55C213F25D700D4834F /* create_dylib.sh */, + A99A760321852584000A8E2A /* create_framework.sh */, + A92EF7C921856EA200C8B91B /* package_docs.sh */, + A92EF7C521856EA200C8B91B /* package_ios.sh */, + A92EF7C821856EA200C8B91B /* package_macos.sh */, + A92EF7C621856EA200C8B91B /* package_moltenvk.sh */, + A92EF7C721856EA200C8B91B /* package_shader_converter_tool.sh */, + A92EF7CB21856EA300C8B91B /* package_shader_converter.sh */, + A92EF7CA21856EA200C8B91B /* package_update_latest.sh */, + A92EF7DE2186451700C8B91B /* Makefile */, ); path = Scripts; sourceTree = ""; @@ -346,17 +311,17 @@ /* End PBXProject section */ /* Begin PBXReferenceProxy section */ - A92DB3F51CE0F72500FBC835 /* MoltenVK.framework */ = { + A92DB3F51CE0F72500FBC835 /* libMoltenVK.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = MoltenVK.framework; + fileType = archive.ar; + path = libMoltenVK.a; remoteRef = A92DB3F41CE0F72500FBC835 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - A92DB3F71CE0F72500FBC835 /* MoltenVK.framework */ = { + A92DB3F71CE0F72500FBC835 /* libMoltenVK.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = MoltenVK.framework; + fileType = archive.ar; + path = libMoltenVK.a; remoteRef = A92DB3F61CE0F72500FBC835 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -410,7 +375,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Scripts/package_all.sh\"\n"; + shellScript = "\"${SRCROOT}/Scripts/package_ios.sh\"\n"; }; A975D59A2140586700D4834F /* Package MoltenVK */ = { isa = PBXShellScriptBuildPhase; @@ -424,21 +389,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Scripts/package_all.sh\""; - }; - A9FEADD61F3517480010240E /* Package MoltenVK */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Package MoltenVK"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Scripts/package_all.sh\"\n"; + shellScript = "\"${SRCROOT}/Scripts/package_macos.sh\"\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -478,40 +429,15 @@ name = MoltenVKShaderConverter; targetProxy = A975D5992140586700D4834F /* PBXContainerItemProxy */; }; - A98149CB1FB7689D005F00B4 /* PBXTargetDependency */ = { + A9AFC2602184EEF60084B396 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = MoltenVKShaderConverter; - targetProxy = A98149CA1FB7689D005F00B4 /* PBXContainerItemProxy */; + target = A975D5782140585200D4834F /* MoltenVK-iOS */; + targetProxy = A9AFC25F2184EEF60084B396 /* PBXContainerItemProxy */; }; - A98149CD1FB7689D005F00B4 /* PBXTargetDependency */ = { + A9AFC2622184EEF60084B396 /* 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 */; + target = A975D58B2140586700D4834F /* MoltenVK-macOS */; + targetProxy = A9AFC2612184EEF60084B396 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ diff --git a/MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug) (iOS only).xcscheme b/MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug) (iOS only).xcscheme deleted file mode 100644 index fe1548ce..00000000 --- a/MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug) (iOS only).xcscheme +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug) (macOS only).xcscheme b/MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug) (macOS only).xcscheme deleted file mode 100644 index fb4c6a20..00000000 --- a/MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug) (macOS only).xcscheme +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug).xcscheme b/MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug).xcscheme index 64620291..5a51a8c0 100644 --- a/MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug).xcscheme +++ b/MoltenVKPackaging.xcodeproj/xcshareddata/xcschemes/MoltenVK Package (Debug).xcscheme @@ -1,7 +1,7 @@ + version = "2.0"> @@ -36,13 +36,17 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + disableMainThreadChecker = "YES" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "NO" + debugXPCServices = "NO" debugServiceExtension = "internal" - enableGPUFrameCaptureMode = "1" - allowLocationSimulation = "NO"> + enableGPUFrameCaptureMode = "3" + enableGPUValidationMode = "1" + allowLocationSimulation = "NO" + queueDebuggingEnabled = "No"> diff --git a/Scripts/package_docs.sh b/Scripts/package_docs.sh index 2d634d4e..4d1cfb26 100755 --- a/Scripts/package_docs.sh +++ b/Scripts/package_docs.sh @@ -3,10 +3,8 @@ set -e # Package folder -export MVK_WKSPC_PATH="${PROJECT_DIR}" -export MVK_PKG_LOCN="${MVK_WKSPC_PATH}/Package" -export MVK_PKG_CONFIG_PATH="${MVK_PKG_LOCN}/${CONFIGURATION}" +export MVK_PKG_CONFIG_PATH="${PROJECT_DIR}/Package/${CONFIGURATION}" -# Copy the docs. Allow silent fail if a symlinked doc is not built. -cp -a "${MVK_WKSPC_PATH}/LICENSE" "${MVK_PKG_CONFIG_PATH}" -cp -pRLf "${MVK_WKSPC_PATH}/Docs" "${MVK_PKG_CONFIG_PATH}" 2> /dev/null || true +# Copy the docs. +cp -a "${PROJECT_DIR}/Docs" "${MVK_PKG_CONFIG_PATH}" +cp -a "${PROJECT_DIR}/LICENSE" "${MVK_PKG_CONFIG_PATH}" diff --git a/Scripts/package_all.sh b/Scripts/package_ios.sh similarity index 52% rename from Scripts/package_all.sh rename to Scripts/package_ios.sh index dbcbcedd..ef8e6583 100755 --- a/Scripts/package_all.sh +++ b/Scripts/package_ios.sh @@ -1,7 +1,10 @@ #!/bin/bash +export MVK_OS="iOS" +export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}-iphoneos" + "${SRCROOT}/Scripts/package_moltenvk.sh" "${SRCROOT}/Scripts/package_shader_converter.sh" "${SRCROOT}/Scripts/package_docs.sh" -"${SRCROOT}/Scripts/update_latest.sh" +"${SRCROOT}/Scripts/package_update_latest.sh" diff --git a/Scripts/package_macos.sh b/Scripts/package_macos.sh new file mode 100755 index 00000000..37401588 --- /dev/null +++ b/Scripts/package_macos.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +export MVK_OS="macOS" +export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}" + +"${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" + diff --git a/Scripts/package_moltenvk.sh b/Scripts/package_moltenvk.sh index c22562ef..f76b31c4 100755 --- a/Scripts/package_moltenvk.sh +++ b/Scripts/package_moltenvk.sh @@ -2,42 +2,23 @@ set -e -# Package folder export MVK_PROD_NAME="MoltenVK" -export MVK_DYLIB_NAME="lib${MVK_PROD_NAME}.dylib" -export MVK_ICD_NAME="${MVK_PROD_NAME}_icd.json" -export MVK_WKSPC_PATH="${PROJECT_DIR}" -export MVK_PROD_PROJ_PATH="${MVK_WKSPC_PATH}/${MVK_PROD_NAME}" -export MVK_PKG_LOCN="${MVK_WKSPC_PATH}/Package" -export MVK_PKG_CONFIG_PATH="${MVK_PKG_LOCN}/${CONFIGURATION}" -export MVK_PKG_PROD_PATH="${MVK_PKG_CONFIG_PATH}/${MVK_PROD_NAME}" +export MVK_PROD_PROJ_PATH="${PROJECT_DIR}/${MVK_PROD_NAME}" +export MVK_PKG_PROD_PATH="${PROJECT_DIR}/Package/${CONFIGURATION}/${MVK_PROD_NAME}" +export MVK_PKG_PROD_PATH_OS="${MVK_PKG_PROD_PATH}/${MVK_OS}" -# Remove the product folder -rm -rf "${MVK_PKG_PROD_PATH}" +rm -rf "${MVK_PKG_PROD_PATH_OS}" +mkdir -p "${MVK_PKG_PROD_PATH_OS}/static" +cp -a "${MVK_BUILT_PROD_PATH}/lib${MVK_PROD_NAME}.a" "${MVK_PKG_PROD_PATH_OS}/static" +mkdir -p "${MVK_PKG_PROD_PATH_OS}/dynamic" +cp -a "${MVK_BUILT_PROD_PATH}/lib${MVK_PROD_NAME}.dylib" "${MVK_PKG_PROD_PATH_OS}/dynamic" +cp -a "${MVK_PROD_PROJ_PATH}/icd/${MVK_PROD_NAME}_icd.json" "${MVK_PKG_PROD_PATH_OS}/dynamic" +mkdir -p "${MVK_PKG_PROD_PATH_OS}/framework" +cp -a "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework" "${MVK_PKG_PROD_PATH_OS}/framework" -# Remove and replace the existing macOS framework folder and copy framework into it -export MVK_OS_PROD_PATH="${MVK_PKG_PROD_PATH}/macOS" -export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}" -rm -rf "${MVK_OS_PROD_PATH}" -if [ -e "${MVK_BUILT_PROD_PATH}" ]; then - mkdir -p "${MVK_OS_PROD_PATH}" - cp -a "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework" "${MVK_OS_PROD_PATH}" - cp -a "${MVK_BUILT_PROD_PATH}/${MVK_DYLIB_NAME}" "${MVK_OS_PROD_PATH}" - cp -a "${MVK_PROD_PROJ_PATH}/icd/${MVK_ICD_NAME}" "${MVK_OS_PROD_PATH}" -fi +# Remove the code signature +rm -rf "${MVK_PKG_PROD_PATH_OS}/framework/${MVK_PROD_NAME}.framework/_CodeSignature" -# Remove and replace the existing iOS framework folder and copy framework into it -export MVK_OS_PROD_PATH="${MVK_PKG_PROD_PATH}/iOS" -export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}-iphoneos" -rm -rf "${MVK_OS_PROD_PATH}" -echo MVK_BUILT_PROD_PATH = "${MVK_BUILT_PROD_PATH}" -if [ -e "${MVK_BUILT_PROD_PATH}" ]; then - rm -rf "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/_CodeSignature" - mkdir -p "${MVK_OS_PROD_PATH}" - cp -a "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework" "${MVK_OS_PROD_PATH}" - cp -a "${MVK_BUILT_PROD_PATH}/${MVK_DYLIB_NAME}" "${MVK_OS_PROD_PATH}" - cp -a "${MVK_PROD_PROJ_PATH}/icd/${MVK_ICD_NAME}" "${MVK_OS_PROD_PATH}" -fi # Remove and replace header include folder rm -rf "${MVK_PKG_PROD_PATH}/include" cp -pRL "${MVK_PROD_PROJ_PATH}/include" "${MVK_PKG_PROD_PATH}" diff --git a/Scripts/package_shader_converter.sh b/Scripts/package_shader_converter.sh index fc001a41..410f00f8 100755 --- a/Scripts/package_shader_converter.sh +++ b/Scripts/package_shader_converter.sh @@ -2,72 +2,25 @@ set -e -# Package folder export MVK_PROD_BASE_NAME="MoltenVKShaderConverter" -export MVK_WKSPC_PATH="${PROJECT_DIR}" -export MVK_PKG_LOCN="${MVK_WKSPC_PATH}/Package" - -# Remove the base product folder -rm -rf "${MVK_PKG_LOCN}/${CONFIGURATION}/${MVK_PROD_BASE_NAME}" +export MVK_PKG_CONFIG_BASE_PATH="${PROJECT_DIR}/Package/${CONFIGURATION}/${MVK_PROD_BASE_NAME}" #----------------------------------- # MoltenVKGLSLToSPIRVConverter export MVK_PROD_NAME="MoltenVKGLSLToSPIRVConverter" -export MVK_PKG_CONFIG_PATH="${MVK_PKG_LOCN}/${CONFIGURATION}/${MVK_PROD_BASE_NAME}/${MVK_PROD_NAME}" +export MVK_PKG_PROD_PATH_OS="${MVK_PKG_CONFIG_BASE_PATH}/${MVK_PROD_NAME}/${MVK_OS}" -# Remove and replace the existing macOS framework folder and copy framework into it -export MVK_OS_PROD_PATH="${MVK_PKG_CONFIG_PATH}/macOS" -export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}" -rm -rf "${MVK_OS_PROD_PATH}" -if [ -e "${MVK_BUILT_PROD_PATH}" ]; then - mkdir -p "${MVK_OS_PROD_PATH}" - cp -a "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework" "${MVK_OS_PROD_PATH}" -fi - -# Remove and replace the existing iOS framework folder and copy framework into it -export MVK_OS_PROD_PATH="${MVK_PKG_CONFIG_PATH}/iOS" -export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}-iphoneos" -rm -rf "${MVK_OS_PROD_PATH}" -if [ -e "${MVK_BUILT_PROD_PATH}" ]; then - rm -rf "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/_CodeSignature" - mkdir -p "${MVK_OS_PROD_PATH}" - cp -a "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework" "${MVK_OS_PROD_PATH}" -fi +rm -rf "${MVK_PKG_PROD_PATH_OS}" +mkdir -p "${MVK_PKG_PROD_PATH_OS}" +cp -a "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework" "${MVK_PKG_PROD_PATH_OS}" +rm -rf "${MVK_PKG_PROD_PATH_OS}/${MVK_PROD_NAME}.framework/_CodeSignature" #----------------------------------- # MoltenVKSPIRVToMSLConverter export MVK_PROD_NAME="MoltenVKSPIRVToMSLConverter" -export MVK_PKG_CONFIG_PATH="${MVK_PKG_LOCN}/${CONFIGURATION}/${MVK_PROD_BASE_NAME}/${MVK_PROD_NAME}" +export MVK_PKG_PROD_PATH_OS="${MVK_PKG_CONFIG_BASE_PATH}/${MVK_PROD_NAME}/${MVK_OS}" -# Remove and replace the existing macOS framework folder and copy framework into it -export MVK_OS_PROD_PATH="${MVK_PKG_CONFIG_PATH}/macOS" -export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}" -rm -rf "${MVK_OS_PROD_PATH}" -if [ -e "${MVK_BUILT_PROD_PATH}" ]; then - mkdir -p "${MVK_OS_PROD_PATH}" - cp -a "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework" "${MVK_OS_PROD_PATH}" -fi - -# Remove and replace the existing iOS framework folder and copy framework into it -export MVK_OS_PROD_PATH="${MVK_PKG_CONFIG_PATH}/iOS" -export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}-iphoneos" -rm -rf "${MVK_OS_PROD_PATH}" -if [ -e "${MVK_BUILT_PROD_PATH}" ]; then - rm -rf "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework/_CodeSignature" - mkdir -p "${MVK_OS_PROD_PATH}" - cp -a "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework" "${MVK_OS_PROD_PATH}" -fi - -#----------------------------------- -# MoltenVKShaderConverter Tool -export MVK_PROD_NAME="MoltenVKShaderConverter" -export MVK_PKG_CONFIG_PATH="${MVK_PKG_LOCN}/${CONFIGURATION}/${MVK_PROD_BASE_NAME}" - -# Remove and replace the existing macOS framework folder and copy framework into it -export MVK_OS_PROD_PATH="${MVK_PKG_CONFIG_PATH}/Tools" -export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}" -rm -rf "${MVK_OS_PROD_PATH}" -if [ -e "${MVK_BUILT_PROD_PATH}" ]; then - mkdir -p "${MVK_OS_PROD_PATH}" - cp -a "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}" "${MVK_OS_PROD_PATH}" -fi +rm -rf "${MVK_PKG_PROD_PATH_OS}" +mkdir -p "${MVK_PKG_PROD_PATH_OS}" +cp -a "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}.framework" "${MVK_PKG_PROD_PATH_OS}" +rm -rf "${MVK_PKG_PROD_PATH_OS}/${MVK_PROD_NAME}.framework/_CodeSignature" diff --git a/Scripts/package_shader_converter_tool.sh b/Scripts/package_shader_converter_tool.sh new file mode 100755 index 00000000..e893ec60 --- /dev/null +++ b/Scripts/package_shader_converter_tool.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e + +export MVK_PROD_NAME="MoltenVKShaderConverter" +export MVK_PKG_PROD_PATH_OS="${PROJECT_DIR}/Package/${CONFIGURATION}/${MVK_PROD_NAME}/Tools" + +rm -rf "${MVK_PKG_PROD_PATH_OS}" +mkdir -p "${MVK_PKG_PROD_PATH_OS}" +cp -a "${MVK_BUILT_PROD_PATH}/${MVK_PROD_NAME}" "${MVK_PKG_PROD_PATH_OS}" diff --git a/Scripts/package_update_latest.sh b/Scripts/package_update_latest.sh new file mode 100755 index 00000000..80323555 --- /dev/null +++ b/Scripts/package_update_latest.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +# Package folder +export MVK_PKG_PATH="${PROJECT_DIR}/Package" + +# Assign symlink to Latest +ln -sfn "${MVK_PKG_PATH}/${CONFIGURATION}" "${MVK_PKG_PATH}/Latest" diff --git a/Scripts/update_latest.sh b/Scripts/update_latest.sh deleted file mode 100755 index 8abc75c1..00000000 --- a/Scripts/update_latest.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -set -e - -# Package folder -export MVK_WKSPC_LOCN="${PROJECT_DIR}" -export MVK_PKG_LOCN="${MVK_WKSPC_LOCN}/Package" - -# Configuration package folder location -export MVK_PKG_CONFIG_LOCN="${CONFIGURATION}" -export MVK_PKG_LATEST_LOCN="Latest" - -# Assign symlink from Latest -ln -sfn "${MVK_PKG_LOCN}/${MVK_PKG_CONFIG_LOCN}" "${MVK_PKG_LOCN}/${MVK_PKG_LATEST_LOCN}"