diff --git a/CMakeLists.txt b/CMakeLists.txt index d1ad6ac5de0..bfdcfc4a261 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -512,8 +512,11 @@ endif() if(UNIX AND NOT APPLE) option(WITH_PULSEAUDIO "Enable PulseAudio for audio support on Linux" ON) option(WITH_PULSEAUDIO_DYNLOAD "Enable runtime dynamic PulseAudio libraries loading" OFF) + option(WITH_PIPEWIRE "Enable Pipewire for audio support on Linux" ON) + option(WITH_PIPEWIRE_DYNLOAD "Enable runtime dynamic Pipewire libraries loading" OFF) else() set(WITH_PULSEAUDIO OFF) + set(WITH_PIPEWIRE OFF) endif() if(WIN32) option(WITH_WASAPI "Enable Windows Audio Sessions API for audio support on Windows" ON) diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake index 1cc483ffc51..864320be8ef 100644 --- a/build_files/cmake/config/blender_release.cmake +++ b/build_files/cmake/config/blender_release.cmake @@ -83,6 +83,9 @@ if(UNIX AND NOT APPLE) set(WITH_X11_XF86VMODE ON CACHE BOOL "" FORCE) set(WITH_JACK_DYNLOAD ON CACHE BOOL "" FORCE) set(WITH_PULSEAUDIO_DYNLOAD ON CACHE BOOL "" FORCE) + # TODO don't disable pipewire on release builds once it has gotten more testing + set(WITH_PIPEWIRE OFF CACHE BOOL "" FORCE) + set(WITH_PIPEWIRE_DYNLOAD ON CACHE BOOL "" FORCE) endif() if(NOT APPLE) set(WITH_XR_OPENXR ON CACHE BOOL "" FORCE) diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index c33b46d6d8e..8d7c1d10b7a 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -719,6 +719,13 @@ if(WITH_PULSEAUDIO) set_and_warn_library_found("PulseAudio" PULSE_FOUND WITH_PULSEAUDIO) endif() +# PipeWire is intended to use the system library. +if(WITH_PIPEWIRE) + find_package(PkgConfig) + pkg_check_modules(PIPEWIRE libpipewire-0.3) + set_and_warn_library_found("PipeWire" PIPEWIRE_FOUND WITH_PIPEWIRE) +endif() + # Audio IO if(WITH_SYSTEM_AUDASPACE) find_package_wrapper(Audaspace) diff --git a/extern/audaspace/blender_config.cmake b/extern/audaspace/blender_config.cmake index dd8072c1f85..e3634ce6c37 100644 --- a/extern/audaspace/blender_config.cmake +++ b/extern/audaspace/blender_config.cmake @@ -20,12 +20,14 @@ set(PLUGIN_FFMPEG FALSE) # "Build FFMPEG Plugin" set(PLUGIN_JACK FALSE) # "Build JACK Plugin" set(PLUGIN_LIBSNDFILE FALSE) # "Build LibSndFile Plugin" set(PLUGIN_OPENAL FALSE) # "Build OpenAL Plugin" +set(PLUGIN_PIPEWIRE FALSE) # "Build PipeWire Plugin" set(PLUGIN_PULSEAUDIO FALSE) # "Build PulseAudio Plugin" set(PLUGIN_SDL FALSE) # "Build SDL Plugin" set(PLUGIN_WASAPI FALSE) # "Build WASAPI Plugin" set(WITH_PYTHON_MODULE FALSE) # "Build Python Module" set(DYNLOAD_JACK ${WITH_JACK_DYNLOAD}) # "Dynamically load JACK" set(DYNLOAD_PULSEAUDIO ${WITH_PULSEAUDIO_DYNLOAD}) # "Dynamically load PulseAudio" +set(DYNLOAD_PIPEWIRE ${WITH_PIPEWIRE_DYNLOAD}) # "Dynamically load PipeWire" set(WITH_BINDING_DOCS FALSE) # "Build C/Python HTML Documentation with Sphinx" set(DEFAULT_PLUGIN_PATH "plugins") # "Default plugin installation and loading path." set(FFMPEG_FOUND ${WITH_CODEC_FFMPEG})