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:
parent
3e84279919
commit
2209dc0355
|
@ -573,6 +573,10 @@ add_subdirectory(Externals/glslang)
|
||||||
|
|
||||||
if(ENABLE_VULKAN)
|
if(ENABLE_VULKAN)
|
||||||
add_definitions(-DHAS_VULKAN)
|
add_definitions(-DHAS_VULKAN)
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
add_subdirectory(Externals/MoltenVK)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT WIN32 OR (NOT (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")))
|
if(NOT WIN32 OR (NOT (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")))
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
include(ExternalProject)
|
||||||
|
|
||||||
|
ExternalProject_Add(MoltenVK
|
||||||
|
GIT_REPOSITORY https://github.com/KhronosGroup/MoltenVK.git
|
||||||
|
GIT_TAG v1.1.5
|
||||||
|
|
||||||
|
CONFIGURE_COMMAND <SOURCE_DIR>/fetchDependencies --macos
|
||||||
|
|
||||||
|
BUILD_COMMAND make -C <SOURCE_DIR> macos
|
||||||
|
BUILD_IN_SOURCE ON
|
||||||
|
BUILD_BYPRODUCTS <SOURCE_DIR>/Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib
|
||||||
|
|
||||||
|
INSTALL_COMMAND ""
|
||||||
|
|
||||||
|
LOG_CONFIGURE ON
|
||||||
|
LOG_BUILD ON
|
||||||
|
LOG_OUTPUT_ON_FAILURE ON
|
||||||
|
)
|
Binary file not shown.
|
@ -1 +0,0 @@
|
||||||
MoltenVK from https://vulkan.lunarg.com/sdk/home#mac, version 1.2.170.0
|
|
|
@ -528,8 +528,12 @@ if(APPLE)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Copy MoltenVK into the bundle
|
# Copy MoltenVK into the bundle
|
||||||
target_sources(dolphin-emu PRIVATE "${CMAKE_SOURCE_DIR}/Externals/MoltenVK/libvulkan.dylib")
|
if(ENABLE_VULKAN)
|
||||||
set_source_files_properties("${CMAKE_SOURCE_DIR}/Externals/MoltenVK/libvulkan.dylib" PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks)
|
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
|
# Update library references to make the bundle portable
|
||||||
include(DolphinPostprocessBundle)
|
include(DolphinPostprocessBundle)
|
||||||
|
|
|
@ -43,8 +43,8 @@ static bool OpenVulkanLibrary()
|
||||||
if (libvulkan_env && s_vulkan_module.Open(libvulkan_env))
|
if (libvulkan_env && s_vulkan_module.Open(libvulkan_env))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// Use the libvulkan.dylib from the application bundle.
|
// Use the libMoltenVK.dylib from the application bundle.
|
||||||
std::string filename = File::GetBundleDirectory() + "/Contents/Frameworks/libvulkan.dylib";
|
std::string filename = File::GetBundleDirectory() + "/Contents/Frameworks/libMoltenVK.dylib";
|
||||||
return s_vulkan_module.Open(filename.c_str());
|
return s_vulkan_module.Open(filename.c_str());
|
||||||
#else
|
#else
|
||||||
std::string filename = Common::DynamicLibrary::GetVersionedFilename("vulkan", 1);
|
std::string filename = Common::DynamicLibrary::GetVersionedFilename("vulkan", 1);
|
||||||
|
|
Loading…
Reference in New Issue