Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Adam <dev@robert-adam.de>2022-01-13 14:24:45 +0300
committerGitHub <noreply@github.com>2022-01-13 14:24:45 +0300
commit3b0fa8f8be740058fc60a743c83d96bc829b29c9 (patch)
tree2c1bb0d25b633db9440297fe0c3ddf344a4ee812
parentfafb5fa6637171681c9d064a67aaeee5ffa9b37c (diff)
parentd45318d64942043ffb22dc4c6a65a31596e61d78 (diff)
Merge PR #5422: BUILD(client): RNNoise: Support linking against the system library
OS packages (at least on Linux and BSDs) prefer prepackaged libraries to bundled/statically linked versions where possible. Introduce rnnoise (default ON) and make bundled-rnnoise default to it's value; this retains current behaviour. This way, rnnoise=OFF disables use of RNNoise completely and a simple bundled-rnnoise=OFF requires the system's library. Tested on OpenBSD 7.0-CURRENT.
-rw-r--r--docs/dev/build-instructions/cmake_options.md7
-rw-r--r--src/mumble/CMakeLists.txt34
2 files changed, 27 insertions, 14 deletions
diff --git a/docs/dev/build-instructions/cmake_options.md b/docs/dev/build-instructions/cmake_options.md
index c7aa36a82..18c05202d 100644
--- a/docs/dev/build-instructions/cmake_options.md
+++ b/docs/dev/build-instructions/cmake_options.md
@@ -39,6 +39,11 @@ Build the included version of CELT instead of looking for one on the system.
Build the included version of Opus instead of looking for one on the system.
(Default: ON)
+### bundled-rnnoise
+
+Build the included version of RNNoise instead of looking for one on the system.
+(Default: ${rnnoise})
+
### bundled-speex
Build the included version of Speex instead of looking for one on the system.
@@ -201,7 +206,7 @@ Build redacted (outdated) plugins as well
### rnnoise
-Build RNNoise for machine learning noise reduction
+Use RNNoise for machine learning noise reduction.
(Default: ON)
### server
diff --git a/src/mumble/CMakeLists.txt b/src/mumble/CMakeLists.txt
index d1dd175f5..27792be6d 100644
--- a/src/mumble/CMakeLists.txt
+++ b/src/mumble/CMakeLists.txt
@@ -25,7 +25,8 @@ option(bundle-qt-translations "Bundle Qt's translations as well" ${static})
option(bundled-opus "Build the included version of Opus instead of looking for one on the system." ON)
option(bundled-celt "Build the included version of CELT instead of looking for one on the system." ON)
option(bundled-speex "Build the included version of Speex instead of looking for one on the system." ON)
-option(rnnoise "Build RNNoise for machine learning noise reduction" ON)
+option(rnnoise "Use RNNoise for machine learning noise reduction." ON)
+option(bundled-rnnoise "Build the included version of RNNoise instead of looking for one on the system." ${rnnoise})
option(manual-plugin "Include the built-in \"manual\" positional audio plugin." ON)
@@ -717,23 +718,30 @@ else()
endif()
if(rnnoise)
- add_subdirectory("${3RDPARTY_DIR}/rnnoise-build" "${CMAKE_CURRENT_BINARY_DIR}/rnnoise")
+ target_compile_definitions(mumble PRIVATE "USE_RNNOISE")
- # Disable all warnings that the RNNoise code may emit
- disable_warnings_for_all_targets_in("${3RDPARTY_DIR}/rnnoise-build")
+ if(bundled-rnnoise)
+ add_subdirectory("${3RDPARTY_DIR}/rnnoise-build" "${CMAKE_CURRENT_BINARY_DIR}/rnnoise")
- target_compile_definitions(mumble PRIVATE "USE_RNNOISE")
- target_link_libraries(mumble PRIVATE rnnoise)
+ # Disable all warnings that the RNNoise code may emit
+ disable_warnings_for_all_targets_in("${3RDPARTY_DIR}/rnnoise-build")
- if(WIN32)
- # Shared library on Windows (e.g. ".dll")
- set_target_properties(rnnoise PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+ target_link_libraries(mumble PRIVATE rnnoise)
+
+ if(WIN32)
+ # Shared library on Windows (e.g. ".dll")
+ set_target_properties(rnnoise PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+ else()
+ # Shared library on UNIX (e.g. ".so")
+ set_target_properties(rnnoise PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+ endif()
+
+ install_library(rnnoise mumble_client)
else()
- # Shared library on UNIX (e.g. ".so")
- set_target_properties(rnnoise PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
- endif()
+ find_pkg(rnnoise REQUIRED)
- install_library(rnnoise mumble_client)
+ target_link_libraries(mumble PRIVATE ${rnnoise_LIBRARIES})
+ endif()
endif()
if(qtspeech)