Browse Source

[cmake] Bundle KosmicKrisp, MoltenVK, and Vulkan Loader

For future testing.

Signed-off-by: crueter <crueter@eden-emu.dev>
kosmickrisp
crueter 7 days ago
parent
commit
55a154599b
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 5
      CMakeLists.txt
  2. 14
      externals/CMakeLists.txt
  3. 14
      externals/cpmfile.json
  4. 18
      src/yuzu/CMakeLists.txt

5
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)

14
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()

14
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": {

18
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"
"$<TARGET_FILE_DIR:yuzu>/../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)

Loading…
Cancel
Save