From 89d5d4a2b6e38245c93390279b5785dd902c4e5e Mon Sep 17 00:00:00 2001 From: Castor215 <132155746+Castor215@users.noreply.github.com> Date: Fri, 3 Nov 2023 00:33:40 +0000 Subject: [PATCH] externals: allow user to use system cubeb (#7107) --- externals/CMakeLists.txt | 17 +++++++++++++---- .../cmake-modules/CitraHandleSystemLibs.cmake | 3 +++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 53dc89fdc..0c3844488 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -245,10 +245,19 @@ endif() # Cubeb if (ENABLE_CUBEB) - set(BUILD_TESTS OFF CACHE BOOL "") - set(BUILD_TOOLS OFF CACHE BOOL "") - set(BUNDLE_SPEEX ON CACHE BOOL "") - add_subdirectory(cubeb EXCLUDE_FROM_ALL) + if(USE_SYSTEM_CUBEB) + find_package(cubeb REQUIRED) + add_library(cubeb INTERFACE) + target_link_libraries(cubeb INTERFACE cubeb::cubeb) + if(TARGET cubeb::cubeb) + message(STATUS "Found system cubeb") + endif() + else() + set(BUILD_TESTS OFF CACHE BOOL "") + set(BUILD_TOOLS OFF CACHE BOOL "") + set(BUNDLE_SPEEX ON CACHE BOOL "") + add_subdirectory(cubeb EXCLUDE_FROM_ALL) + endif() endif() # DiscordRPC diff --git a/externals/cmake-modules/CitraHandleSystemLibs.cmake b/externals/cmake-modules/CitraHandleSystemLibs.cmake index ad341586f..c14b1831d 100644 --- a/externals/cmake-modules/CitraHandleSystemLibs.cmake +++ b/externals/cmake-modules/CitraHandleSystemLibs.cmake @@ -21,6 +21,7 @@ option(USE_SYSTEM_GLSLANG "Use the system glslang and SPIR-V libraries (instead option(USE_SYSTEM_ZSTD "Use the system Zstandard library (instead of the bundled one)" OFF) option(USE_SYSTEM_ENET "Use the system libenet (instead of the bundled one)" OFF) option(USE_SYSTEM_CRYPTOPP "Use the system cryptopp (instead of the bundled one)" OFF) +option(USE_SYSTEM_CUBEB "Use the system cubeb (instead of the bundled one)" OFF) # Qt and MoltenVK are handled separately CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_SDL2 "Disable system SDL2" OFF "USE_SYSTEM_LIBS" OFF) @@ -41,6 +42,7 @@ CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_GLSLANG "Disable system glslang" OFF "USE_ CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_ZSTD "Disable system Zstandard" OFF "USE_SYSTEM_LIBS" OFF) CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_ENET "Disable system libenet" OFF "USE_SYSTEM_LIBS" OFF) CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_CRYPTOPP "Disable system cryptopp" OFF "USE_SYSTEM_LIBS" OFF) +CMAKE_DEPENDENT_OPTION(DISABLE_SYSTEM_CUBEB "Disable system cubeb" OFF "USE_SYSTEM_LIBS" OFF) set(LIB_VAR_LIST SDL2 @@ -61,6 +63,7 @@ set(LIB_VAR_LIST ZSTD ENET CRYPTOPP + CUBEB ) # First, check that USE_SYSTEM_XXX is not used with USE_SYSTEM_LIBS