MoltenVK: Use an external project instead of a pre-compiled dylib

Also, update MoltenVK to match Vulkan SDK 1.2.189.
This commit is contained in:
OatmealDome
2021-07-31 19:14:22 -04:00
parent 3e84279919
commit 2209dc0355
6 changed files with 30 additions and 5 deletions

View File

@ -528,8 +528,12 @@ if(APPLE)
endforeach()
# Copy MoltenVK into the bundle
target_sources(dolphin-emu PRIVATE "${CMAKE_SOURCE_DIR}/Externals/MoltenVK/libvulkan.dylib")
set_source_files_properties("${CMAKE_SOURCE_DIR}/Externals/MoltenVK/libvulkan.dylib" PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks)
if(ENABLE_VULKAN)
add_dependencies(dolphin-emu MoltenVK)
ExternalProject_Get_Property(MoltenVK SOURCE_DIR)
target_sources(dolphin-emu PRIVATE "${SOURCE_DIR}/Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib")
set_source_files_properties("${SOURCE_DIR}/Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib" PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks GENERATED ON)
endif()
# Update library references to make the bundle portable
include(DolphinPostprocessBundle)

View File

@ -43,8 +43,8 @@ static bool OpenVulkanLibrary()
if (libvulkan_env && s_vulkan_module.Open(libvulkan_env))
return true;
// Use the libvulkan.dylib from the application bundle.
std::string filename = File::GetBundleDirectory() + "/Contents/Frameworks/libvulkan.dylib";
// Use the libMoltenVK.dylib from the application bundle.
std::string filename = File::GetBundleDirectory() + "/Contents/Frameworks/libMoltenVK.dylib";
return s_vulkan_module.Open(filename.c_str());
#else
std::string filename = Common::DynamicLibrary::GetVersionedFilename("vulkan", 1);