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. @<name> 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')
