From 706ae185887bac4d4039efbb6ba8171e88af0507 Mon Sep 17 00:00:00 2001 From: crueter Date: Mon, 14 Jul 2025 16:34:44 -0400 Subject: [PATCH] [desktop] fix qt externals Signed-off-by: crueter --- CMakeLists.txt | 7 +++---- externals/CMakeLists.txt | 28 ---------------------------- src/yuzu/CMakeLists.txt | 1 + src/yuzu/externals/CMakeLists.txt | 31 +++++++++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 32 deletions(-) create mode 100644 src/yuzu/externals/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 06e3ea35e6..f8e8516dbc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,7 @@ endif() if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" OFF) else() - option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" ON) + option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" ON) endif() if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") @@ -452,6 +452,8 @@ set(FFmpeg_COMPONENTS avutil swscale) +add_subdirectory(externals) + if (ENABLE_QT) if (YUZU_USE_BUNDLED_QT) download_qt(6.8.3) @@ -498,9 +500,6 @@ if (ENABLE_QT) message(STATUS "Using host Qt at ${QT_HOST_PATH}") endif() -# Qt has to download first for QuaZip -add_subdirectory(externals) - function(set_yuzu_qt_components) # Best practice is to ask for all components at once, so they are from the same version set(YUZU_QT_COMPONENTS2 Core Widgets Concurrent) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 368273c83b..7dacba23b6 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -335,31 +335,3 @@ if (ARCHITECTURE_arm64 AND NOT TARGET sse2neon) add_library(sse2neon INTERFACE) target_include_directories(sse2neon INTERFACE sse2neon) endif() - -# QuaZip -if (ENABLE_QT) - set(QUAZIP_QT_MAJOR_VERSION 6) - set(QUAZIP_BZIP2 OFF) - - include(CPM) - set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm) - set(CPM_USE_LOCAL_PACKAGES ON) - - CPMAddPackage( - NAME QuaZip-Qt6 - VERSION 1.3 - GIT_REPOSITORY "https://github.com/stachenov/quazip.git" - GIT_TAG v1.5 - PATCHES - ${CMAKE_SOURCE_DIR}/.ci/patch/0001-quazip-strict.patch - ${CMAKE_SOURCE_DIR}/.ci/patch/0002-quazip-fetchcontent.patch - ) - - if (NOT MSVC AND NOT "QuaZip-Qt6" IN_LIST CPM_PACKAGES) - message(STATUS "QUAZIP DIR: ${CPM_PACKAGES}") - target_compile_options(QuaZip PRIVATE - -Wno-error=shadow - -Wno-error=missing-declarations - ) - endif() -endif() diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt index 97161aa9be..bab6a6c4f5 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..ac17308e09 --- /dev/null +++ b/src/yuzu/externals/CMakeLists.txt @@ -0,0 +1,31 @@ +# Disable tests in all externals supporting the standard option name +set(BUILD_TESTING OFF) + +# Build only static externals +set(BUILD_SHARED_LIBS OFF) + +# QuaZip +set(QUAZIP_QT_MAJOR_VERSION 6) +set(QUAZIP_BZIP2 OFF) + +include(CPM) +set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm) +set(CPM_USE_LOCAL_PACKAGES ON) + +CPMAddPackage( + NAME QuaZip-Qt6 + VERSION 1.3 + GIT_REPOSITORY "https://github.com/stachenov/quazip.git" + GIT_TAG v1.5 + PATCHES + ${CMAKE_SOURCE_DIR}/.ci/patch/0001-quazip-strict.patch + ${CMAKE_SOURCE_DIR}/.ci/patch/0002-quazip-fetchcontent.patch +) + +if (NOT MSVC AND NOT "QuaZip-Qt6" IN_LIST CPM_PACKAGES) + message(STATUS "QUAZIP DIR: ${CPM_PACKAGES}") + target_compile_options(QuaZip PRIVATE + -Wno-error=shadow + -Wno-error=missing-declarations + ) +endif()