From fb6600327e13419af00103ec246f5e51b92d39e5 Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 17:28:30 -0400 Subject: [PATCH 01/11] [cmake] ffmpeg external -> CPM Signed-off-by: crueter --- .gitmodules | 3 --- CMakeLists.txt | 2 ++ CMakeModules/CPM.cmake | 3 +++ externals/CMakeLists.txt | 1 - externals/cpp-httplib | 2 +- externals/ffmpeg/CMakeLists.txt | 9 +++++++-- externals/ffmpeg/ffmpeg | 1 - src/yuzu/externals/CMakeLists.txt | 1 - 8 files changed, 13 insertions(+), 9 deletions(-) delete mode 160000 externals/ffmpeg/ffmpeg diff --git a/.gitmodules b/.gitmodules index c8fcad98ec..10f9f7de96 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,9 +19,6 @@ [submodule "cpp-httplib"] path = externals/cpp-httplib url = https://github.com/yhirose/cpp-httplib.git -[submodule "ffmpeg"] - path = externals/ffmpeg/ffmpeg - url = https://github.com/FFmpeg/FFmpeg.git [submodule "vcpkg"] path = externals/vcpkg url = https://github.com/microsoft/vcpkg.git diff --git a/CMakeLists.txt b/CMakeLists.txt index b9d19b3c1b..0c2a880ae0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -491,6 +491,8 @@ set(FFmpeg_COMPONENTS avutil swscale) +set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm) + add_subdirectory(externals) if (ENABLE_QT) diff --git a/CMakeModules/CPM.cmake b/CMakeModules/CPM.cmake index 84748734ce..4937f7457c 100644 --- a/CMakeModules/CPM.cmake +++ b/CMakeModules/CPM.cmake @@ -2,6 +2,7 @@ # # SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors +message(STATUS "CPM JSDFNDFJKNKSDJFNKDSNJKFNDJKNFDJKNKNDFKJN") set(CPM_DOWNLOAD_VERSION 0.42.0) set(CPM_HASH_SUM "2020b4fc42dba44817983e06342e682ecfc3d2f484a581f11cc5731fbe4dce8a") @@ -13,6 +14,8 @@ else() set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake") endif() +message(STATUS "CPM nsdfjknfjkndsfjknsdfjkndkfjnksdjn ${CPM_DOWNLOAD_LOCATION}") + # Expand relative path. This is important if the provided path contains a tilde (~) get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index cdb0c0bb5b..bfbe459e40 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -84,7 +84,6 @@ if (YUZU_USE_EXTERNAL_SDL2) endif() include(CPM) - set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm) set(CPM_USE_LOCAL_PACKAGES OFF) if ("${YUZU_SYSTEM_PROFILE}" STREQUAL "steamdeck") diff --git a/externals/cpp-httplib b/externals/cpp-httplib index ca5fe354fb..a609330e4c 160000 --- a/externals/cpp-httplib +++ b/externals/cpp-httplib @@ -1 +1 @@ -Subproject commit ca5fe354fb83194bc72a676c4cc4136fca5316d0 +Subproject commit a609330e4c6374f741d3b369269f7848255e1954 diff --git a/externals/ffmpeg/CMakeLists.txt b/externals/ffmpeg/CMakeLists.txt index 9eb71418a0..7cf654c041 100644 --- a/externals/ffmpeg/CMakeLists.txt +++ b/externals/ffmpeg/CMakeLists.txt @@ -19,8 +19,13 @@ if (NOT WIN32 AND NOT ANDROID) message(FATAL_ERROR "Required program `autoconf` not found.") endif() - set(FFmpeg_PREFIX ${PROJECT_SOURCE_DIR}/externals/ffmpeg/ffmpeg) - set(FFmpeg_BUILD_DIR ${PROJECT_BINARY_DIR}/externals/ffmpeg-build) + include(CPM) + set(CPM_USE_LOCAL_PACKAGES OFF) + + CPMAddPackage("gh:ffmpeg/ffmpeg#9c1294eadd") + + set(FFmpeg_PREFIX ${ffmpeg_SOURCE_DIR}) + set(FFmpeg_BUILD_DIR ${ffmpeg_BINARY_DIR}) set(FFmpeg_MAKEFILE ${FFmpeg_BUILD_DIR}/Makefile) make_directory(${FFmpeg_BUILD_DIR}) diff --git a/externals/ffmpeg/ffmpeg b/externals/ffmpeg/ffmpeg deleted file mode 160000 index 9c1294eadd..0000000000 --- a/externals/ffmpeg/ffmpeg +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9c1294eaddb88cb0e044c675ccae059a85fc9c6c diff --git a/src/yuzu/externals/CMakeLists.txt b/src/yuzu/externals/CMakeLists.txt index d606e27108..23ddbfa6be 100644 --- a/src/yuzu/externals/CMakeLists.txt +++ b/src/yuzu/externals/CMakeLists.txt @@ -6,7 +6,6 @@ set(BUILD_SHARED_LIBS OFF) # QuaZip include(CPM) -set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm) set(CPM_USE_LOCAL_PACKAGES ON) CPMAddPackage( From 55242ddffd32607dccf778e5f93aea784061e1a1 Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 17:58:23 -0400 Subject: [PATCH 02/11] [cmake] libusb -> CPM Signed-off-by: crueter --- .gitmodules | 3 - CMakeLists.txt | 8 --- externals/CMakeLists.txt | 5 -- externals/libusb/libusb | 1 - src/input_common/CMakeLists.txt | 4 +- .../externals}/libusb/CMakeLists.txt | 70 +++++++++++-------- .../externals}/libusb/config.h.in | 2 +- src/yuzu/externals/CMakeLists.txt | 3 +- 8 files changed, 47 insertions(+), 49 deletions(-) delete mode 160000 externals/libusb/libusb rename {externals => src/input_common/externals}/libusb/CMakeLists.txt (82%) rename {externals => src/input_common/externals}/libusb/config.h.in (99%) diff --git a/.gitmodules b/.gitmodules index 10f9f7de96..e5a31311f5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,9 +4,6 @@ [submodule "cubeb"] path = externals/cubeb url = https://github.com/mozilla/cubeb.git -[submodule "libusb"] - path = externals/libusb/libusb - url = https://github.com/libusb/libusb.git [submodule "Vulkan-Headers"] path = externals/Vulkan-Headers url = https://github.com/KhronosGroup/Vulkan-Headers.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 0c2a880ae0..9761bdc363 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -406,14 +406,6 @@ if (NOT YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) pkg_check_modules(SPIRV-Tools REQUIRED SPIRV-Tools) endif() -if (ENABLE_LIBUSB) - if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - find_package(libusb MODULE) - else() - find_package(libusb 1.0.24 MODULE) - endif() -endif() - if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64) find_package(xbyak 7 CONFIG) endif() diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index bfbe459e40..f11323f1d5 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -57,11 +57,6 @@ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12" AND CMAKE_CXX_COMPILER target_compile_options(microprofile INTERFACE "-Wno-array-bounds") endif() -# libusb -if (ENABLE_LIBUSB AND NOT TARGET libusb::usb) - add_subdirectory(libusb) -endif() - # SDL2 if (YUZU_USE_EXTERNAL_SDL2) if (NOT WIN32) diff --git a/externals/libusb/libusb b/externals/libusb/libusb deleted file mode 160000 index 3dbfa16f0c..0000000000 --- a/externals/libusb/libusb +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3dbfa16f0cd9e8ed4fec916c6c00f41c738cb8f4 diff --git a/src/input_common/CMakeLists.txt b/src/input_common/CMakeLists.txt index d455323e05..e6b01c257b 100644 --- a/src/input_common/CMakeLists.txt +++ b/src/input_common/CMakeLists.txt @@ -78,11 +78,13 @@ if (ENABLE_SDL2) endif() if (ENABLE_LIBUSB) + add_subdirectory(externals/libusb) + target_sources(input_common PRIVATE drivers/gc_adapter.cpp drivers/gc_adapter.h ) - target_link_libraries(input_common PRIVATE libusb::usb) + target_link_libraries(input_common PRIVATE libusb) target_compile_definitions(input_common PRIVATE HAVE_LIBUSB) endif() diff --git a/externals/libusb/CMakeLists.txt b/src/input_common/externals/libusb/CMakeLists.txt similarity index 82% rename from externals/libusb/CMakeLists.txt rename to src/input_common/externals/libusb/CMakeLists.txt index 1d50c9f8c8..687c35b3d2 100644 --- a/externals/libusb/CMakeLists.txt +++ b/src/input_common/externals/libusb/CMakeLists.txt @@ -1,6 +1,20 @@ # SPDX-FileCopyrightText: 2020 yuzu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later +include(CPM) +set(CPM_USE_LOCAL_PACKAGES ON) + +CPMAddPackage( + URI "gh:libusb/libusb#3dbfa16f0c" + DOWNLOAD_ONLY YES + VERSION 1.0.24 # freebsd?? + FIND_PACKAGE_ARGUMENTS "CONFIG" # not sure this works outside of gentoo +) + +if (NOT libusb_ADDED) + return() +endif() + if (MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") OR APPLE) set(LIBUSB_FOUND ON CACHE BOOL "libusb is present" FORCE) set(LIBUSB_VERSION "1.0.24" CACHE STRING "libusb version string" FORCE) @@ -19,8 +33,8 @@ if (MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") OR APPLE) message(FATAL_ERROR "Required program `libtoolize` not found.") endif() - set(LIBUSB_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/libusb") - set(LIBUSB_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libusb") + set(LIBUSB_PREFIX "${libusb_BINARY_DIR}") + set(LIBUSB_SRC_DIR "${libusb_SOURCE_DIR}") # Workarounds for MSYS/MinGW if (MSYS) @@ -118,20 +132,20 @@ else() # MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") endif() add_library(usb - libusb/libusb/core.c - libusb/libusb/core.c - libusb/libusb/descriptor.c - libusb/libusb/hotplug.c - libusb/libusb/io.c - libusb/libusb/strerror.c - libusb/libusb/sync.c + ${libusb_SOURCE_DIR}/libusb/core.c + ${libusb_SOURCE_DIR}/libusb/core.c + ${libusb_SOURCE_DIR}/libusb/descriptor.c + ${libusb_SOURCE_DIR}/libusb/hotplug.c + ${libusb_SOURCE_DIR}/libusb/io.c + ${libusb_SOURCE_DIR}/libusb/strerror.c + ${libusb_SOURCE_DIR}/libusb/sync.c ) set_target_properties(usb PROPERTIES VERSION 1.0.24) if(WIN32) target_include_directories(usb BEFORE PUBLIC - libusb/libusb + ${libusb_SOURCE_DIR}/libusb PRIVATE "${CMAKE_CURRENT_BINARY_DIR}" @@ -148,7 +162,7 @@ else() # MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") BEFORE PUBLIC - libusb/libusb + ${libusb_SOURCE_DIR}/libusb PRIVATE "${CMAKE_CURRENT_BINARY_DIR}" @@ -157,15 +171,15 @@ else() # MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") if(WIN32 OR CYGWIN) target_sources(usb PRIVATE - libusb/libusb/os/threads_windows.c - libusb/libusb/os/windows_winusb.c - libusb/libusb/os/windows_usbdk.c - libusb/libusb/os/windows_common.c + ${libusb_SOURCE_DIR}/libusb/os/threads_windows.c + ${libusb_SOURCE_DIR}/libusb/os/windows_winusb.c + ${libusb_SOURCE_DIR}/libusb/os/windows_usbdk.c + ${libusb_SOURCE_DIR}/libusb/os/windows_common.c ) set(OS_WINDOWS TRUE) elseif(APPLE) target_sources(usb PRIVATE - libusb/libusb/os/darwin_usb.c + ${libusb_SOURCE_DIR}/libusb/os/darwin_usb.c ) find_library(COREFOUNDATION_LIBRARY CoreFoundation) find_library(IOKIT_LIBRARY IOKit) @@ -178,20 +192,20 @@ else() # MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(OS_DARWIN TRUE) elseif(ANDROID) target_sources(usb PRIVATE - libusb/libusb/os/linux_usbfs.c - libusb/libusb/os/linux_netlink.c + ${libusb_SOURCE_DIR}/libusb/os/linux_usbfs.c + ${libusb_SOURCE_DIR}/libusb/os/linux_netlink.c ) find_library(LOG_LIBRARY log) target_link_libraries(usb PRIVATE ${LOG_LIBRARY}) set(OS_LINUX TRUE) elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") target_sources(usb PRIVATE - libusb/libusb/os/linux_usbfs.c + ${libusb_SOURCE_DIR}/libusb/os/linux_usbfs.c ) find_package(Libudev) if(LIBUDEV_FOUND) target_sources(usb PRIVATE - libusb/libusb/os/linux_udev.c + ${libusb_SOURCE_DIR}/libusb/os/linux_udev.c ) target_link_libraries(usb PRIVATE "${LIBUDEV_LIBRARIES}") target_include_directories(usb PRIVATE "${LIBUDEV_INCLUDE_DIR}") @@ -199,26 +213,26 @@ else() # MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(USE_UDEV TRUE) else() target_sources(usb PRIVATE - libusb/libusb/os/linux_netlink.c + ${libusb_SOURCE_DIR}/libusb/os/linux_netlink.c ) endif() set(OS_LINUX TRUE) elseif(${CMAKE_SYSTEM_NAME} MATCHES "NetBSD") target_sources(usb PRIVATE - libusb/libusb/os/netbsd_usb.c + ${libusb_SOURCE_DIR}/libusb/os/netbsd_usb.c ) set(OS_NETBSD TRUE) elseif(${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") target_sources(usb PRIVATE - libusb/libusb/os/openbsd_usb.c + ${libusb_SOURCE_DIR}/libusb/os/openbsd_usb.c ) set(OS_OPENBSD TRUE) endif() if(UNIX) target_sources(usb PRIVATE - libusb/libusb/os/events_posix.c - libusb/libusb/os/threads_posix.c + ${libusb_SOURCE_DIR}/libusb/os/events_posix.c + ${libusb_SOURCE_DIR}/libusb/os/threads_posix.c ) find_package(Threads REQUIRED) if(THREADS_HAVE_PTHREAD_ARG) @@ -230,8 +244,8 @@ else() # MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(THREADS_POSIX TRUE) elseif(WIN32) target_sources(usb PRIVATE - libusb/libusb/os/events_windows.c - libusb/libusb/os/threads_windows.c + ${libusb_SOURCE_DIR}/libusb/os/events_windows.c + ${libusb_SOURCE_DIR}/libusb/os/threads_windows.c ) endif() @@ -267,4 +281,4 @@ else() # MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") configure_file(config.h.in config.h) endif() # MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") -add_library(libusb::usb ALIAS usb) +add_library(libusb ALIAS usb) diff --git a/externals/libusb/config.h.in b/src/input_common/externals/libusb/config.h.in similarity index 99% rename from externals/libusb/config.h.in rename to src/input_common/externals/libusb/config.h.in index 42ae5a5e8a..dcad3365d7 100644 --- a/externals/libusb/config.h.in +++ b/src/input_common/externals/libusb/config.h.in @@ -1,4 +1,4 @@ -/* +/* * SPDX-FileCopyrightText: 2020 yuzu Emulator Project * SPDX-License-Identifier: GPL-2.0-or-later */ diff --git a/src/yuzu/externals/CMakeLists.txt b/src/yuzu/externals/CMakeLists.txt index 23ddbfa6be..e11c00679f 100644 --- a/src/yuzu/externals/CMakeLists.txt +++ b/src/yuzu/externals/CMakeLists.txt @@ -11,6 +11,5 @@ set(CPM_USE_LOCAL_PACKAGES ON) CPMAddPackage( NAME QuaZip-Qt6 VERSION 1.3 - GIT_REPOSITORY "https://github.com/crueter/quazip-qt6.git" - GIT_TAG v1.5-qt6 + URI "gh:crueter/quazip-qt6@1.5-qt6" ) From 8c6ab1fa5fe47ca98032b47d8adee9f732e87a71 Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 18:08:14 -0400 Subject: [PATCH 03/11] [cmake] cubeb -> CPM Signed-off-by: crueter --- .gitmodules | 3 --- CMakeLists.txt | 4 --- CMakeModules/CPM.cmake | 3 --- externals/CMakeLists.txt | 18 +++---------- externals/cubeb | 1 - src/audio_core/CMakeLists.txt | 4 ++- src/audio_core/externals/cubeb/CMakeLists.txt | 25 +++++++++++++++++++ 7 files changed, 31 insertions(+), 27 deletions(-) delete mode 160000 externals/cubeb create mode 100644 src/audio_core/externals/cubeb/CMakeLists.txt diff --git a/.gitmodules b/.gitmodules index e5a31311f5..4666da51cd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,6 @@ # SPDX-FileCopyrightText: 2014 Citra Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later -[submodule "cubeb"] - path = externals/cubeb - url = https://github.com/mozilla/cubeb.git [submodule "Vulkan-Headers"] path = externals/Vulkan-Headers url = https://github.com/KhronosGroup/Vulkan-Headers.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 9761bdc363..8551911f78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -418,10 +418,6 @@ if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64) find_package(dynarmic 6.4.0 CONFIG) endif() -if (ENABLE_CUBEB) - find_package(cubeb CONFIG) -endif() - if (USE_DISCORD_PRESENCE) find_package(DiscordRPC MODULE) endif() diff --git a/CMakeModules/CPM.cmake b/CMakeModules/CPM.cmake index 4937f7457c..84748734ce 100644 --- a/CMakeModules/CPM.cmake +++ b/CMakeModules/CPM.cmake @@ -2,7 +2,6 @@ # # SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors -message(STATUS "CPM JSDFNDFJKNKSDJFNKDSNJKFNDJKNFDJKNKNDFKJN") set(CPM_DOWNLOAD_VERSION 0.42.0) set(CPM_HASH_SUM "2020b4fc42dba44817983e06342e682ecfc3d2f484a581f11cc5731fbe4dce8a") @@ -14,8 +13,6 @@ else() set(CPM_DOWNLOAD_LOCATION "${CMAKE_BINARY_DIR}/cmake/CPM_${CPM_DOWNLOAD_VERSION}.cmake") endif() -message(STATUS "CPM nsdfjknfjkndsfjknsdfjkndkfjnksdjn ${CPM_DOWNLOAD_LOCATION}") - # Expand relative path. This is important if the provided path contains a tilde (~) get_filename_component(CPM_DOWNLOAD_LOCATION ${CPM_DOWNLOAD_LOCATION} ABSOLUTE) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index f11323f1d5..ea598e3483 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -1,6 +1,9 @@ # SPDX-FileCopyrightText: 2016 Citra Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later +# cpm +include(CPM) + # Dynarmic has cmake_minimum_required(3.12) and we may want to override # some of its variables, which is only possible in 3.13+ set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) @@ -78,7 +81,6 @@ if (YUZU_USE_EXTERNAL_SDL2) set(SDL_FILE ON) endif() - include(CPM) set(CPM_USE_LOCAL_PACKAGES OFF) if ("${YUZU_SYSTEM_PROFILE}" STREQUAL "steamdeck") @@ -98,20 +100,6 @@ if (NOT TARGET enet::enet) add_library(enet::enet ALIAS enet) endif() -# Cubeb -if (ENABLE_CUBEB AND NOT TARGET cubeb::cubeb) - set(BUILD_TESTS OFF) - set(BUILD_TOOLS OFF) - add_subdirectory(cubeb) - add_library(cubeb::cubeb ALIAS cubeb) - if (NOT MSVC) - if (TARGET speex) - target_compile_options(speex PRIVATE -Wno-sign-compare) - endif() - target_compile_options(cubeb PRIVATE -Wno-implicit-const-int-float-conversion) - endif() -endif() - # DiscordRPC if (USE_DISCORD_PRESENCE AND NOT TARGET DiscordRPC::discord-rpc) set(BUILD_EXAMPLES OFF) diff --git a/externals/cubeb b/externals/cubeb deleted file mode 160000 index fa02160712..0000000000 --- a/externals/cubeb +++ /dev/null @@ -1 +0,0 @@ -Subproject commit fa021607121360af7c171d881dc5bc8af7bb56eb diff --git a/src/audio_core/CMakeLists.txt b/src/audio_core/CMakeLists.txt index 8c94109de0..a1e5bdbdcd 100644 --- a/src/audio_core/CMakeLists.txt +++ b/src/audio_core/CMakeLists.txt @@ -232,12 +232,14 @@ if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64) endif() if (ENABLE_CUBEB) + add_subdirectory(externals/cubeb) + target_sources(audio_core PRIVATE sink/cubeb_sink.cpp sink/cubeb_sink.h ) - target_link_libraries(audio_core PRIVATE cubeb::cubeb) + target_link_libraries(audio_core PRIVATE cubeb) target_compile_definitions(audio_core PRIVATE -DHAVE_CUBEB=1) endif() diff --git a/src/audio_core/externals/cubeb/CMakeLists.txt b/src/audio_core/externals/cubeb/CMakeLists.txt new file mode 100644 index 0000000000..a32bb5f9e3 --- /dev/null +++ b/src/audio_core/externals/cubeb/CMakeLists.txt @@ -0,0 +1,25 @@ +# SPDX-FileCopyrightText: 2025 Eden Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later + +include(CPM) +set(CPM_USE_LOCAL_PACKAGES ON) +CPMAddPackage( + URI "gh:mozilla/cubeb#fa02160712" + FIND_PACKAGE_ARGUMENTS "CONFIG" # not sure this works outside of gentoo +) + +if (cubeb_ADDED) + set(BUILD_TESTS OFF) + set(BUILD_TOOLS OFF) + + if (NOT MSVC) + if (TARGET speex) + target_compile_options(speex PRIVATE -Wno-sign-compare) + endif() + target_compile_options(cubeb PRIVATE + -Wno-implicit-const-int-float-conversion + -Wno-shadow + -Wno-missing-declarations -Wno-return-type + ) + endif() +endif() From d82707ecf477dd498a6c7305e2bdb3773fcefafe Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 18:27:01 -0400 Subject: [PATCH 04/11] [cmake] fix quazip Signed-off-by: crueter --- src/yuzu/externals/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/yuzu/externals/CMakeLists.txt b/src/yuzu/externals/CMakeLists.txt index e11c00679f..d606e27108 100644 --- a/src/yuzu/externals/CMakeLists.txt +++ b/src/yuzu/externals/CMakeLists.txt @@ -6,10 +6,12 @@ set(BUILD_SHARED_LIBS OFF) # QuaZip include(CPM) +set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm) set(CPM_USE_LOCAL_PACKAGES ON) CPMAddPackage( NAME QuaZip-Qt6 VERSION 1.3 - URI "gh:crueter/quazip-qt6@1.5-qt6" + GIT_REPOSITORY "https://github.com/crueter/quazip-qt6.git" + GIT_TAG v1.5-qt6 ) From a34dc021b804f7b97d55d9c95887fa9d8689d90b Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 18:30:05 -0400 Subject: [PATCH 05/11] [cmake] vulkan moment Signed-off-by: crueter --- externals/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index ea598e3483..f26500c2a5 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -143,6 +143,9 @@ if (YUZU_USE_BUNDLED_FFMPEG) set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE) endif() +# TODO(crueter): I tried messing with these and it gave me 16,323 compilation errors +# lol + # Vulkan-Headers if (YUZU_USE_EXTERNAL_VULKAN_HEADERS) add_subdirectory(Vulkan-Headers) From 5e868aab7735fbb3a640764cb5bf6ca7f0095f35 Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 19:19:25 -0400 Subject: [PATCH 06/11] [cmake] fix cubeb(?) Signed-off-by: crueter --- src/audio_core/externals/cubeb/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/audio_core/externals/cubeb/CMakeLists.txt b/src/audio_core/externals/cubeb/CMakeLists.txt index a32bb5f9e3..c626eba321 100644 --- a/src/audio_core/externals/cubeb/CMakeLists.txt +++ b/src/audio_core/externals/cubeb/CMakeLists.txt @@ -6,12 +6,14 @@ set(CPM_USE_LOCAL_PACKAGES ON) CPMAddPackage( URI "gh:mozilla/cubeb#fa02160712" FIND_PACKAGE_ARGUMENTS "CONFIG" # not sure this works outside of gentoo + DOWNLOAD_ONLY YES ) if (cubeb_ADDED) set(BUILD_TESTS OFF) set(BUILD_TOOLS OFF) + add_subdirectory(${cubeb_SOURCE_DIR} ${cubeb_BINARY_DIR}) if (NOT MSVC) if (TARGET speex) target_compile_options(speex PRIVATE -Wno-sign-compare) From 2930aba004176799b74233994682b300e897e4c4 Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 19:37:59 -0400 Subject: [PATCH 07/11] [cmake] VulkanHeaders -> CPM I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE I HATE CMAKE Signed-off-by: crueter --- CMakeLists.txt | 6 +++--- externals/CMakeLists.txt | 15 +++++++++++---- src/yuzu/externals/CMakeLists.txt | 1 - 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8551911f78..09d4f55e77 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -393,9 +393,9 @@ find_package(VulkanMemoryAllocator CONFIG) find_package(ZLIB 1.2 REQUIRED) find_package(zstd 1.5 REQUIRED) -if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS) - find_package(VulkanHeaders 1.3.274 REQUIRED) -endif() +# if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS) +# find_package(VulkanHeaders 1.3.274 REQUIRED) +# endif() if (NOT YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) find_package(VulkanUtilityLibraries REQUIRED) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index f26500c2a5..0ae227d660 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -143,14 +143,21 @@ if (YUZU_USE_BUNDLED_FFMPEG) set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE) endif() -# TODO(crueter): I tried messing with these and it gave me 16,323 compilation errors -# lol - # Vulkan-Headers if (YUZU_USE_EXTERNAL_VULKAN_HEADERS) - add_subdirectory(Vulkan-Headers) + set(CPM_USE_LOCAL_PACKAGES OFF) +else() + set(CPM_USE_LOCAL_PACKAGES ON) endif() +CPMAddPackage( + NAME VulkanHeaders + VERSION 1.3.274 + GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Headers.git" + GIT_TAG 89268a6d17 + FIND_PACKAGE_ARGUMENTS "MODULE" +) + # Vulkan-Utility-Libraries if (YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) add_subdirectory(Vulkan-Utility-Libraries) diff --git a/src/yuzu/externals/CMakeLists.txt b/src/yuzu/externals/CMakeLists.txt index d606e27108..23ddbfa6be 100644 --- a/src/yuzu/externals/CMakeLists.txt +++ b/src/yuzu/externals/CMakeLists.txt @@ -6,7 +6,6 @@ set(BUILD_SHARED_LIBS OFF) # QuaZip include(CPM) -set(CPM_SOURCE_CACHE ${CMAKE_SOURCE_DIR}/.cache/cpm) set(CPM_USE_LOCAL_PACKAGES ON) CPMAddPackage( From c9a77350f916dfb8b615219221eafa0b7dc31633 Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 20:36:45 -0400 Subject: [PATCH 08/11] [cmake] fix windows cubeb and VUL -> CPM Signed-off-by: crueter --- CMakeLists.txt | 30 ++++++++----------- externals/CMakeLists.txt | 26 ++++++++-------- src/audio_core/externals/cubeb/CMakeLists.txt | 6 ++-- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 09d4f55e77..266f2bd922 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,22 +53,18 @@ option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON) option(ENABLE_WIFI_SCAN "Enable WiFi scanning" OFF) if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" OFF) + option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" OFF) else() - option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" ON) + option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" ON) endif() if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" OFF) + option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" OFF) else() - option(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" ON) + option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" ON) endif() -if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" OFF) -else() - option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan-Utility-Libraries from externals" ON) -endif() +CMAKE_DEPENDENT_OPTION(YUZU_USE_EXTERNAL_VULKAN_HEADERS "Use Vulkan-Headers from externals" ON "YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES" OFF) if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") option(YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS "Use SPIRV-Tools from externals" OFF) @@ -89,9 +85,9 @@ option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF) option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}") if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF) + option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF) else() - option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON) + option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON) endif() option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON) @@ -107,9 +103,9 @@ CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}") if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - option(YUZU_CHECK_SUBMODULES "Check if submodules are present" OFF) + option(YUZU_CHECK_SUBMODULES "Check if submodules are present" OFF) else() - option(YUZU_CHECK_SUBMODULES "Check if submodules are present" ON) + option(YUZU_CHECK_SUBMODULES "Check if submodules are present" ON) endif() option(YUZU_ENABLE_LTO "Enable link-time optimization" OFF) @@ -393,12 +389,12 @@ find_package(VulkanMemoryAllocator CONFIG) find_package(ZLIB 1.2 REQUIRED) find_package(zstd 1.5 REQUIRED) -# if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS) -# find_package(VulkanHeaders 1.3.274 REQUIRED) -# endif() +if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS) + find_package(VulkanHeaders 1.3.274) +endif() if (NOT YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) - find_package(VulkanUtilityLibraries REQUIRED) + find_package(VulkanUtilityLibraries) endif() if (NOT YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 0ae227d660..0f96064fa0 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -143,26 +143,28 @@ if (YUZU_USE_BUNDLED_FFMPEG) set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE) endif() +# TODO(crueter): System vk headers is broken (at least on gentoo lol) + # Vulkan-Headers if (YUZU_USE_EXTERNAL_VULKAN_HEADERS) - set(CPM_USE_LOCAL_PACKAGES OFF) -else() - set(CPM_USE_LOCAL_PACKAGES ON) + CPMAddPackage( + NAME VulkanHeaders + VERSION 1.3.274 + GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Headers.git" + GIT_TAG 89268a6d17 + ) endif() -CPMAddPackage( - NAME VulkanHeaders - VERSION 1.3.274 - GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Headers.git" - GIT_TAG 89268a6d17 - FIND_PACKAGE_ARGUMENTS "MODULE" -) - # Vulkan-Utility-Libraries if (YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) - add_subdirectory(Vulkan-Utility-Libraries) + CPMAddPackage( + NAME VulkanUtilityLibraries + GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git" + GIT_TAG df2e358152 + ) endif() + # SPIRV-Tools if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) set(SPIRV_SKIP_EXECUTABLES ON) diff --git a/src/audio_core/externals/cubeb/CMakeLists.txt b/src/audio_core/externals/cubeb/CMakeLists.txt index c626eba321..5211f15347 100644 --- a/src/audio_core/externals/cubeb/CMakeLists.txt +++ b/src/audio_core/externals/cubeb/CMakeLists.txt @@ -6,14 +6,12 @@ set(CPM_USE_LOCAL_PACKAGES ON) CPMAddPackage( URI "gh:mozilla/cubeb#fa02160712" FIND_PACKAGE_ARGUMENTS "CONFIG" # not sure this works outside of gentoo - DOWNLOAD_ONLY YES ) if (cubeb_ADDED) set(BUILD_TESTS OFF) set(BUILD_TOOLS OFF) - add_subdirectory(${cubeb_SOURCE_DIR} ${cubeb_BINARY_DIR}) if (NOT MSVC) if (TARGET speex) target_compile_options(speex PRIVATE -Wno-sign-compare) @@ -23,5 +21,9 @@ if (cubeb_ADDED) -Wno-shadow -Wno-missing-declarations -Wno-return-type ) + else() + target_compile_options(cubeb PRIVATE + /wd4456 + ) endif() endif() From 3bcbc1990f5c59dfed534d1a8d9c330543a73b40 Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 20:38:29 -0400 Subject: [PATCH 09/11] [externals] remove vulkan stuff Signed-off-by: crueter --- .gitmodules | 6 ------ externals/CMakeLists.txt | 1 - externals/Vulkan-Headers | 1 - externals/Vulkan-Utility-Libraries | 1 - 4 files changed, 9 deletions(-) delete mode 160000 externals/Vulkan-Headers delete mode 160000 externals/Vulkan-Utility-Libraries diff --git a/.gitmodules b/.gitmodules index 4666da51cd..39ca518e5b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,6 @@ # SPDX-FileCopyrightText: 2014 Citra Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later -[submodule "Vulkan-Headers"] - path = externals/Vulkan-Headers - url = https://github.com/KhronosGroup/Vulkan-Headers.git [submodule "xbyak"] path = externals/xbyak url = https://github.com/Lizzie841/xbyak.git @@ -22,9 +19,6 @@ [submodule "VulkanMemoryAllocator"] path = externals/VulkanMemoryAllocator url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git -[submodule "Vulkan-Utility-Libraries"] - path = externals/Vulkan-Utility-Libraries - url = https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git [submodule "externals/boost-headers"] path = externals/boost-headers url = https://github.com/boostorg/headers.git diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 0f96064fa0..cc29a468fc 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -164,7 +164,6 @@ if (YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) ) endif() - # SPIRV-Tools if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) set(SPIRV_SKIP_EXECUTABLES ON) diff --git a/externals/Vulkan-Headers b/externals/Vulkan-Headers deleted file mode 160000 index 89268a6d17..0000000000 --- a/externals/Vulkan-Headers +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 89268a6d17fc87003b209a1422c17ab288be99a0 diff --git a/externals/Vulkan-Utility-Libraries b/externals/Vulkan-Utility-Libraries deleted file mode 160000 index df2e358152..0000000000 --- a/externals/Vulkan-Utility-Libraries +++ /dev/null @@ -1 +0,0 @@ -Subproject commit df2e3581520f36776cd42b9fec3ec4a51ab878ef From d466c96def3b31ad56576aeaa6dbd7d5d9d2418e Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 21:24:56 -0400 Subject: [PATCH 10/11] fix vk Signed-off-by: crueter --- CMakeLists.txt | 16 ++++----- externals/CMakeLists.txt | 34 ++++++++++++------- src/audio_core/externals/cubeb/CMakeLists.txt | 1 + src/video_core/CMakeLists.txt | 3 +- 4 files changed, 32 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 266f2bd922..cef992ae7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,9 +85,9 @@ option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF) option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}") if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF) + option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF) else() - option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON) + option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON) endif() option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON) @@ -389,13 +389,13 @@ find_package(VulkanMemoryAllocator CONFIG) find_package(ZLIB 1.2 REQUIRED) find_package(zstd 1.5 REQUIRED) -if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS) - find_package(VulkanHeaders 1.3.274) -endif() +# if (NOT YUZU_USE_EXTERNAL_VULKAN_HEADERS) +# find_package(VulkanHeaders 1.3.274) +# endif() -if (NOT YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) - find_package(VulkanUtilityLibraries) -endif() +# if (NOT YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) +# find_package(VulkanUtilityLibraries) +# endif() if (NOT YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) find_package(PkgConfig REQUIRED) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index cc29a468fc..9e74287118 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -143,27 +143,35 @@ if (YUZU_USE_BUNDLED_FFMPEG) set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE) endif() -# TODO(crueter): System vk headers is broken (at least on gentoo lol) - # Vulkan-Headers if (YUZU_USE_EXTERNAL_VULKAN_HEADERS) - CPMAddPackage( - NAME VulkanHeaders - VERSION 1.3.274 - GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Headers.git" - GIT_TAG 89268a6d17 - ) + set(CPM_USE_LOCAL_PACKAGES OFF) +else() + set(CPM_USE_LOCAL_PACKAGES ON) endif() +# TODO(crueter): System vk-headers are too new for externals vk-util + +CPMAddPackage( + NAME VulkanHeaders + VERSION 1.3.274 + GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Headers.git" + GIT_TAG 89268a6d17 +) + # Vulkan-Utility-Libraries if (YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES) - CPMAddPackage( - NAME VulkanUtilityLibraries - GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git" - GIT_TAG df2e358152 - ) + set(CPM_USE_LOCAL_PACKAGES OFF) +else() + set(CPM_USE_LOCAL_PACKAGES ON) endif() +CPMAddPackage( + NAME VulkanUtilityLibraries + GIT_REPOSITORY "https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git" + GIT_TAG df2e358152 +) + # SPIRV-Tools if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS) set(SPIRV_SKIP_EXECUTABLES ON) diff --git a/src/audio_core/externals/cubeb/CMakeLists.txt b/src/audio_core/externals/cubeb/CMakeLists.txt index 5211f15347..789b3a9a6f 100644 --- a/src/audio_core/externals/cubeb/CMakeLists.txt +++ b/src/audio_core/externals/cubeb/CMakeLists.txt @@ -24,6 +24,7 @@ if (cubeb_ADDED) else() target_compile_options(cubeb PRIVATE /wd4456 + /wd4458 ) endif() endif() diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt index 6c0dda296e..34c9853a6d 100644 --- a/src/video_core/CMakeLists.txt +++ b/src/video_core/CMakeLists.txt @@ -328,7 +328,8 @@ target_link_options(video_core PRIVATE ${FFmpeg_LDFLAGS}) add_dependencies(video_core host_shaders) target_include_directories(video_core PRIVATE ${HOST_SHADERS_INCLUDE}) -target_link_libraries(video_core PRIVATE sirit Vulkan::Headers Vulkan::UtilityHeaders GPUOpen::VulkanMemoryAllocator) + +target_link_libraries(video_core PRIVATE sirit Vulkan::Headers VulkanUtilityHeaders GPUOpen::VulkanMemoryAllocator) if (ENABLE_NSIGHT_AFTERMATH) if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK}) From b3e5241e99a13fb689a0038ad2e5aa1b05fa955a Mon Sep 17 00:00:00 2001 From: crueter Date: Sun, 27 Jul 2025 22:06:14 -0400 Subject: [PATCH 11/11] i hate msvc Signed-off-by: crueter --- src/input_common/externals/libusb/CMakeLists.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/input_common/externals/libusb/CMakeLists.txt b/src/input_common/externals/libusb/CMakeLists.txt index 687c35b3d2..e5c1980c7e 100644 --- a/src/input_common/externals/libusb/CMakeLists.txt +++ b/src/input_common/externals/libusb/CMakeLists.txt @@ -153,6 +153,22 @@ else() # MINGW OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux") if (NOT MINGW) target_include_directories(usb BEFORE PRIVATE libusb/msvc) + target_compile_definitions(usb PRIVATE + /wd2061 + /wd2059 + /wd2037 + /wd2079 + /wd2146 + /wd2081 + /wd2143 + /wd2027 + /wd4459 + /wd2513 + /wd2065 + /wd2375 + /wd2198 + /wd1003 + ) endif() else()