Closed billhollings closed 4 months ago
@richard-lunarg
This PR replaces #2166. This PR builds dynamic frameworks directly from Xcode, rather than from a script. Doing so improves efficiencies and stability, and allows tvOS Simulator to be supported with a dynamic framework.
Apple's iOS App Store does not permit an app to link to naked
dylibs
. Instead, these must be placed in frameworks, which are embedded in a dynamic version ofMoltenVK.xcframework
.create_dylib*.sh
scripts.XCFramework
, containinglibMoltenVK.a
static libraries, toPackage/Latest/MoltenVK/static/MoltenVK.xcframework
.XCFramework
, containingMoltenVK.framework
dynamic libraries, inPackage/Latest/MoltenVK/dynamic/MoltenVK.xcframework
.MVK_VERSION_STRING
to create version string at compile time, use it to validate theCURRENT_PROJECT_VERSION
build setting at compile time, and use it at runtime instead ofmvkGetMoltenVKVersionString()
function.-w
toOTHER_LDFLAGS
to dynamic framework builds to suppress spurious linker warnings of the typeld: warning: no platform load command found in '...', assuming: iOS
issued from the new linker introduced in Xcode 15.MoltenVK-MacCat
Xcode target and MoltenVK Package (MacCat only) Xcode scheme to avoid building dynamicMoltenVK.framework
for the Mac Catalyst platform, because Xcode does not support doing so.XCFrameworks
, andMoltenVK/Package
is always refreshed, even if code compilation is not required.MoltenVK.framework
throughdynamic/MoltenVK.xcframework
, instead of to nakedlibMoltenVK.dylib
.README.md
andMoltenVK_Runtime_UserGuide.md
documents.MVK_PRIVATE_API_VERSION
to40
./usr/local/lib/libMoltenVK.dylib
on macOS (unrelated).MTLAttributeStrideStatic
declaration prior to Xcode 15 (unrelated).This PR replaces #2166.