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 145fcef1..00a24ff3 100644
--- a/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/project.pbxproj
+++ b/Demos/LunarG-VulkanSamples/API-Samples/API-Samples.xcodeproj/project.pbxproj
@@ -641,6 +641,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
+ CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"\"$(SRCROOT)/../../../MoltenVK/iOS/framework\"",
@@ -655,6 +656,7 @@
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ MARKETING_VERSION = 1;
PRODUCT_BUNDLE_IDENTIFIER = "com.moltenvk.API-Samples";
PRODUCT_NAME = "API-Samples";
SDKROOT = iphoneos;
@@ -666,6 +668,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
+ CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
FRAMEWORK_SEARCH_PATHS = (
"\"$(SRCROOT)/../../../MoltenVK/iOS/framework\"",
@@ -676,6 +679,7 @@
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ MARKETING_VERSION = 1;
PRODUCT_BUNDLE_IDENTIFIER = "com.moltenvk.API-Samples";
PRODUCT_NAME = "API-Samples";
SDKROOT = iphoneos;
diff --git a/Demos/LunarG-VulkanSamples/API-Samples/iOS/Info.plist b/Demos/LunarG-VulkanSamples/API-Samples/iOS/Info.plist
index dcbf9e84..8101a177 100644
--- a/Demos/LunarG-VulkanSamples/API-Samples/iOS/Info.plist
+++ b/Demos/LunarG-VulkanSamples/API-Samples/iOS/Info.plist
@@ -16,10 +16,14 @@
$(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleInfoDictionaryVersion
6.0
+ CFBundleName
+ ${PRODUCT_NAME}
CFBundlePackageType
APPL
+ CFBundleShortVersionString
+ $(MARKETING_VERSION)
CFBundleVersion
- 1.0
+ $(CURRENT_PROJECT_VERSION)
LSApplicationCategoryType
UIMainStoryboardFile
diff --git a/Demos/LunarG-VulkanSamples/Cube/Cube.xcodeproj/project.pbxproj b/Demos/LunarG-VulkanSamples/Cube/Cube.xcodeproj/project.pbxproj
index 2766dab5..f807e92e 100644
--- a/Demos/LunarG-VulkanSamples/Cube/Cube.xcodeproj/project.pbxproj
+++ b/Demos/LunarG-VulkanSamples/Cube/Cube.xcodeproj/project.pbxproj
@@ -346,6 +346,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
+ CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -356,6 +357,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS/dynamic\"";
+ MARKETING_VERSION = 1;
PRODUCT_NAME = Cube;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -366,6 +368,7 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
+ CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -376,6 +379,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS/dynamic\"";
+ MARKETING_VERSION = 1;
PRODUCT_NAME = Cube;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
diff --git a/Demos/LunarG-VulkanSamples/Cube/iOS/Info.plist b/Demos/LunarG-VulkanSamples/Cube/iOS/Info.plist
index d04a6694..d05fce65 100644
--- a/Demos/LunarG-VulkanSamples/Cube/iOS/Info.plist
+++ b/Demos/LunarG-VulkanSamples/Cube/iOS/Info.plist
@@ -16,10 +16,14 @@
$(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleInfoDictionaryVersion
6.0
+ CFBundleName
+ ${PRODUCT_NAME}
CFBundlePackageType
APPL
+ CFBundleShortVersionString
+ $(MARKETING_VERSION)
CFBundleVersion
- 1.0
+ $(CURRENT_PROJECT_VERSION)
LSApplicationCategoryType
UIMainStoryboardFile
diff --git a/Demos/LunarG-VulkanSamples/Hologram/Hologram.xcodeproj/project.pbxproj b/Demos/LunarG-VulkanSamples/Hologram/Hologram.xcodeproj/project.pbxproj
index 3f77a1bf..ad3b5b69 100644
--- a/Demos/LunarG-VulkanSamples/Hologram/Hologram.xcodeproj/project.pbxproj
+++ b/Demos/LunarG-VulkanSamples/Hologram/Hologram.xcodeproj/project.pbxproj
@@ -353,11 +353,13 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
+ CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS/static\"";
+ MARKETING_VERSION = 1;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
@@ -367,11 +369,13 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
+ CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
GCC_PREFIX_HEADER = "$(SRCROOT)/iOS/Prefix.pch";
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LIBRARY_SEARCH_PATHS = "\"$(SRCROOT)/../../../MoltenVK/iOS/static\"";
+ MARKETING_VERSION = 1;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
diff --git a/Demos/LunarG-VulkanSamples/Hologram/iOS/Info.plist b/Demos/LunarG-VulkanSamples/Hologram/iOS/Info.plist
index dcbf9e84..8101a177 100644
--- a/Demos/LunarG-VulkanSamples/Hologram/iOS/Info.plist
+++ b/Demos/LunarG-VulkanSamples/Hologram/iOS/Info.plist
@@ -16,10 +16,14 @@
$(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleInfoDictionaryVersion
6.0
+ CFBundleName
+ ${PRODUCT_NAME}
CFBundlePackageType
APPL
+ CFBundleShortVersionString
+ $(MARKETING_VERSION)
CFBundleVersion
- 1.0
+ $(CURRENT_PROJECT_VERSION)
LSApplicationCategoryType
UIMainStoryboardFile
diff --git a/ExternalDependencies.xcodeproj/project.pbxproj b/ExternalDependencies.xcodeproj/project.pbxproj
index 6e8b4a89..c0a0ea8f 100644
--- a/ExternalDependencies.xcodeproj/project.pbxproj
+++ b/ExternalDependencies.xcodeproj/project.pbxproj
@@ -1114,7 +1114,8 @@
A90FD89F21CC4EAB00B92BB2 /* libSPIRVCross.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSPIRVCross.a; sourceTree = BUILT_PRODUCTS_DIR; };
A90FD9E421CC4EB900B92BB2 /* libSPIRVCross.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSPIRVCross.a; sourceTree = BUILT_PRODUCTS_DIR; };
A91BF011235F9C510039B7DE /* gen_spirv_cross_rev_hdr.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = gen_spirv_cross_rev_hdr.sh; sourceTree = ""; };
- A932E9C5249A743B00D64150 /* create_fat_libs.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_fat_libs.sh; sourceTree = ""; };
+ A932E9C5249A743B00D64150 /* create_fat_lib_func.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_fat_lib_func.sh; sourceTree = ""; };
+ A932E9DF249BC44D00D64150 /* create_fat_ext_libs.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_fat_ext_libs.sh; sourceTree = ""; };
A9415EF624366B0E00566F16 /* packagePregenSpirvToolsHeaders */ = {isa = PBXFileReference; lastKnownFileType = text; path = packagePregenSpirvToolsHeaders; sourceTree = ""; };
A95D90A723A7F1E500CBCC60 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; };
A95D90AA23A7F1E500CBCC60 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = ""; };
@@ -1842,7 +1843,8 @@
A9679AAB21D2699800856BF7 /* Scripts */ = {
isa = PBXGroup;
children = (
- A932E9C5249A743B00D64150 /* create_fat_libs.sh */,
+ A932E9DF249BC44D00D64150 /* create_fat_ext_libs.sh */,
+ A932E9C5249A743B00D64150 /* create_fat_lib_func.sh */,
A91BF011235F9C510039B7DE /* gen_spirv_cross_rev_hdr.sh */,
A9679AAE21D269D900856BF7 /* package_ext_libs.sh */,
A9415EF624366B0E00566F16 /* packagePregenSpirvToolsHeaders */,
@@ -3103,7 +3105,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "export MVK_OS=\"iOS\"\nexport MVK_OS_PROD_EXTN=\"iphoneos\"\nexport MVK_SIM_PROD_EXTN=\"iphonesimulator\"\n\n\"${SRCROOT}/Scripts/create_fat_libs.sh\"\n";
+ shellScript = "export MVK_OS=\"iOS\"\nexport MVK_OS_PROD_EXTN=\"iphoneos\"\nexport MVK_SIM_PROD_EXTN=\"iphonesimulator\"\n\n. \"${SRCROOT}/Scripts/create_fat_ext_libs.sh\"\n";
};
A9679AAF21D26C1400856BF7 /* Package Libraries */ = {
isa = PBXShellScriptBuildPhase;
@@ -3121,7 +3123,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "export MVK_OS=\"iOS\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}-${MVK_OS}\"\n\n\"${SRCROOT}/Scripts/package_ext_libs.sh\"\n";
+ shellScript = "export MVK_OS=\"iOS\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}-${MVK_OS}\"\n\n. \"${SRCROOT}/Scripts/package_ext_libs.sh\"\n";
};
A9679AB021D26C7000856BF7 /* Package Libraries */ = {
isa = PBXShellScriptBuildPhase;
diff --git a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
index fb23b985..0e59c9d4 100644
--- a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
+++ b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
@@ -821,6 +821,7 @@
A9B8EE071A98D796009C5A02 /* Headers */,
A9B8EE051A98D796009C5A02 /* Sources */,
A9731FAD1EDDAE39006B7298 /* Create Dynamic Library */,
+ A9EE084F249BD4AE00E523A2 /* Create Fat Libraries */,
A92EF79721854B3300C8B91B /* Create Framework */,
);
buildRules = (
@@ -1000,6 +1001,24 @@
shellPath = /bin/sh;
shellScript = ". \"${SRCROOT}/../Scripts/create_dylib_ios.sh\"\n";
};
+ A9EE084F249BD4AE00E523A2 /* Create Fat Libraries */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Create Fat Libraries";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = ". \"${SRCROOT}/../Scripts/create_fat_libs_ios.sh\"\n";
+ };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
diff --git a/MoltenVKPackaging.xcodeproj/project.pbxproj b/MoltenVKPackaging.xcodeproj/project.pbxproj
index c9cf30d0..05dc6b56 100644
--- a/MoltenVKPackaging.xcodeproj/project.pbxproj
+++ b/MoltenVKPackaging.xcodeproj/project.pbxproj
@@ -184,6 +184,9 @@
A9C70F45221B04C800FBA31A /* create_dylib_ios.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_dylib_ios.sh; sourceTree = ""; };
A9DA8340218A198C002AA662 /* .travis.yml */ = {isa = PBXFileReference; lastKnownFileType = text; path = .travis.yml; sourceTree = ""; };
A9DA8341218A198C002AA662 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; };
+ A9EE084A249BD49200E523A2 /* create_fat_lib_func.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_fat_lib_func.sh; sourceTree = ""; };
+ A9EE084E249BD49200E523A2 /* create_fat_libs.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_fat_libs.sh; sourceTree = ""; };
+ A9EE0851249BD71C00E523A2 /* create_fat_libs_ios.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_fat_libs_ios.sh; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXGroup section */
@@ -224,6 +227,9 @@
A9C70F45221B04C800FBA31A /* create_dylib_ios.sh */,
A9C70F41221B04C800FBA31A /* create_dylib_macos.sh */,
A975D55C213F25D700D4834F /* create_dylib.sh */,
+ A9EE084A249BD49200E523A2 /* create_fat_lib_func.sh */,
+ A9EE0851249BD71C00E523A2 /* create_fat_libs_ios.sh */,
+ A9EE084E249BD49200E523A2 /* create_fat_libs.sh */,
A941E2B1221AEBD000890C56 /* create_framework_ios.sh */,
A941E2B2221AEBD000890C56 /* create_framework_macos.sh */,
A99A760321852584000A8E2A /* create_framework.sh */,
diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
index e0d366ab..bda99c35 100644
--- a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
+++ b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
@@ -337,6 +337,7 @@
A93747271A9A8B2900F29B34 /* Sources */,
A972AD2821CEE6310013AB25 /* Frameworks */,
A9C70F49221B075700FBA31A /* Create Dynamic Library */,
+ A9303625249BDF6B00DE139C /* Create Fat Libraries */,
A941E2A7221AC9C300890C56 /* Create Framework */,
);
buildRules = (
@@ -375,6 +376,7 @@
A93903BA1C57E9D700FE90DC /* Sources */,
A972AD2E21CEE6F50013AB25 /* Frameworks */,
A9C70F4B221B077C00FBA31A /* Create Dynamic Library */,
+ A9303626249BDFA000DE139C /* Create Fat Libraries */,
A941E2A8221AC9E800890C56 /* Create Framework */,
);
buildRules = (
@@ -457,6 +459,42 @@
/* End PBXProject section */
/* Begin PBXShellScriptBuildPhase section */
+ A9303625249BDF6B00DE139C /* Create Fat Libraries */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Create Fat Libraries";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = ". \"${SRCROOT}/../Scripts/create_fat_libs_ios.sh\"\n";
+ };
+ A9303626249BDFA000DE139C /* Create Fat Libraries */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Create Fat Libraries";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = ". \"${SRCROOT}/../Scripts/create_fat_libs_ios.sh\"\n";
+ };
A941E2A7221AC9C300890C56 /* Create Framework */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
diff --git a/Scripts/create_dylib.sh b/Scripts/create_dylib.sh
index 6fbc7b66..3838c4a9 100755
--- a/Scripts/create_dylib.sh
+++ b/Scripts/create_dylib.sh
@@ -2,11 +2,12 @@
set -e
+export MVK_BUILT_PROD_DIR="${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"
-mkdir -p "${BUILT_PRODUCTS_DIR}/dynamic"
+mkdir -p "${MVK_BUILT_PROD_DIR}/dynamic"
if test x"${ENABLE_BITCODE}" = xYES; then
MVK_EMBED_BITCODE="-fembed-bitcode"
@@ -26,7 +27,7 @@ clang++ \
-stdlib=${CLANG_CXX_LIBRARY} \
-dynamiclib \
$(printf -- "-arch %s " ${ARCHS}) \
--m${MVK_OS}-version-min=${MVK_MIN_OS_VERSION} \
+-m${MVK_OS_CLANG}-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 \
@@ -37,11 +38,11 @@ ${MVK_LINK_WARN} \
-iframework ${MVK_SYS_FWK_DIR} \
-framework Metal ${MVK_IOSURFACE_FWK} -framework ${MVK_UX_FWK} -framework QuartzCore -framework CoreGraphics -framework IOKit -framework Foundation \
--library-directory ${MVK_USR_LIB_DIR} \
--o "${BUILT_PRODUCTS_DIR}/dynamic/${MVK_DYLIB_NAME}" \
--force_load "${BUILT_PRODUCTS_DIR}/lib${PRODUCT_NAME}.a"
+-o "${MVK_BUILT_PROD_DIR}/dynamic/${MVK_DYLIB_NAME}" \
+-force_load "${MVK_BUILT_PROD_DIR}/lib${PRODUCT_NAME}.a"
if test "$CONFIGURATION" = Debug; then
- mkdir -p "${BUILT_PRODUCTS_DIR}/dynamic"
- dsymutil "${BUILT_PRODUCTS_DIR}/dynamic/${MVK_DYLIB_NAME}" \
- -o "${BUILT_PRODUCTS_DIR}/dynamic/${MVK_DYLIB_NAME}.dSYM"
+ mkdir -p "${MVK_BUILT_PROD_DIR}/dynamic"
+ dsymutil "${MVK_BUILT_PROD_DIR}/dynamic/${MVK_DYLIB_NAME}" \
+ -o "${MVK_BUILT_PROD_DIR}/dynamic/${MVK_DYLIB_NAME}.dSYM"
fi
diff --git a/Scripts/create_dylib_ios.sh b/Scripts/create_dylib_ios.sh
index 94f1a326..717ab60b 100755
--- a/Scripts/create_dylib_ios.sh
+++ b/Scripts/create_dylib_ios.sh
@@ -2,7 +2,7 @@
set -e
-export MVK_OS="ios"
+export MVK_OS_CLANG="ios"
export MVK_UX_FWK="UIKit"
export MVK_MIN_OS_VERSION=${IPHONEOS_DEPLOYMENT_TARGET}
export MVK_IOSURFACE_FWK="-framework IOSurface"
@@ -10,7 +10,7 @@ export MVK_IOSURFACE_FWK="-framework IOSurface"
# 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 "${MVK_MIN_OS_VERSION} < 11.0" | bc) -eq 1 ]; then
-MVK_IOSURFACE_FWK=""
+ MVK_IOSURFACE_FWK=""
fi
. "${SRCROOT}/../Scripts/create_dylib.sh"
diff --git a/Scripts/create_dylib_macos.sh b/Scripts/create_dylib_macos.sh
index 47f0fc0f..e7bbf2da 100755
--- a/Scripts/create_dylib_macos.sh
+++ b/Scripts/create_dylib_macos.sh
@@ -2,7 +2,7 @@
set -e
-export MVK_OS="macosx"
+export MVK_OS_CLANG="macosx"
export MVK_UX_FWK="AppKit"
export MVK_MIN_OS_VERSION=${MACOSX_DEPLOYMENT_TARGET}
export MVK_IOSURFACE_FWK="-framework IOSurface"
diff --git a/Scripts/create_fat_ext_libs.sh b/Scripts/create_fat_ext_libs.sh
new file mode 100755
index 00000000..fb0a3ac6
--- /dev/null
+++ b/Scripts/create_fat_ext_libs.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# Load functions
+. "${SRCROOT}/Scripts/create_fat_lib_func.sh"
+
+set -e
+
+export MVK_BUILT_OS_PROD_DIR="${BUILT_PRODUCTS_DIR}-${MVK_OS_PROD_EXTN}"
+export MVK_BUILT_SIM_PROD_DIR="${BUILT_PRODUCTS_DIR}-${MVK_SIM_PROD_EXTN}"
+export MVK_BUILT_FAT_PROD_DIR="${BUILT_PRODUCTS_DIR}-${MVK_OS}"
+
+create_fat_lib "libSPIRVCross.a"
+create_fat_lib "libSPIRVTools.a"
+create_fat_lib "libglslang.a"
+
diff --git a/Scripts/create_fat_lib_func.sh b/Scripts/create_fat_lib_func.sh
new file mode 100755
index 00000000..6d48b6f0
--- /dev/null
+++ b/Scripts/create_fat_lib_func.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+# If both platform and simulator lib files exist, create a fat file
+# from them both, otherwise if only one exists, copy it to the fat file.
+#
+# Takes one parameter:
+# 1 - filename
+#
+# Requires 3 build settings:
+# MVK_BUILT_OS_PROD_DIR - location to find OS input file
+# MVK_BUILT_SIM_PROD_DIR - location to find simulator input file
+# MVK_BUILT_FAT_PROD_DIR - location to put fat output file
+function create_fat_lib() {
+ FILE_NAME=${1}
+ BUILT_OS_PROD_FILE="${MVK_BUILT_OS_PROD_DIR}/${FILE_NAME}"
+ BUILT_SIM_PROD_FILE="${MVK_BUILT_SIM_PROD_DIR}/${FILE_NAME}"
+ BUILT_FAT_PROD_FILE="${MVK_BUILT_FAT_PROD_DIR}/${FILE_NAME}"
+
+ if [ ! -e "${MVK_BUILT_FAT_PROD_DIR}" ]; then
+ mkdir -p "${MVK_BUILT_FAT_PROD_DIR}"
+ fi
+ rm -rf "${BUILT_FAT_PROD_FILE}"
+
+ if test -e "${BUILT_OS_PROD_FILE}"; then
+ if test -e "${BUILT_SIM_PROD_FILE}"; then
+ lipo \
+ -create \
+ -output "${BUILT_FAT_PROD_FILE}" \
+ "${BUILT_OS_PROD_FILE}" \
+ "${BUILT_SIM_PROD_FILE}"
+ else
+ cp -a "${BUILT_OS_PROD_FILE}" "${BUILT_FAT_PROD_FILE}"
+ fi
+ elif test -e "${BUILT_SIM_PROD_FILE}"; then
+ cp -a "${BUILT_SIM_PROD_FILE}" "${BUILT_FAT_PROD_FILE}"
+ fi
+}
diff --git a/Scripts/create_fat_libs.sh b/Scripts/create_fat_libs.sh
index 9b05c4a4..6b030f17 100755
--- a/Scripts/create_fat_libs.sh
+++ b/Scripts/create_fat_libs.sh
@@ -1,42 +1,22 @@
#!/bin/bash
+# Load functions
+. "${SRCROOT}/../Scripts/create_fat_lib_func.sh"
+
set -e
-# If both platform and simulator lib files exist, create a fat file
-# from them both, otherwise if only one exists, copy it to the fat file.
-function create_fat_lib() {
- export MVK_BUILT_OS_PROD_FILE="${MVK_BUILT_OS_PROD_DIR}/lib${MVK_PROD_NAME}.a"
- export MVK_BUILT_SIM_PROD_FILE="${MVK_BUILT_SIM_PROD_DIR}/lib${MVK_PROD_NAME}.a"
- export MVK_BUILT_FAT_PROD_FILE="${MVK_BUILT_FAT_PROD_DIR}/lib${MVK_PROD_NAME}.a"
+#Static library
+export MVK_BUILT_OS_PROD_DIR="${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}-${MVK_OS_PROD_EXTN}"
+export MVK_BUILT_SIM_PROD_DIR="${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}-${MVK_SIM_PROD_EXTN}"
+export MVK_BUILT_FAT_PROD_DIR="${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}-${MVK_OS}"
- if test -f "${MVK_BUILT_OS_PROD_FILE}"; then
- if test -f "${MVK_BUILT_SIM_PROD_FILE}"; then
- lipo \
- -create \
- -output "${MVK_BUILT_FAT_PROD_FILE}" \
- "${MVK_BUILT_OS_PROD_FILE}" \
- "${MVK_BUILT_SIM_PROD_FILE}"
- else
- cp -a "${MVK_BUILT_OS_PROD_FILE}" "${MVK_BUILT_FAT_PROD_FILE}"
- fi
- elif test -f "${MVK_BUILT_SIM_PROD_FILE}"; then
- cp -a "${MVK_BUILT_SIM_PROD_FILE}" "${MVK_BUILT_FAT_PROD_FILE}"
- fi
-}
+create_fat_lib "lib${PRODUCT_NAME}.a"
-export MVK_BUILT_OS_PROD_DIR="${BUILT_PRODUCTS_DIR}-${MVK_OS_PROD_EXTN}"
-export MVK_BUILT_SIM_PROD_DIR="${BUILT_PRODUCTS_DIR}-${MVK_SIM_PROD_EXTN}"
-export MVK_BUILT_FAT_PROD_DIR="${BUILT_PRODUCTS_DIR}-${MVK_OS}"
+# Dynamic library and associated dSYM
+export MVK_BUILT_OS_PROD_DIR="${MVK_BUILT_OS_PROD_DIR}/dynamic"
+export MVK_BUILT_SIM_PROD_DIR="${MVK_BUILT_SIM_PROD_DIR}/dynamic"
+export MVK_BUILT_FAT_PROD_DIR="${MVK_BUILT_FAT_PROD_DIR}/dynamic"
-rm -rf "${MVK_BUILT_FAT_PROD_DIR}"
-mkdir -p "${MVK_BUILT_FAT_PROD_DIR}"
-
-export MVK_PROD_NAME="SPIRVCross"
-create_fat_lib
-
-export MVK_PROD_NAME="SPIRVTools"
-create_fat_lib
-
-export MVK_PROD_NAME="glslang"
-create_fat_lib
+create_fat_lib "lib${PRODUCT_NAME}.dylib"
+create_fat_lib "lib${PRODUCT_NAME}.dylib.dSYM"
diff --git a/Scripts/create_fat_libs_ios.sh b/Scripts/create_fat_libs_ios.sh
new file mode 100755
index 00000000..b5d37976
--- /dev/null
+++ b/Scripts/create_fat_libs_ios.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+set -e
+
+export MVK_OS="iOS"
+export MVK_OS_PROD_EXTN="iphoneos"
+export MVK_SIM_PROD_EXTN="iphonesimulator"
+
+. "${SRCROOT}/../Scripts/create_fat_libs.sh"
+
diff --git a/Scripts/create_framework.sh b/Scripts/create_framework.sh
index c4f1d3fe..37aaca4c 100755
--- a/Scripts/create_framework.sh
+++ b/Scripts/create_framework.sh
@@ -3,13 +3,13 @@
set -e
export MVK_TMPLT_PATH="${PROJECT_DIR}/../Templates/framework/${MVK_OS}"
-export MVK_BUILT_FRWK_PATH="${BUILT_PRODUCTS_DIR}/framework/${PRODUCT_NAME}.framework"
+export MVK_BUILT_FRWK_PATH="${MVK_BUILT_PROD_DIR}/framework/${PRODUCT_NAME}.framework"
export MVK_BUILT_FRWK_CONTENT_PATH="${MVK_BUILT_FRWK_PATH}/${MVK_FRWK_SUBPATH}"
-mkdir -p "${BUILT_PRODUCTS_DIR}/framework"
+mkdir -p "${MVK_BUILT_PROD_DIR}/framework"
rm -rf "${MVK_BUILT_FRWK_PATH}"
cp -a "${MVK_TMPLT_PATH}/Template.framework" "${MVK_BUILT_FRWK_PATH}"
-cp -a "${BUILT_PRODUCTS_DIR}/lib${PRODUCT_NAME}.a" "${MVK_BUILT_FRWK_CONTENT_PATH}${PRODUCT_NAME}"
+cp -a "${MVK_BUILT_PROD_DIR}/lib${PRODUCT_NAME}.a" "${MVK_BUILT_FRWK_CONTENT_PATH}${PRODUCT_NAME}"
cp -pRL "${PROJECT_DIR}/include/${PRODUCT_NAME}/" "${MVK_BUILT_FRWK_CONTENT_PATH}Headers"
rm -f "${MVK_BUILT_FRWK_CONTENT_PATH}Headers/README" #Remove git empty directory placeholder file
diff --git a/Scripts/create_framework_ios.sh b/Scripts/create_framework_ios.sh
index 0d402003..c822a599 100755
--- a/Scripts/create_framework_ios.sh
+++ b/Scripts/create_framework_ios.sh
@@ -3,6 +3,7 @@
set -e
export MVK_OS="iOS"
+export MVK_BUILT_PROD_DIR="${BUILT_PRODUCTS_DIR}/../${CONFIGURATION}-iOS"
export MVK_FRWK_SUBPATH=""
. "${SRCROOT}/../Scripts/create_framework.sh"
diff --git a/Scripts/create_framework_macos.sh b/Scripts/create_framework_macos.sh
index fa493e46..d7760440 100755
--- a/Scripts/create_framework_macos.sh
+++ b/Scripts/create_framework_macos.sh
@@ -3,6 +3,7 @@
set -e
export MVK_OS="macOS"
+export MVK_BUILT_PROD_DIR="${BUILT_PRODUCTS_DIR}"
export MVK_FRWK_SUBPATH="Versions/Current/"
. "${SRCROOT}/../Scripts/create_framework.sh"
diff --git a/Scripts/package_ios.sh b/Scripts/package_ios.sh
index 62166653..99eeb9fc 100755
--- a/Scripts/package_ios.sh
+++ b/Scripts/package_ios.sh
@@ -1,7 +1,7 @@
#!/bin/bash
export MVK_OS="iOS"
-export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}-iphoneos"
+export MVK_BUILT_PROD_DIR="${BUILT_PRODUCTS_DIR}-iOS"
. "${SRCROOT}/Scripts/package_moltenvk.sh"
. "${SRCROOT}/Scripts/package_shader_converter.sh"
diff --git a/Scripts/package_macos.sh b/Scripts/package_macos.sh
index 9f3038e0..0101fe0f 100755
--- a/Scripts/package_macos.sh
+++ b/Scripts/package_macos.sh
@@ -1,7 +1,7 @@
#!/bin/bash
export MVK_OS="macOS"
-export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}"
+export MVK_BUILT_PROD_DIR="${BUILT_PRODUCTS_DIR}"
. "${SRCROOT}/Scripts/package_moltenvk.sh"
. "${SRCROOT}/Scripts/package_shader_converter.sh"
diff --git a/Scripts/package_moltenvk.sh b/Scripts/package_moltenvk.sh
index d5f8dba8..766865b4 100755
--- a/Scripts/package_moltenvk.sh
+++ b/Scripts/package_moltenvk.sh
@@ -10,17 +10,17 @@ export MVK_PKG_PROD_PATH_OS="${MVK_PKG_PROD_PATH}/${MVK_OS}"
rm -rf "${MVK_PKG_PROD_PATH_OS}"
mkdir -p "${MVK_PKG_PROD_PATH_OS}/static"
-cp -a "${MVK_BUILT_PROD_PATH}/lib${MVK_PROD_NAME}.a" "${MVK_PKG_PROD_PATH_OS}/static"
+cp -a "${MVK_BUILT_PROD_DIR}/lib${MVK_PROD_NAME}.a" "${MVK_PKG_PROD_PATH_OS}/static"
mkdir -p "${MVK_PKG_PROD_PATH_OS}/dynamic"
-cp -a "${MVK_BUILT_PROD_PATH}/dynamic/lib${MVK_PROD_NAME}.dylib" "${MVK_PKG_PROD_PATH_OS}/dynamic"
+cp -a "${MVK_BUILT_PROD_DIR}/dynamic/lib${MVK_PROD_NAME}.dylib" "${MVK_PKG_PROD_PATH_OS}/dynamic"
if test "$CONFIGURATION" = Debug; then
- cp -a "${MVK_BUILT_PROD_PATH}/dynamic/lib${MVK_PROD_NAME}.dylib.dSYM" "${MVK_PKG_PROD_PATH_OS}/dynamic"
+ cp -a "${MVK_BUILT_PROD_DIR}/dynamic/lib${MVK_PROD_NAME}.dylib.dSYM" "${MVK_PKG_PROD_PATH_OS}/dynamic"
fi
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}/framework/${MVK_PROD_NAME}.framework" "${MVK_PKG_PROD_PATH_OS}/framework"
+cp -a "${MVK_BUILT_PROD_DIR}/framework/${MVK_PROD_NAME}.framework" "${MVK_PKG_PROD_PATH_OS}/framework"
# Remove the code signature
rm -rf "${MVK_PKG_PROD_PATH_OS}/framework/${MVK_PROD_NAME}.framework/_CodeSignature"
diff --git a/Scripts/package_shader_converter_lib.sh b/Scripts/package_shader_converter_lib.sh
index 9859ae63..14cf732b 100755
--- a/Scripts/package_shader_converter_lib.sh
+++ b/Scripts/package_shader_converter_lib.sh
@@ -9,13 +9,13 @@ export MVK_PKG_PROD_PATH_OS="${MVK_PKG_PROD_PATH}/${MVK_OS}"
rm -rf "${MVK_PKG_PROD_PATH_OS}"
mkdir -p "${MVK_PKG_PROD_PATH_OS}/static"
-cp -a "${MVK_BUILT_PROD_PATH}/lib${MVK_PROD_NAME}.a" "${MVK_PKG_PROD_PATH_OS}/static"
+cp -a "${MVK_BUILT_PROD_DIR}/lib${MVK_PROD_NAME}.a" "${MVK_PKG_PROD_PATH_OS}/static"
mkdir -p "${MVK_PKG_PROD_PATH_OS}/dynamic"
-cp -a "${MVK_BUILT_PROD_PATH}/dynamic/lib${MVK_PROD_NAME}.dylib" "${MVK_PKG_PROD_PATH_OS}/dynamic"
+cp -a "${MVK_BUILT_PROD_DIR}/dynamic/lib${MVK_PROD_NAME}.dylib" "${MVK_PKG_PROD_PATH_OS}/dynamic"
if test "$CONFIGURATION" = Debug; then
- cp -a "${MVK_BUILT_PROD_PATH}/dynamic/lib${MVK_PROD_NAME}.dylib.dSYM" "${MVK_PKG_PROD_PATH_OS}/dynamic"
+ cp -a "${MVK_BUILT_PROD_DIR}/dynamic/lib${MVK_PROD_NAME}.dylib.dSYM" "${MVK_PKG_PROD_PATH_OS}/dynamic"
fi
mkdir -p "${MVK_PKG_PROD_PATH_OS}/framework"
-cp -a "${MVK_BUILT_PROD_PATH}/framework/${MVK_PROD_NAME}.framework" "${MVK_PKG_PROD_PATH_OS}/framework"
+cp -a "${MVK_BUILT_PROD_DIR}/framework/${MVK_PROD_NAME}.framework" "${MVK_PKG_PROD_PATH_OS}/framework"
diff --git a/Scripts/package_shader_converter_tool.sh b/Scripts/package_shader_converter_tool.sh
index e893ec60..43330d48 100755
--- a/Scripts/package_shader_converter_tool.sh
+++ b/Scripts/package_shader_converter_tool.sh
@@ -7,4 +7,4 @@ export MVK_PKG_PROD_PATH_OS="${PROJECT_DIR}/Package/${CONFIGURATION}/${MVK_PROD_
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}"
+cp -a "${MVK_BUILT_PROD_DIR}/${MVK_PROD_NAME}" "${MVK_PKG_PROD_PATH_OS}"