浏览代码

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.
Markus Wick 5 年之前
父节点
当前提交
5096ed5e0a
共有 5 个文件被更改,包括 11 次插入3 次删除
  1. 2 0
      CMakeLists.txt
  2. 5 1
      externals/CMakeLists.txt
  3. 1 1
      externals/find-modules/Findopus.cmake
  4. 2 0
      externals/opus/CMakeLists.txt
  5. 1 1
      src/core/CMakeLists.txt

+ 2 - 0
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})

+ 5 - 1
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()

+ 1 - 1
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}"

+ 2 - 0
externals/opus/CMakeLists.txt

@@ -252,3 +252,5 @@ PRIVATE
     opus/silk/float
     opus/src
 )
+
+add_library(Opus::Opus ALIAS opus)

+ 1 - 1
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)