2018-11-28 20:43:53 +07:00
option ( 'gcov' ,
2019-07-11 07:54:13 +05:30
type : 'boolean' , value : false ,
2018-11-28 20:43:53 +07:00
description : 'Enable optional gcov coverage analysis' )
2018-11-05 12:03:03 +07:00
option ( 'man' ,
type : 'boolean' ,
description : 'Enable building and installation of man pages' )
2018-10-31 12:45:11 +07:00
option ( 'tests' ,
type : 'boolean' ,
description : 'Enable unit tests' )
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
option ( 'system_user' ,
type : 'string' , value : 'pulse' ,
description : 'User for running the PulseAudio daemon as a system-wide instance (pulse)' )
option ( 'system_group' ,
type : 'string' , value : 'pulse' ,
description : 'Group for running the PulseAudio daemon as a system-wide instance (pulse)' )
option ( 'access_group' ,
type : 'string' , value : 'pulse-access' ,
description : 'Group which is allowed access to a system-wide PulseAudio daemon (pulse-access)' )
option ( 'database' ,
type : 'combo' , value : 'tdb' ,
choices : [ 'gdbm' , 'tdb' , 'simple' ] ,
description : 'Database backend' )
2018-10-21 17:09:28 +07:00
option ( 'legacy-database-entry-format' ,
2018-10-31 19:18:09 +07:00
type : 'boolean' ,
2018-10-21 17:09:28 +07:00
description : 'Try to load legacy (< 1.0) database files (card, device and volume restore)' )
stream-restore: Forget pre-14.0 stream routing
Prior to commits f899d5f4669dcd536cc142cee99fe359dd8af3d6 and
f62a49b8cf109c011a9818d2358beb6834e6ec25, GNOME's sound settings
overwrote the routing for all entries in the stream-restore database
when selecting a device. Now we prevent that from happening (see the
aforementioned commits), but the old overwritten settings can still be in
the database after updating to PulseAudio 14.0, and they can cause
problems, as documented here:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832
We can't distinguish between devices set by GNOME's sound settings
and devices set by the user, so this patch discards all old device
settings, even though that is going to cause PulseAudio to forget routing
settings for many users. This is less bad than keeping the incorrect
routing settings in the database, because it's difficult for users to
figure out how to fix the situation when e.g. speaker test tones go to
the internal speakers no matter what device is selected as the default,
whereas old manual configuration can be restored restored by doing the
manual configuration again. Also, it's probably more common to have at
some point changed the default device in GNOME's sound settings than it
is to have any manual per-stream routing settings.
This is disabled by default, because this causes data loss, but
distributions that use GNOME are recommended to enable this with
the --enable-stream-restore-clear-old-devices (Autotools) or
-Dstream-restore-clear-old-devices=true (Meson) build option.
Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832
2020-05-26 15:04:59 +03:00
option ( 'stream-restore-clear-old-devices' ,
type : 'boolean' , value : false ,
description : 'Forget per-stream routing settings that have been set before version 14.0. Recommended when using GNOME. See https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/832' )
2019-01-16 17:58:42 +07:00
option ( 'running-from-build-tree' ,
type : 'boolean' ,
description : 'Enable running from build tree' )
2019-08-15 13:07:54 +05:30
option ( 'atomic-arm-linux-helpers' ,
type : 'boolean' , value : true ,
description : 'Use inline asm or libatomic_ops instead' )
option ( 'atomic-arm-memory-barrier' ,
type : 'boolean' , value : false ,
description : 'Enable memory barriers (only really needed in SMP arm systems)' )
2018-11-19 08:48:35 +00:00
# Paths
2019-07-11 00:52:50 +02:00
option ( 'padsplibdir' ,
2018-10-09 10:26:57 +07:00
type : 'string' ,
2019-07-11 00:52:50 +02:00
description : 'Specify location where OSS wrapper library will be installed' )
# This one gets inserted into a shell double-quoted string, so needs to be escaped (\$LIB). Meson
# removes a layer of escapes when parsing the description string, so we need to double the
# backslashes for "meson configure" to display the right text.
option ( 'pulsedsp-location' ,
type : 'string' ,
description : 'Specify location where OSS wrapper library will be loaded from; can use \\$LIB' )
2018-10-13 11:50:03 +05:30
option ( 'modlibexecdir' ,
type : 'string' ,
description : 'Specify location where modules will be installed' )
2020-08-02 17:43:03 +02:00
option ( 'alsadatadir' ,
type : 'string' ,
description : 'Directory for ALSA card profiles (defaults to ${datadir}/pulseaudio/alsa-mixer)' )
2018-11-26 13:33:44 +07:00
option ( 'systemduserunitdir' ,
type : 'string' ,
description : 'Directory for systemd user service files' )
2018-11-26 15:12:04 +07:00
option ( 'udevrulesdir' ,
type : 'string' ,
description : 'Directory for udev rules (defaults to /lib/udev/rules.d)' )
2018-11-05 11:42:24 +07:00
option ( 'bashcompletiondir' ,
type : 'string' ,
2019-11-07 12:50:56 +00:00
description : 'Directory for bash completion scripts ["no" disables]' )
2018-11-05 11:42:24 +07:00
option ( 'zshcompletiondir' ,
type : 'string' ,
2019-11-07 12:50:56 +00:00
description : 'Directory for zsh completion scripts ["no" disables]' )
2018-10-19 16:24:25 +07:00
# Optional features
2018-10-19 16:37:05 +07:00
option ( 'alsa' ,
type : 'feature' , value : 'auto' ,
description : 'Optional ALSA support' )
2018-10-21 16:22:59 +07:00
option ( 'asyncns' ,
type : 'feature' , value : 'auto' ,
description : 'Optional Async DNS support' )
2018-10-19 17:04:01 +07:00
option ( 'avahi' ,
type : 'feature' , value : 'auto' ,
description : 'Optional Avahi support' )
2018-10-19 17:40:06 +07:00
option ( 'bluez5' ,
2019-08-13 17:08:13 +02:00
type : 'boolean' , value : 'true' ,
2018-10-19 17:40:06 +07:00
description : 'Optional BlueZ 5 support' )
option ( 'bluez5-native-headset' ,
type : 'boolean' ,
description : 'Optional native headset backend support (BlueZ 5)' )
option ( 'bluez5-ofono-headset' ,
type : 'boolean' ,
description : 'Optional oFono headset backend support (BlueZ 5)' )
2018-10-19 16:24:25 +07:00
option ( 'dbus' ,
type : 'feature' , value : 'auto' ,
description : 'Optional D-Bus support' )
2018-10-19 17:51:58 +07:00
option ( 'fftw' ,
type : 'feature' , value : 'auto' ,
description : 'Optional FFTW support' )
2018-10-20 15:29:03 +07:00
option ( 'glib' ,
type : 'feature' , value : 'auto' ,
description : 'Optional GLib 2 support' )
2018-10-21 15:39:30 +07:00
option ( 'gsettings' ,
type : 'feature' , value : 'auto' ,
description : 'Optional GSettings support' )
2016-05-12 19:26:55 +05:30
option ( 'gstreamer' ,
2020-10-14 09:09:53 -04:00
type : 'feature' , value : 'disabled' ,
2016-05-12 19:26:55 +05:30
description : 'Optional GStreamer dependency for media-related functionality' )
2018-10-20 15:41:28 +07:00
option ( 'gtk' ,
type : 'feature' , value : 'auto' ,
description : 'Optional Gtk+ 3 support' )
2018-10-19 18:18:58 +07:00
option ( 'hal-compat' ,
type : 'boolean' ,
description : 'Optional HAL->udev transition compatibility support (needs udev)' )
2018-10-21 16:34:55 +07:00
option ( 'ipv6' ,
type : 'boolean' ,
description : 'Optional IPv6 support' )
2018-10-19 17:48:31 +07:00
option ( 'jack' ,
type : 'feature' , value : 'auto' ,
description : 'Optional JACK support' )
2018-10-19 17:58:21 +07:00
option ( 'lirc' ,
type : 'feature' , value : 'auto' ,
description : 'Optional LIRC support' )
2018-10-19 18:00:59 +07:00
option ( 'openssl' ,
type : 'feature' , value : 'auto' ,
description : 'Optional OpenSSL support (used for Airtunes/RAOP)' )
2018-11-28 15:42:25 +07:00
option ( 'orc' ,
type : 'feature' , value : 'auto' ,
description : 'Optimized Inner Loop Runtime Compiler' )
2020-11-27 23:49:17 +03:00
option ( 'oss-output' ,
type : 'boolean' ,
description : 'Optional OSS output support' )
2018-10-21 17:00:25 +07:00
option ( 'samplerate' ,
type : 'feature' , value : 'disabled' ,
description : 'Optional libsamplerate support (DEPRECATED)' )
2018-10-21 16:47:03 +07:00
option ( 'soxr' ,
type : 'feature' , value : 'auto' ,
description : 'Optional SoXR support (resampling)' )
2018-10-19 18:09:13 +07:00
option ( 'speex' ,
type : 'feature' , value : 'auto' ,
description : 'Optional Speex support (resampling, AEC)' )
2018-10-19 16:43:44 +07:00
option ( 'systemd' ,
type : 'feature' , value : 'auto' ,
description : 'Optional systemd support' )
2018-10-19 18:11:31 +07:00
option ( 'udev' ,
type : 'feature' , value : 'auto' ,
description : 'Optional udev support' )
2018-10-09 11:44:02 +07:00
option ( 'x11' ,
type : 'feature' , value : 'auto' ,
description : 'Optional X11 support' )
2018-10-19 18:25:55 +07:00
# Echo cancellation
2018-10-19 18:39:09 +07:00
option ( 'adrian-aec' ,
type : 'boolean' ,
description : 'Optional Adrian\'s echo canceller' )
2018-10-19 18:25:55 +07:00
option ( 'webrtc-aec' ,
type : 'feature' , value : 'auto' ,
description : 'Optional WebRTC-based echo canceller' )