[cmake] Bundle KosmicKrisp, MoltenVK, and Vulkan Loader

For future testing.

Signed-off-by: crueter <crueter@eden-emu.dev>
This commit is contained in:
crueter 2026-02-26 12:10:08 -05:00
parent a55ffc9225
commit 073ecd36af
No known key found for this signature in database
GPG key ID: 425ACD2D4830EBC6
4 changed files with 26 additions and 25 deletions

View file

@ -444,6 +444,11 @@ if (NOT YUZU_STATIC_ROOM)
if (NOT TARGET Opus::opus) if (NOT TARGET Opus::opus)
add_library(Opus::opus ALIAS opus) add_library(Opus::opus ALIAS opus)
endif() endif()
if (APPLE)
# KosmicKrisp
AddJsonPackage(kosmickrisp)
endif()
endif() endif()
if(NOT TARGET Boost::headers) if(NOT TARGET Boost::headers)

View file

@ -389,17 +389,3 @@ if (ANDROID)
add_library(oboe::oboe ALIAS oboe) add_library(oboe::oboe ALIAS oboe)
endif() endif()
if (APPLE)
# moltenvk
if (NOT YUZU_USE_BUNDLED_MOLTENVK)
find_library(MOLTENVK_LIBRARY MoltenVK)
endif()
# TODO: kosmickrisp?
if (NOT MOLTENVK_LIBRARY OR YUZU_USE_BUNDLED_MOLTENVK)
AddJsonPackage(moltenvk)
set(MOLTENVK_LIBRARY "${moltenvk_SOURCE_DIR}/MoltenVK/dylib/macOS/libMoltenVK.dylib" CACHE STRING "" FORCE)
endif()
endif()

View file

@ -174,12 +174,14 @@
"bundled": true, "bundled": true,
"skip_updates": "true" "skip_updates": "true"
}, },
"moltenvk": {
"repo": "V380-Ori/Ryujinx.MoltenVK", "kosmickrisp": {
"tag": "v%VERSION%-ryujinx", "package": "KosmicKrisp",
"git_version": "1.4.1", "repo": "crueter-ci/KosmicKrisp",
"artifact": "MoltenVK-macOS.tar", "hash": "2df127265580aca955d1ac226e159819802f680d4cdd5508c42784c1e2296ef55322ddaec44b2b71e9528f56a3a2c6db28ae9d4a18cbe75a77411251a3e8b07e",
"hash": "5695b36ca5775819a71791557fcb40a4a5ee4495be6b8442e0b666d0c436bec02aae68cc6210183f7a5c986bdbec0e117aecfad5396e496e9c2fd5c89133a347", "git_version": "26.0.0",
"tag": "v%VERSION%",
"artifact": "KosmicKrisp-%VERSION%.tar.zst",
"bundled": true "bundled": true
}, },
"gamemode": { "gamemode": {

View file

@ -389,14 +389,22 @@ if (APPLE)
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE TRUE) set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE TRUE)
set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist) set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib") set(KK_LIBS
find_library(MOLTENVK_LIBRARY MoltenVK REQUIRED) "${KosmicKrisp_SOURCE_DIR}/lib/libMoltenVK.dylib"
message(STATUS "Using MoltenVK at ${MOLTENVK_LIBRARY}.") "${KosmicKrisp_SOURCE_DIR}/lib/libvulkan.1.dylib"
"${KosmicKrisp_SOURCE_DIR}/lib/libvulkan_kosmickrisp.dylib")
set_source_files_properties(${MOLTENVK_LIBRARY} PROPERTIES set_source_files_properties(${KK_LIBS} PROPERTIES
MACOSX_PACKAGE_LOCATION Frameworks MACOSX_PACKAGE_LOCATION Frameworks
XCODE_FILE_ATTRIBUTES "CodeSignOnCopy") XCODE_FILE_ATTRIBUTES "CodeSignOnCopy")
target_sources(yuzu PRIVATE ${MOLTENVK_LIBRARY})
target_sources(yuzu PRIVATE ${KK_LIBS})
add_custom_command(TARGET yuzu POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${KosmicKrisp_SOURCE_DIR}/vulkan"
"$<TARGET_FILE_DIR:yuzu>/../Resources/vulkan"
COMMENT "Copying Vulkan ICDs")
elseif(WIN32) elseif(WIN32)
# compile as a win32 gui application instead of a console application # compile as a win32 gui application instead of a console application
target_link_libraries(yuzu PRIVATE Qt6::EntryPointPrivate) target_link_libraries(yuzu PRIVATE Qt6::EntryPointPrivate)