diff --git a/.gitmodules b/.gitmodules index 10f9f7de96..9e3582d6bd 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 "libusb"] path = externals/libusb/libusb url = https://github.com/libusb/libusb.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 0c2a880ae0..078fe417c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -426,10 +426,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/externals/CMakeLists.txt b/externals/CMakeLists.txt index cd7b80a33c..9e7eb95299 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) @@ -83,7 +86,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") @@ -109,20 +111,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()