diff --git a/ExternalDependencies.xcodeproj/project.pbxproj b/ExternalDependencies.xcodeproj/project.pbxproj index 578b93f4..7ce5a91b 100644 --- a/ExternalDependencies.xcodeproj/project.pbxproj +++ b/ExternalDependencies.xcodeproj/project.pbxproj @@ -11,7 +11,7 @@ isa = PBXAggregateTarget; buildConfigurationList = A972A7E721CEC72F0013AB25 /* Build configuration list for PBXAggregateTarget "ExternalDependencies-macOS" */; buildPhases = ( - A9679AB021D26C7000856BF7 /* Package External Libraries */, + A9679AB021D26C7000856BF7 /* Package Libraries */, ); dependencies = ( A972A7E921CEC76A0013AB25 /* PBXTargetDependency */, @@ -25,7 +25,8 @@ isa = PBXAggregateTarget; buildConfigurationList = A972A7ED21CEC8030013AB25 /* Build configuration list for PBXAggregateTarget "ExternalDependencies-iOS" */; buildPhases = ( - A9679AAF21D26C1400856BF7 /* Package External Libraries */, + A932E9C6249A7B9B00D64150 /* Create Fat Libraries */, + A9679AAF21D26C1400856BF7 /* Package Libraries */, ); dependencies = ( A972A7F121CEC8140013AB25 /* PBXTargetDependency */, @@ -1113,6 +1114,7 @@ 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 = ""; }; 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 = ""; }; @@ -1216,8 +1218,6 @@ A95D911923A7F1E500CBCC60 /* Logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Logger.h; sourceTree = ""; }; A95D911A23A7F1E500CBCC60 /* doc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = doc.cpp; sourceTree = ""; }; A95D911B23A7F1E500CBCC60 /* disassemble.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = disassemble.cpp; sourceTree = ""; }; - A9679AAC21D269D900856BF7 /* package_ext_libs_macos.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_ext_libs_macos.sh; sourceTree = ""; }; - A9679AAD21D269D900856BF7 /* package_ext_libs_ios.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_ext_libs_ios.sh; sourceTree = ""; }; A9679AAE21D269D900856BF7 /* package_ext_libs.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_ext_libs.sh; sourceTree = ""; }; A972A80F21CECBBF0013AB25 /* libSPIRVTools.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSPIRVTools.a; sourceTree = BUILT_PRODUCTS_DIR; }; A972A82321CECBE90013AB25 /* libSPIRVTools.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSPIRVTools.a; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1842,9 +1842,8 @@ A9679AAB21D2699800856BF7 /* Scripts */ = { isa = PBXGroup; children = ( + A932E9C5249A743B00D64150 /* create_fat_libs.sh */, A91BF011235F9C510039B7DE /* gen_spirv_cross_rev_hdr.sh */, - A9679AAD21D269D900856BF7 /* package_ext_libs_ios.sh */, - A9679AAC21D269D900856BF7 /* package_ext_libs_macos.sh */, A9679AAE21D269D900856BF7 /* package_ext_libs.sh */, A9415EF624366B0E00566F16 /* packagePregenSpirvToolsHeaders */, ); @@ -3088,7 +3087,7 @@ shellPath = /bin/sh; shellScript = "\"${SRCROOT}/Scripts/gen_spirv_cross_rev_hdr.sh\"\n"; }; - A9679AAF21D26C1400856BF7 /* Package External Libraries */ = { + A932E9C6249A7B9B00D64150 /* Create Fat Libraries */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -3097,16 +3096,16 @@ ); inputPaths = ( ); - name = "Package External Libraries"; + name = "Create Fat Libraries"; outputFileListPaths = ( ); outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Scripts/package_ext_libs_ios.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_libs.sh\"\n"; }; - A9679AB021D26C7000856BF7 /* Package External Libraries */ = { + A9679AAF21D26C1400856BF7 /* Package Libraries */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -3115,14 +3114,32 @@ ); inputPaths = ( ); - name = "Package External Libraries"; + name = "Package Libraries"; outputFileListPaths = ( ); outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Scripts/package_ext_libs_macos.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; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Package Libraries"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "export MVK_OS=\"macOS\"\nexport MVK_BUILT_PROD_PATH=\"${BUILT_PRODUCTS_DIR}\"\n\n\"${SRCROOT}/Scripts/package_ext_libs.sh\"\n"; }; /* End PBXShellScriptBuildPhase section */ diff --git a/Scripts/create_fat_libs.sh b/Scripts/create_fat_libs.sh new file mode 100755 index 00000000..9b05c4a4 --- /dev/null +++ b/Scripts/create_fat_libs.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +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" + + 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 +} + +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}" + +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 + diff --git a/Scripts/package_ext_libs_ios.sh b/Scripts/package_ext_libs_ios.sh deleted file mode 100755 index 4aaced32..00000000 --- a/Scripts/package_ext_libs_ios.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -export MVK_OS="iOS" -export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}-iphoneos" - -"${SRCROOT}/Scripts/package_ext_libs.sh" - diff --git a/Scripts/package_ext_libs_macos.sh b/Scripts/package_ext_libs_macos.sh deleted file mode 100755 index fd44591e..00000000 --- a/Scripts/package_ext_libs_macos.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -export MVK_OS="macOS" -export MVK_BUILT_PROD_PATH="${BUILT_PRODUCTS_DIR}" - -"${SRCROOT}/Scripts/package_ext_libs.sh" -