diff --git a/CMakeLists.txt b/CMakeLists.txt index 4490df21cb..293d696389 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -448,6 +448,11 @@ if (NOT YUZU_STATIC_ROOM) if (NOT TARGET Opus::opus) add_library(Opus::opus ALIAS opus) endif() + + if (APPLE) + # KosmicKrisp + AddJsonPackage(kosmickrisp) + endif() endif() if(NOT TARGET Boost::headers) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 7b4c481ba5..21f709060f 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -396,17 +396,3 @@ if (ANDROID) add_library(oboe::oboe ALIAS oboe) 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() diff --git a/externals/cpmfile.json b/externals/cpmfile.json index 9644647638..d4f8a01ab7 100644 --- a/externals/cpmfile.json +++ b/externals/cpmfile.json @@ -185,12 +185,14 @@ "bundled": true, "skip_updates": "true" }, - "moltenvk": { - "repo": "V380-Ori/Ryujinx.MoltenVK", - "tag": "v%VERSION%-ryujinx", - "git_version": "1.4.1", - "artifact": "MoltenVK-macOS.tar", - "hash": "5695b36ca5775819a71791557fcb40a4a5ee4495be6b8442e0b666d0c436bec02aae68cc6210183f7a5c986bdbec0e117aecfad5396e496e9c2fd5c89133a347", + + "kosmickrisp": { + "package": "KosmicKrisp", + "repo": "crueter-ci/KosmicKrisp", + "hash": "2df127265580aca955d1ac226e159819802f680d4cdd5508c42784c1e2296ef55322ddaec44b2b71e9528f56a3a2c6db28ae9d4a18cbe75a77411251a3e8b07e", + "git_version": "26.0.0", + "tag": "v%VERSION%", + "artifact": "KosmicKrisp-%VERSION%.tar.zst", "bundled": true }, "gamemode": { diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index 99fb2fec15..0889458215 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -375,14 +375,22 @@ if (APPLE) set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE TRUE) set_target_properties(yuzu PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist) - set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib") - find_library(MOLTENVK_LIBRARY MoltenVK REQUIRED) - message(STATUS "Using MoltenVK at ${MOLTENVK_LIBRARY}.") + set(KK_LIBS + "${KosmicKrisp_SOURCE_DIR}/lib/libMoltenVK.dylib" + "${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 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" + "$/../Resources/vulkan" + COMMENT "Copying Vulkan ICDs") elseif(WIN32) # compile as a win32 gui application instead of a console application target_link_libraries(yuzu PRIVATE Qt6::EntryPointPrivate)