externals: Replace conan opus with git submodule
Apparently conan's prebuilt package ships without a runtime check for AVX, crashing yuzu on devices without it. Reverting this to externals seems to fix it. This wasn't tested on a CPU without AVX, but it was tested with the following change on Windows: bcdedit /set xsavedisable 1 master crashes inside opus code with an illegal instruction, this commit doesn't.
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -31,3 +31,6 @@
|
|||||||
[submodule "xbyak"]
|
[submodule "xbyak"]
|
||||||
path = externals/xbyak
|
path = externals/xbyak
|
||||||
url = https://github.com/herumi/xbyak.git
|
url = https://github.com/herumi/xbyak.git
|
||||||
|
[submodule "opus"]
|
||||||
|
path = externals/opus
|
||||||
|
url = https://github.com/xiph/opus
|
||||||
|
|||||||
@@ -157,8 +157,6 @@ macro(yuzu_find_packages)
|
|||||||
#"libzip 1.5 libzip/1.5.2@bincrafters/stable"
|
#"libzip 1.5 libzip/1.5.2@bincrafters/stable"
|
||||||
"lz4 1.8 lz4/1.9.2"
|
"lz4 1.8 lz4/1.9.2"
|
||||||
"nlohmann_json 3.7 nlohmann_json/3.7.3"
|
"nlohmann_json 3.7 nlohmann_json/3.7.3"
|
||||||
# we need to be careful as the version check might be broken https://github.com/xiph/opus/issues/110
|
|
||||||
"opus 1.3 opus/1.3.1"
|
|
||||||
"ZLIB 1.2 zlib/1.2.11"
|
"ZLIB 1.2 zlib/1.2.11"
|
||||||
"zstd 1.4 zstd/1.4.4"
|
"zstd 1.4 zstd/1.4.4"
|
||||||
)
|
)
|
||||||
|
|||||||
4
externals/CMakeLists.txt
vendored
4
externals/CMakeLists.txt
vendored
@@ -41,6 +41,10 @@ target_include_directories(unicorn-headers INTERFACE ./unicorn/include)
|
|||||||
# SoundTouch
|
# SoundTouch
|
||||||
add_subdirectory(soundtouch)
|
add_subdirectory(soundtouch)
|
||||||
|
|
||||||
|
# Opus
|
||||||
|
add_subdirectory(opus)
|
||||||
|
target_include_directories(opus INTERFACE ./opus/include)
|
||||||
|
|
||||||
# Cubeb
|
# Cubeb
|
||||||
if(ENABLE_CUBEB)
|
if(ENABLE_CUBEB)
|
||||||
set(BUILD_TESTS OFF CACHE BOOL "")
|
set(BUILD_TESTS OFF CACHE BOOL "")
|
||||||
|
|||||||
42
externals/find-modules/Findopus.cmake
vendored
42
externals/find-modules/Findopus.cmake
vendored
@@ -1,42 +0,0 @@
|
|||||||
|
|
||||||
find_package(PkgConfig QUIET)
|
|
||||||
pkg_check_modules(PC_opus QUIET opus)
|
|
||||||
|
|
||||||
find_path(opus_INCLUDE_DIR
|
|
||||||
NAMES opus.h
|
|
||||||
PATHS ${PC_opus_INCLUDE_DIRS}
|
|
||||||
PATH_SUFFIXES opus
|
|
||||||
)
|
|
||||||
find_library(opus_LIBRARY
|
|
||||||
NAMES opus
|
|
||||||
PATHS ${PC_opus_LIBRARY_DIRS}
|
|
||||||
)
|
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
find_package_handle_standard_args(opus
|
|
||||||
FOUND_VAR opus_FOUND
|
|
||||||
REQUIRED_VARS
|
|
||||||
opus_LIBRARY
|
|
||||||
opus_INCLUDE_DIR
|
|
||||||
VERSION_VAR opus_VERSION
|
|
||||||
)
|
|
||||||
|
|
||||||
if(opus_FOUND)
|
|
||||||
set(Opus_LIBRARIES ${opus_LIBRARY})
|
|
||||||
set(Opus_INCLUDE_DIRS ${opus_INCLUDE_DIR})
|
|
||||||
set(Opus_DEFINITIONS ${PC_opus_CFLAGS_OTHER})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(opus_FOUND AND NOT TARGET Opus::Opus)
|
|
||||||
add_library(Opus::Opus UNKNOWN IMPORTED)
|
|
||||||
set_target_properties(Opus::Opus PROPERTIES
|
|
||||||
IMPORTED_LOCATION "${opus_LIBRARY}"
|
|
||||||
INTERFACE_COMPILE_OPTIONS "${PC_opus_CFLAGS_OTHER}"
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${opus_INCLUDE_DIR}"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
mark_as_advanced(
|
|
||||||
opus_INCLUDE_DIR
|
|
||||||
opus_LIBRARY
|
|
||||||
)
|
|
||||||
1
externals/opus
vendored
Submodule
1
externals/opus
vendored
Submodule
Submodule externals/opus added at fad505e8ed
@@ -606,7 +606,7 @@ endif()
|
|||||||
create_target_directory_groups(core)
|
create_target_directory_groups(core)
|
||||||
|
|
||||||
target_link_libraries(core PUBLIC common PRIVATE audio_core video_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::Opus unicorn)
|
target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt::fmt nlohmann_json::nlohmann_json mbedtls opus unicorn)
|
||||||
|
|
||||||
if (YUZU_ENABLE_BOXCAT)
|
if (YUZU_ENABLE_BOXCAT)
|
||||||
target_compile_definitions(core PRIVATE -DYUZU_ENABLE_BOXCAT)
|
target_compile_definitions(core PRIVATE -DYUZU_ENABLE_BOXCAT)
|
||||||
|
|||||||
Reference in New Issue
Block a user