[cmake] fix regressions intr. CPM and packaging (#201)

- don't install dynarmic, mcl, unordered_dense files
- fix bundled qt w/ quazip
- don't install libyuzu-room.a
- don't link to VUH

Signed-off-by: crueter <crueter@eden-emu.dev>

Reviewed-on: eden-emu/eden#201
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
This commit is contained in:
crueter 2025-08-04 21:57:01 +02:00
parent 41f0fa97ca
commit 9634342100
Signed by untrusted user: crueter
GPG key ID: 425ACD2D4830EBC6
9 changed files with 61 additions and 42 deletions

View file

@ -423,9 +423,9 @@ endif()
if (ENABLE_LIBUSB) if (ENABLE_LIBUSB)
if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
find_package(libusb MODULE) find_package(libusb MODULE)
else() else()
find_package(libusb 1.0.24 MODULE) find_package(libusb 1.0.24 MODULE)
endif() endif()
endif() endif()

View file

@ -7,7 +7,7 @@
[Desktop Entry] [Desktop Entry]
Version=1.0 Version=1.0
Type=Application Type=Application
Name=eden Name=Eden
GenericName=Switch Emulator GenericName=Switch Emulator
Comment=Nintendo Switch video game console emulator Comment=Nintendo Switch video game console emulator
Icon=org.eden_emu.eden Icon=org.eden_emu.eden

View file

@ -330,6 +330,9 @@ CPMAddPackage(
CUSTOM_CACHE_KEY "df2e" CUSTOM_CACHE_KEY "df2e"
) )
set(VulkanUtilityLibraries_SOURCE_DIR "${VulkanUtilityLibraries_SOURCE_DIR}" PARENT_SCOPE)
set(VulkanUtilityLibraries_ADDED "${VulkanUtilityLibraries_ADDED}" PARENT_SCOPE)
# SPIRV-Tools # SPIRV-Tools
if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS)
CPMAddPackage( CPMAddPackage(
@ -556,15 +559,3 @@ if (ARCHITECTURE_arm64 AND NOT TARGET sse2neon)
add_library(sse2neon INTERFACE) add_library(sse2neon INTERFACE)
target_include_directories(sse2neon INTERFACE sse2neon) target_include_directories(sse2neon INTERFACE sse2neon)
endif() endif()
# QuaZip
if (ENABLE_QT)
set(CPM_USE_LOCAL_PACKAGES ON)
CPMAddPackage(
NAME QuaZip-Qt6
VERSION 1.3
URL "https://github.com/crueter/quazip-qt6/archive/f838774d63.zip"
CUSTOM_CACHE_KEY "f838"
)
endif()

View file

@ -23,10 +23,6 @@ if (MSVC)
endif() endif()
target_link_libraries(yuzu-room PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads) target_link_libraries(yuzu-room PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)
if(UNIX AND NOT APPLE)
install(TARGETS yuzu-room)
endif()
if (YUZU_USE_PRECOMPILED_HEADERS) if (YUZU_USE_PRECOMPILED_HEADERS)
target_precompile_headers(yuzu-room PRIVATE precompiled_headers.h) target_precompile_headers(yuzu-room PRIVATE precompiled_headers.h)
endif() endif()

View file

@ -20,6 +20,7 @@ option(DYNARMIC_IGNORE_ASSERTS "Ignore asserts" OFF)
option(DYNARMIC_TESTS_USE_UNICORN "Enable fuzzing tests against unicorn" OFF) option(DYNARMIC_TESTS_USE_UNICORN "Enable fuzzing tests against unicorn" OFF)
option(DYNARMIC_USE_LLVM "Support disassembly of jitted x86_64 code using LLVM" OFF) option(DYNARMIC_USE_LLVM "Support disassembly of jitted x86_64 code using LLVM" OFF)
option(DYNARMIC_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON) option(DYNARMIC_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
option(DYNARMIC_INSTALL "Install dynarmic headers and CMake files" OFF)
option(DYNARMIC_USE_BUNDLED_EXTERNALS "Use all bundled externals (useful when e.g. cross-compiling)" OFF) option(DYNARMIC_USE_BUNDLED_EXTERNALS "Use all bundled externals (useful when e.g. cross-compiling)" OFF)
option(DYNARMIC_WARNINGS_AS_ERRORS "Warnings as errors" ${MASTER_PROJECT}) option(DYNARMIC_WARNINGS_AS_ERRORS "Warnings as errors" ${MASTER_PROJECT})
if (NOT DEFINED DYNARMIC_FRONTENDS) if (NOT DEFINED DYNARMIC_FRONTENDS)
@ -184,26 +185,28 @@ endif()
# #
# Install # Install
# #
include(GNUInstallDirs) if (DYNARMIC_INSTALL)
include(CMakePackageConfigHelpers) include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
install(TARGETS dynarmic EXPORT dynarmicTargets) install(TARGETS dynarmic EXPORT dynarmicTargets)
install(EXPORT dynarmicTargets install(EXPORT dynarmicTargets
NAMESPACE dynarmic:: NAMESPACE dynarmic::
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic"
) )
configure_package_config_file(CMakeModules/dynarmicConfig.cmake.in configure_package_config_file(CMakeModules/dynarmicConfig.cmake.in
dynarmicConfig.cmake dynarmicConfig.cmake
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic" INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic"
) )
write_basic_package_version_file(dynarmicConfigVersion.cmake write_basic_package_version_file(dynarmicConfigVersion.cmake
COMPATIBILITY SameMajorVersion COMPATIBILITY SameMajorVersion
) )
install(FILES install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfigVersion.cmake" "${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfigVersion.cmake"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic"
) )
install(DIRECTORY src/dynarmic TYPE INCLUDE FILES_MATCHING PATTERN "*.h") install(DIRECTORY src/dynarmic TYPE INCLUDE FILES_MATCHING PATTERN "*.h")
endif()

View file

@ -55,7 +55,7 @@ CPMAddPackage(
URL "https://github.com/azahar-emu/mcl/archive/7b08d83418.zip" URL "https://github.com/azahar-emu/mcl/archive/7b08d83418.zip"
URL_HASH SHA512=f943bac39c1879986decad7a442ff4288eaeca4a2907684c7914e115a55ecc43c2782ded85c0835763fe04e40d5c82220ce864423e489e648e408a84f54dc4f3 URL_HASH SHA512=f943bac39c1879986decad7a442ff4288eaeca4a2907684c7914e115a55ecc43c2782ded85c0835763fe04e40d5c82220ce864423e489e648e408a84f54dc4f3
OPTIONS OPTIONS
"MCL_INSTALL ON" "MCL_INSTALL OFF"
CUSTOM_CACHE_KEY "7b08" CUSTOM_CACHE_KEY "7b08"
) )
@ -77,7 +77,7 @@ CPMAddPackage(
URL_HASH SHA512=71eff7bd9ba4b9226967bacd56a8ff000946f8813167cb5664bb01e96fb79e4e220684d824fe9c59c4d1cc98c606f13aff05b7940a1ed8ab3c95d6974ee34fa0 URL_HASH SHA512=71eff7bd9ba4b9226967bacd56a8ff000946f8813167cb5664bb01e96fb79e4e220684d824fe9c59c4d1cc98c606f13aff05b7940a1ed8ab3c95d6974ee34fa0
FIND_PACKAGE_ARGUMENTS "CONFIG" FIND_PACKAGE_ARGUMENTS "CONFIG"
OPTIONS OPTIONS
"UNORDERED_DENSE_INSTALL ON" "UNORDERED_DENSE_INSTALL OFF"
CUSTOM_CACHE_KEY "e59d" CUSTOM_CACHE_KEY "e59d"
) )

View file

@ -333,7 +333,11 @@ if (VulkanMemoryAllocator_ADDED)
target_include_directories(video_core PUBLIC ${VulkanMemoryAllocator_SOURCE_DIR}/include) target_include_directories(video_core PUBLIC ${VulkanMemoryAllocator_SOURCE_DIR}/include)
endif() endif()
target_link_libraries(video_core PRIVATE sirit Vulkan::Headers VulkanUtilityHeaders) if (VulkanUtilityLibraries_ADDED)
target_include_directories(video_core PUBLIC ${VulkanUtilityLibraries_SOURCE_DIR}/include)
endif()
target_link_libraries(video_core PRIVATE sirit Vulkan::Headers)
if (ENABLE_NSIGHT_AFTERMATH) if (ENABLE_NSIGHT_AFTERMATH)
if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK}) if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK})

View file

@ -495,6 +495,7 @@ if (YUZU_ROOM)
endif() endif()
# Extra deps # Extra deps
add_subdirectory(externals)
target_link_libraries(yuzu PRIVATE QuaZip::QuaZip) target_link_libraries(yuzu PRIVATE QuaZip::QuaZip)
create_target_directory_groups(yuzu) create_target_directory_groups(yuzu)

24
src/yuzu/externals/CMakeLists.txt vendored Normal file
View file

@ -0,0 +1,24 @@
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
# cpm
include(CPM)
# Disable tests/tools in all externals supporting the standard option name
set(BUILD_TESTING OFF)
# Build only static externals
set(BUILD_SHARED_LIBS OFF)
# Skip install rules for all externals
set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL ON)
# QuaZip
set(CPM_USE_LOCAL_PACKAGES ON)
CPMAddPackage(
NAME QuaZip-Qt6
VERSION 1.3
URL "https://github.com/crueter/quazip-qt6/archive/f838774d63.zip"
CUSTOM_CACHE_KEY "f838"
)