diff --git a/CMakeLists.txt b/CMakeLists.txt index 029ead92d2..718ee29679 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -423,9 +423,9 @@ endif() if (ENABLE_LIBUSB) if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - find_package(libusb MODULE) + find_package(libusb MODULE) else() - find_package(libusb 1.0.24 MODULE) + find_package(libusb 1.0.24 MODULE) endif() endif() diff --git a/dist/org.eden_emu.eden.desktop b/dist/org.eden_emu.eden.desktop index e8db2a297e..d012ab6d07 100644 --- a/dist/org.eden_emu.eden.desktop +++ b/dist/org.eden_emu.eden.desktop @@ -7,7 +7,7 @@ [Desktop Entry] Version=1.0 Type=Application -Name=eden +Name=Eden GenericName=Switch Emulator Comment=Nintendo Switch video game console emulator Icon=org.eden_emu.eden diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index dc69f19acd..99fd28dd37 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -330,6 +330,9 @@ CPMAddPackage( CUSTOM_CACHE_KEY "df2e" ) +set(VulkanUtilityLibraries_SOURCE_DIR "${VulkanUtilityLibraries_SOURCE_DIR}" PARENT_SCOPE) +set(VulkanUtilityLibraries_ADDED "${VulkanUtilityLibraries_ADDED}" PARENT_SCOPE) + # SPIRV-Tools if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) CPMAddPackage( @@ -556,15 +559,3 @@ if (ARCHITECTURE_arm64 AND NOT TARGET sse2neon) add_library(sse2neon INTERFACE) target_include_directories(sse2neon INTERFACE sse2neon) 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() diff --git a/src/dedicated_room/CMakeLists.txt b/src/dedicated_room/CMakeLists.txt index e2922c4a19..9391a71b6c 100644 --- a/src/dedicated_room/CMakeLists.txt +++ b/src/dedicated_room/CMakeLists.txt @@ -23,10 +23,6 @@ if (MSVC) endif() 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) target_precompile_headers(yuzu-room PRIVATE precompiled_headers.h) endif() diff --git a/src/dynarmic/CMakeLists.txt b/src/dynarmic/CMakeLists.txt index a5d8628ae0..77ae7849f4 100644 --- a/src/dynarmic/CMakeLists.txt +++ b/src/dynarmic/CMakeLists.txt @@ -20,6 +20,7 @@ option(DYNARMIC_IGNORE_ASSERTS "Ignore asserts" 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_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_WARNINGS_AS_ERRORS "Warnings as errors" ${MASTER_PROJECT}) if (NOT DEFINED DYNARMIC_FRONTENDS) @@ -184,26 +185,28 @@ endif() # # Install # -include(GNUInstallDirs) -include(CMakePackageConfigHelpers) +if (DYNARMIC_INSTALL) + include(GNUInstallDirs) + include(CMakePackageConfigHelpers) -install(TARGETS dynarmic EXPORT dynarmicTargets) -install(EXPORT dynarmicTargets - NAMESPACE dynarmic:: - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic" -) + install(TARGETS dynarmic EXPORT dynarmicTargets) + install(EXPORT dynarmicTargets + NAMESPACE dynarmic:: + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic" + ) -configure_package_config_file(CMakeModules/dynarmicConfig.cmake.in - dynarmicConfig.cmake - INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic" -) -write_basic_package_version_file(dynarmicConfigVersion.cmake - COMPATIBILITY SameMajorVersion -) -install(FILES - "${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfig.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfigVersion.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic" -) + configure_package_config_file(CMakeModules/dynarmicConfig.cmake.in + dynarmicConfig.cmake + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dynarmic" + ) + write_basic_package_version_file(dynarmicConfigVersion.cmake + COMPATIBILITY SameMajorVersion + ) + install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/dynarmicConfigVersion.cmake" + 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() diff --git a/src/dynarmic/externals/CMakeLists.txt b/src/dynarmic/externals/CMakeLists.txt index e7dc7efc72..7925744153 100644 --- a/src/dynarmic/externals/CMakeLists.txt +++ b/src/dynarmic/externals/CMakeLists.txt @@ -55,7 +55,7 @@ CPMAddPackage( URL "https://github.com/azahar-emu/mcl/archive/7b08d83418.zip" URL_HASH SHA512=f943bac39c1879986decad7a442ff4288eaeca4a2907684c7914e115a55ecc43c2782ded85c0835763fe04e40d5c82220ce864423e489e648e408a84f54dc4f3 OPTIONS - "MCL_INSTALL ON" + "MCL_INSTALL OFF" CUSTOM_CACHE_KEY "7b08" ) @@ -77,7 +77,7 @@ CPMAddPackage( URL_HASH SHA512=71eff7bd9ba4b9226967bacd56a8ff000946f8813167cb5664bb01e96fb79e4e220684d824fe9c59c4d1cc98c606f13aff05b7940a1ed8ab3c95d6974ee34fa0 FIND_PACKAGE_ARGUMENTS "CONFIG" OPTIONS - "UNORDERED_DENSE_INSTALL ON" + "UNORDERED_DENSE_INSTALL OFF" CUSTOM_CACHE_KEY "e59d" ) diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt index 7e40e79d8e..211727be2e 100644 --- a/src/video_core/CMakeLists.txt +++ b/src/video_core/CMakeLists.txt @@ -333,7 +333,11 @@ if (VulkanMemoryAllocator_ADDED) target_include_directories(video_core PUBLIC ${VulkanMemoryAllocator_SOURCE_DIR}/include) 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 (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK}) diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index edf928eeb1..34f2ba455a 100644 --- a/src/yuzu/CMakeLists.txt +++ b/src/yuzu/CMakeLists.txt @@ -495,6 +495,7 @@ if (YUZU_ROOM) endif() # Extra deps +add_subdirectory(externals) target_link_libraries(yuzu PRIVATE QuaZip::QuaZip) create_target_directory_groups(yuzu) diff --git a/src/yuzu/externals/CMakeLists.txt b/src/yuzu/externals/CMakeLists.txt new file mode 100644 index 0000000000..d159fa9229 --- /dev/null +++ b/src/yuzu/externals/CMakeLists.txt @@ -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" +)