option('docdir', type : 'string', description : 'Directory for installing documentation to (defaults to pipewire_datadir/doc/meson.project_name() )') option('docs', description: 'Build documentation', type: 'feature', value: 'disabled') option('examples', description: 'Build examples', type: 'feature', value: 'enabled') option('man', description: 'Build manpages', type: 'feature', value: 'auto') option('tests', description: 'Build tests', type: 'feature', value: 'enabled', yield : true) option('installed_tests', description: 'Install manual and automated test executables', type: 'feature', value: 'disabled') option('gstreamer', description: 'Build GStreamer plugins', type: 'feature', value: 'auto') option('gstreamer-device-provider', description: 'Build GStreamer device provider plugin', type: 'feature', value: 'auto') option('systemd', description: 'Enable systemd integration', type: 'feature', value: 'auto') option('systemd-system-service', description: 'Install systemd system service file', type: 'feature', value: 'disabled') option('systemd-user-service', description: 'Install systemd user service file (ignored without systemd)', type: 'feature', value: 'enabled') option('pipewire-alsa', description: 'Enable pipewire-alsa integration', type: 'feature', value: 'auto') option('pipewire-jack', description: 'Enable pipewire-jack integration', type: 'feature', value: 'enabled') option('pipewire-v4l2', description: 'Enable pipewire-v4l2 integration', type: 'feature', value: 'enabled') option('jack-devel', description: 'Install jack development files', type: 'boolean', value: 'false') option('libjack-path', description: 'Where to install the libjack.so library', type: 'string') option('libv4l2-path', description: 'Where to install the libpw-v4l2.so library', type: 'string') option('spa-plugins', description: 'Enable spa plugins integration', type: 'feature', value: 'enabled') option('alsa', description: 'Enable alsa spa plugin integration', type: 'feature', value: 'auto') option('audiomixer', description: 'Enable audiomixer spa plugin integration', type: 'feature', value: 'enabled') option('audioconvert', description: 'Enable audioconvert spa plugin integration', type: 'feature', value: 'enabled') option('bluez5', description: 'Enable bluez5 spa plugin integration', type: 'feature', value: 'auto') option('bluez5-backend-hsp-native', description: 'Enable HSP in native backend in bluez5 spa plugin', type: 'feature', value: 'enabled') option('bluez5-backend-hfp-native', description: 'Enable HFP in native backend in bluez5 spa plugin', type: 'feature', value: 'enabled') option('bluez5-backend-native-mm', description: 'Enable ModemManager in native backend in bluez5 spa plugin', type: 'feature', value: 'disabled') option('bluez5-backend-ofono', description: 'Enable oFono HFP backend in bluez5 spa plugin (no dependency on oFono)', type: 'feature', value: 'enabled') option('bluez5-backend-hsphfpd', description: 'Enable hsphfpd backend in bluez5 spa plugin (no dependency on hsphfpd)', type: 'feature', value: 'enabled') option('bluez5-codec-aptx', description: 'Enable AptX Qualcomm open source codec implementation', type: 'feature', value: 'auto') option('bluez5-codec-ldac', description: 'Enable LDAC Sony open source codec implementation', type: 'feature', value: 'auto') option('bluez5-codec-aac', description: 'Enable Fraunhofer FDK AAC open source codec implementation', type: 'feature', value: 'auto') option('bluez5-codec-lc3plus', description: 'Enable LC3plus open source codec implementation', type: 'feature', value: 'auto') option('bluez5-codec-opus', description: 'Enable Opus open source codec implementation', type: 'feature', value: 'auto') option('bluez5-codec-lc3', description: 'Enable LC3 open source codec implementation', type: 'feature', value: 'disabled') option('control', description: 'Enable control spa plugin integration', type: 'feature', value: 'enabled') option('audiotestsrc', description: 'Enable audiotestsrc spa plugin integration', type: 'feature', value: 'enabled') option('ffmpeg', description: 'Enable ffmpeg spa plugin integration', type: 'feature', value: 'disabled') option('jack', description: 'Enable jack spa plugin integration', type: 'feature', value: 'auto') option('support', description: 'Enable support spa plugin integration', type: 'feature', value: 'enabled') option('evl', description: 'Enable EVL support spa plugin integration', type: 'feature', value: 'disabled') option('test', description: 'Enable test spa plugin integration', type: 'feature', value: 'disabled') option('v4l2', description: 'Enable v4l2 spa plugin integration', type: 'feature', value: 'auto') option('dbus', description: 'Enable code that depends on dbus', type: 'feature', value: 'enabled') option('libcamera', description: 'Enable libcamera spa plugin integration', type: 'feature', value: 'auto') option('videoconvert', description: 'Enable videoconvert spa plugin integration', type: 'feature', value: 'enabled') option('videotestsrc', description: 'Enable videotestsrc spa plugin integration', type: 'feature', value: 'enabled') option('volume', description: 'Build the legacy volume spa plugin', type: 'feature', value: 'disabled') option('vulkan', description: 'Enable vulkan spa plugin integration', type: 'feature', value: 'disabled') option('pw-cat', description: 'Build pw-cat/pw-play/pw-record', type: 'feature', value: 'auto') option('pw-cat-ffmpeg', description: 'Enable FFmpeg integration in pw-cat/pw-play/pw-record', type: 'feature', value: 'disabled') option('udev', description: 'Enable Udev integration', type: 'feature', value: 'auto') option('udevrulesdir', type : 'string', description : 'Directory for udev rules (defaults to /lib/udev/rules.d)') option('systemd-system-unit-dir', type : 'string', description : 'Directory for system systemd units (defaults to /usr/lib/systemd/system)') option('systemd-user-unit-dir', type : 'string', description : 'Directory for user systemd units (defaults to /usr/lib/systemd/user)') option('sdl2', description: 'Enable code that depends on SDL 2', type: 'feature', value: 'auto') option('sndfile', description: 'Enable code that depends on libsndfile', type: 'feature', value: 'auto') option('libmysofa', description: 'Enable code that depends on libmysofa', type: 'feature', value: 'auto') option('libpulse', description: 'Enable code that depends on libpulse', type: 'feature', value: 'auto') option('roc', description: 'Enable code that depends on roc toolkit', type: 'feature', value: 'auto') option('avahi', description: 'Enable code that depends on avahi', type: 'feature', value: 'auto') option('echo-cancel-webrtc', description : 'Enable WebRTC-based echo canceller', type : 'feature', value : 'auto') option('libusb', description: 'Enable code that depends on libusb', type: 'feature', value: 'auto') option('session-managers', description : 'Session managers to build (can be [] for none or an absolute path)', type : 'array', value : ['wireplumber']) option('raop', description: 'Enable module for Remote Audio Output Protocol', type: 'feature', value: 'auto') option('lv2', description: 'Enable loading of LV2 plugins', type: 'feature', value: 'auto') option('x11', description: 'Enable code that depends on X11', type: 'feature', value: 'auto') option('x11-xfixes', description: 'Enable code that depends on XFixes', type: 'feature', value: 'auto') option('libcanberra', description: 'Enable code that depends on libcanberra', type: 'feature', value: 'auto') option('legacy-rtkit', description: 'Build legacy rtkit module', type: 'boolean', value: 'true') option('avb', description: 'Enable AVB code', type: 'feature', value: 'auto') option('flatpak', description: 'Enable Flatpak support', type: 'feature', value: 'enabled') option('readline', description: 'Enable code that depends on libreadline', type: 'feature', value: 'auto') option('gsettings', description: 'Enable code that depends on gsettings', type: 'feature', value: 'auto') option('compress-offload', description: 'Enable ALSA Compress-Offload support', type: 'feature', value: 'auto') option('pam-defaults-install', description: 'Install limits.d file modifying defaults for all PAM users. Only for old kernels/systemd!', type: 'boolean', value: 'false') option('pam-memlock-default', description : 'The default memlock value for any PAM user in kilobytes. Multiples of 64 recommended.', type : 'integer', min: 640, value: 8192) option('rlimits-install', description: 'Install PAM limits.d file. Voids all following rlimits-* options, if false', type: 'boolean', value: 'true') option('rlimits-match', description : 'PAM match rule for the generated limits.d file. @ denotes matching a group.', type : 'string', value: '@pipewire') option('rlimits-rtprio', description : 'RR and FIFO scheduler priority permitted for realtime threads of the matching user(s)', type : 'integer', min: 11, max: 99, value: 95) option('rlimits-memlock', description : 'kB of memory each process of the user matched by the rule can lock. Can be unlimited .', type : 'string', value: '4194304') option('rlimits-nice', description : 'Not niceness permitted for non-realtime threads of the matching user(s)', type : 'integer', min: -20, max: -1, value: -19) option('opus', description: 'Enable code that depends on opus', type: 'feature', value: 'auto')