Add support for -DTG_OWT_BUILD_PULSE_BACKEND This is based off of the rtc_include_pulse_audio option in: * src/modules/audio_device/BUILD.gn ALSA must be enabled unless audio support is removed as a whole, see: * src/modules/audio_device/audio_device_impl.cc --- tg_owt-91d836dc84a16584c6ac52b36c04c0de504d9c34.orig/CMakeLists.txt +++ tg_owt-91d836dc84a16584c6ac52b36c04c0de504d9c34/CMakeLists.txt @@ -25,12 +25,17 @@ option(TG_OWT_USE_PIPEWIRE "Use pipewire for desktop capture on non-Apple Unix." ON) option(TG_OWT_DLOPEN_PIPEWIRE "dlopen pipewire 0.3 for desktop capture on non-Apple Unix." ${not_packaged_build}) option(TG_OWT_BUILD_AUDIO_BACKENDS "Build webrtc audio backends." ON) +option(TG_OWT_BUILD_PULSE_BACKEND "Build pulseaudio audio backend on non-Apple Unix." ON) if (NOT UNIX OR APPLE) set(TG_OWT_USE_X11 OFF) set(TG_OWT_USE_PIPEWIRE OFF) endif() +if (NOT TG_OWT_BUILD_AUDIO_BACKENDS) + set(TG_OWT_BUILD_PULSE_BACKEND OFF) +endif() + if (BUILD_SHARED_LIBS) set(CMAKE_POSITION_INDEPENDENT_CODE ON) endif() @@ -162,9 +167,11 @@ link_libvpx(tg_owt) if (TG_OWT_BUILD_AUDIO_BACKENDS AND (UNIX AND NOT APPLE)) - link_libalsa(tg_owt) - link_libpulse(tg_owt) link_dl(tg_owt) + link_libalsa(tg_owt) + if (TG_OWT_BUILD_PULSE_BACKEND) + link_libpulse(tg_owt) + endif() endif() if (NOT WIN32 AND NOT APPLE) @@ -2218,12 +2225,6 @@ modules/audio_device/linux/audio_mixer_manager_alsa_linux.h modules/audio_device/linux/latebindingsymboltable_linux.cc modules/audio_device/linux/latebindingsymboltable_linux.h - modules/audio_device/linux/audio_device_pulse_linux.cc - modules/audio_device/linux/audio_device_pulse_linux.h - modules/audio_device/linux/audio_mixer_manager_pulse_linux.cc - modules/audio_device/linux/audio_mixer_manager_pulse_linux.h - modules/audio_device/linux/pulseaudiosymboltable_linux.cc - modules/audio_device/linux/pulseaudiosymboltable_linux.h modules/audio_device/mac/audio_device_mac.cc modules/audio_device/mac/audio_device_mac.h modules/audio_device/mac/audio_mixer_manager_mac.cc @@ -2243,6 +2244,17 @@ ) endif() +if (NOT TG_OWT_BUILD_PULSE_BACKEND) + remove_target_sources(tg_owt ${webrtc_loc} + modules/audio_device/linux/audio_device_pulse_linux.cc + modules/audio_device/linux/audio_device_pulse_linux.h + modules/audio_device/linux/audio_mixer_manager_pulse_linux.cc + modules/audio_device/linux/audio_mixer_manager_pulse_linux.h + modules/audio_device/linux/pulseaudiosymboltable_linux.cc + modules/audio_device/linux/pulseaudiosymboltable_linux.h + ) +endif() + if (NOT WIN32) remove_target_sources(tg_owt ${webrtc_loc} rtc_base/win32.cc --- tg_owt-91d836dc84a16584c6ac52b36c04c0de504d9c34.orig/cmake/libwebrtcbuild.cmake +++ tg_owt-91d836dc84a16584c6ac52b36c04c0de504d9c34/cmake/libwebrtcbuild.cmake @@ -50,8 +50,13 @@ target_compile_definitions(libwebrtcbuild INTERFACE WEBRTC_ENABLE_LINUX_ALSA - WEBRTC_ENABLE_LINUX_PULSE ) + if (TG_OWT_BUILD_PULSE_BACKEND) + target_compile_definitions(libwebrtcbuild + INTERFACE + WEBRTC_ENABLE_LINUX_PULSE + ) + endif() endif() if (WIN32)