Cmake: Add Pipewire support

Pull Request: https://projects.blender.org/blender/blender/pulls/126091
This commit is contained in:
Sebastian Parborg
2024-08-02 12:18:26 +02:00
committed by Gitea
parent bc39ee692d
commit 2ec719447e
4 changed files with 15 additions and 0 deletions

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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})