From 5096ed5e0ab91254a29a58234d1df71b4065745f Mon Sep 17 00:00:00 2001 From: Markus Wick Date: Thu, 8 Apr 2021 23:49:32 +0200 Subject: [PATCH] externals: Search for shared opus installation. We had used conan for opus before, but there was a bug in the AVX detection. However we still had the Findopus.cmake file within the repository, but not used. This patch reenables the Findopus helper and prefer the system wide installation of opus. --- CMakeLists.txt | 2 ++ externals/CMakeLists.txt | 6 +++++- externals/find-modules/Findopus.cmake | 2 +- externals/opus/CMakeLists.txt | 2 ++ src/core/CMakeLists.txt | 2 +- 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ac7c3ce90..6ea6c650e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -172,6 +172,8 @@ macro(yuzu_find_packages) "nlohmann_json 3.8 nlohmann_json/3.8.0" "ZLIB 1.2 zlib/1.2.11" "zstd 1.4 zstd/1.4.8" + # can't use opus until AVX check is fixed: https://github.com/yuzu-emu/yuzu/pull/4068 + #"opus 1.3 opus/1.3.1" ) foreach(PACKAGE ${REQUIRED_LIBS}) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 851c282b4..891a47c3c 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -97,4 +97,8 @@ if (ENABLE_WEB_SERVICE) endif() # Opus -add_subdirectory(opus) +find_package(opus 1.3) +if (NOT opus_FOUND) + message(STATUS "opus 1.3 or newer not found, falling back to externals") + add_subdirectory(opus EXCLUDE_FROM_ALL) +endif() diff --git a/externals/find-modules/Findopus.cmake b/externals/find-modules/Findopus.cmake index de84bd995..2bce56122 100644 --- a/externals/find-modules/Findopus.cmake +++ b/externals/find-modules/Findopus.cmake @@ -28,7 +28,7 @@ if(opus_FOUND) endif() if(opus_FOUND AND NOT TARGET Opus::Opus) - add_library(Opus::Opus UNKNOWN IMPORTED) + add_library(Opus::Opus UNKNOWN IMPORTED GLOBAL) set_target_properties(Opus::Opus PROPERTIES IMPORTED_LOCATION "${opus_LIBRARY}" INTERFACE_COMPILE_OPTIONS "${PC_opus_CFLAGS_OTHER}" diff --git a/externals/opus/CMakeLists.txt b/externals/opus/CMakeLists.txt index 94a86551f..16f5af9f2 100644 --- a/externals/opus/CMakeLists.txt +++ b/externals/opus/CMakeLists.txt @@ -252,3 +252,5 @@ PRIVATE opus/silk/float opus/src ) + +add_library(Opus::Opus ALIAS opus) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 17f251c37..e51a19e2d 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -666,7 +666,7 @@ endif() create_target_directory_groups(core) target_link_libraries(core PUBLIC common PRIVATE audio_core video_core) -target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt::fmt nlohmann_json::nlohmann_json mbedtls opus zip) +target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt::fmt nlohmann_json::nlohmann_json mbedtls Opus::Opus zip) if (YUZU_ENABLE_BOXCAT) target_compile_definitions(core PRIVATE -DYUZU_ENABLE_BOXCAT)