[pulseaudio-commits] [Git][pulseaudio/pulseaudio][master] 46 commits: meson: Add pulsedspdir option

Arun Raghavan gitlab at gitlab.freedesktop.org
Thu Dec 27 12:07:27 UTC 2018


Arun Raghavan pushed to branch master at PulseAudio / pulseaudio


Commits:
13202eb9 by Arnaud Rebillout at 2018-12-27T11:55:07Z
meson: Add pulsedspdir option

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
1e86d616 by Arnaud Rebillout at 2018-12-27T11:55:07Z
meson: Add a sanity check to the prefix option

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
ea92c282 by Arnaud Rebillout at 2018-12-27T11:55:07Z
meson: Create bindir and libdir variables

This is to avoid using the construct 'join_paths(prefix, get_option(...))'
everywhere in the meson files. It's better to settle the paths question
once and for all at the beginning.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
b709c8a1 by Arnaud Rebillout at 2018-12-27T11:55:07Z
meson: Add a comment to mark the beginning of the configuration data section

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
6ff34204 by Arnaud Rebillout at 2018-12-27T11:55:07Z
meson: Tighter coupling of XOrg dependencies

If `x11-xcb` is found, then let's force other X11 dependencies to be
there as well. That makes things a bit easier, and that's also what is
done in the autotools build system.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
c57b68ef by Arnaud Rebillout at 2018-12-27T11:55:54Z
meson: Make x11 optional, bump meson requirement

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
ce16b373 by Arnaud Rebillout at 2018-12-27T11:55:55Z
meson: Build pax11publish only if X11 is found

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
6b0bad42 by Arnaud Rebillout at 2018-12-27T11:55:55Z
meson: Install start-pulseaudio-x11 if x11 is found

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
b4fe15e0 by Arnaud Rebillout at 2018-12-27T11:55:55Z
meson: Adjust fixme comment for daemon

Man pages are handled in man/meson.build, that's where FIXMEs and TODOs
are now.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
f4a8d438 by Arnaud Rebillout at 2018-12-27T11:55:55Z
meson: Make dbus optional, fix build with dbus disabled

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
14722a90 by Arnaud Rebillout at 2018-12-27T11:55:55Z
module-stream-restore: Silence compiler warnings when dbus is disabled

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
54900beb by Arnaud Rebillout at 2018-12-27T11:55:55Z
meson: Make alsa optional

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
9c4e7211 by Arnaud Rebillout at 2018-12-27T11:55:55Z
meson: Also set HAVE_ALSA when alsa is enabled

Just following the configure file.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
9a0060d2 by Arnaud Rebillout at 2018-12-27T11:55:55Z
meson: Make systemd optional

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
d984da3f by Arnaud Rebillout at 2018-12-27T11:55:55Z
meson: Make avahi optional

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
ab5e5fe5 by Arnaud Rebillout at 2018-12-27T11:55:55Z
meson: Make bluez optional

I can't promise that the logic is *exactly* the same as the logic
currently in use with the autotools, but it seems correct to me.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
edd9c609 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Fix bluez5 version requirement

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
2fea4c7c by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Use assert() to validate the prefix

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
68a86dde by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Make jack optional

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
d9b0c66e by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Make fftw optional

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
911b12c1 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Make lirc optional

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
1286b798 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Make openssl optional, fix build when openssl is disabled

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
fe6d0d38 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Make speex optional

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
912a62c5 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Make udev optional

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
90eec5ab by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Make hal-compat optional

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
7b748483 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Make webrtc optional

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
4b177239 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: adrian-aec requires libm

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
b28c4e9a by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Make Adrian echo canceller optional

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
5a6e45f5 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Add a sanity check regarding echo cancellers

Taken straight out of the configure.ac file.

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
065a79ff by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Add optional GLib support

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
43253934 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Add optional libpulse-mainloop-glib

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
639c5454 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Add optional Gtk+ support

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
35bd2e70 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Add optional GSettings support

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
6eba2f82 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Add optional Async NS support

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
b9a3437a by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Add optional IPv6 support

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
b839d3fb by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Add optional SoX Resampler support

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
104b21f2 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Add optional libsamplerate support

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
8c074194 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Add optional legacy-database-entry-format support

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
1bc16204 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Typo in man/meson.build

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
1501314d by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Display summary and warnings at the end of the meson configure step

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
bf3fbd5a by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Sort the core dependencies a bit

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
12f0e923 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Process and install files: default.pa, system.pa, daemon.conf, client.conf

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
de44c888 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Fix HAVE_AF_UNIX, add check for mkfifo function

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
dec21f36 by Arnaud Rebillout at 2018-12-27T11:55:56Z
meson: Add some platform specific configuration data

Signed-off-by: Arnaud Rebillout <arnaud.rebillout at collabora.com>

- - - - -
a887cee1 by Arun Raghavan at 2018-12-27T12:04:19Z
system.pa: Drop mention of module-hal-detect

We dropped HAL support years ago.

- - - - -
2eb8ec93 by Arun Raghavan at 2018-12-27T12:05:56Z
meson: Fix some config generation warnings

- - - - -


14 changed files:

- man/meson.build
- meson.build
- meson_options.txt
- src/daemon/meson.build
- src/daemon/system.pa.in
- src/meson.build
- src/modules/bluetooth/meson.build
- + src/modules/gsettings/meson.build
- + src/modules/gsettings/post-install.sh
- src/modules/meson.build
- src/modules/module-stream-restore.c
- src/pulse/meson.build
- src/pulsecore/meson.build
- src/utils/meson.build


Changes:

=====================================
man/meson.build
=====================================
@@ -12,7 +12,7 @@ manpages = [
   ['pax11publish', '1'],
   ['pulse-cli-syntax', '5'],
   ['pulse-client.conf', '5'],
-  ['pulse-daemon.conf','5'],
+  ['pulse-daemon.conf', '5'],
   ['pulseaudio', '1'],
   ['start-pulseaudio-x11', '1'],
 ]


=====================================
meson.build
=====================================
@@ -1,6 +1,6 @@
 project('pulseaudio', 'c', 'cpp',
         version : run_command(find_program('git-version-gen'), join_paths(meson.current_source_dir(), '.tarball-version')).stdout().strip(),
-        meson_version : '>= 0.44.0',
+        meson_version : '>= 0.47.0',
         default_options : [ 'c_std=gnu11', 'cpp_std=c++11' ]
         )
 
@@ -28,11 +28,32 @@ soversion = 0
 # current = minor * 100 + micro
 libversion = '@0 at .@1 at .0'.format(soversion, pa_version_minor.to_int() * 100 + pa_version_micro.to_int())
 
+# The ABI-stable GLib adapter for client applications.
+# For the version x:y:z always will hold y=z.
+libpulse_mainloop_glib_version = '0.5.0'
+
+# Paths
+
 prefix = get_option('prefix')
+assert(prefix.startswith('/'), 'Prefix is not absolute: "@0@"'.format(prefix))
+
+bindir = join_paths(prefix, get_option('bindir'))
+libdir = join_paths(prefix, get_option('libdir'))
+libexecdir = join_paths(prefix, get_option('libexecdir'))
 datadir = join_paths(prefix, get_option('datadir'))
 localstatedir = join_paths(prefix, get_option('localstatedir'))
 sysconfdir = join_paths(prefix, get_option('sysconfdir'))
 
+pulselibexecdir = join_paths(libexecdir, 'pulse')
+pulsesysconfdir = join_paths(sysconfdir, 'pulse')
+
+pulsedspdir = get_option('pulsedspdir')
+if pulsedspdir == ''
+  join_paths(libdir, 'pulseaudio')
+endif
+
+# Configuration data
+
 cc = meson.get_compiler('c')
 
 cdata = configuration_data()
@@ -49,12 +70,12 @@ cdata.set_quoted('PA_MACHINE_ID_FALLBACK', join_paths(localstatedir, 'lib', 'dbu
 cdata.set_quoted('PA_SRCDIR', join_paths(meson.current_source_dir(), 'src'))
 cdata.set_quoted('PA_BUILDDIR', meson.current_build_dir())
 cdata.set_quoted('PA_SOEXT', '.so')
-cdata.set_quoted('PA_DEFAULT_CONFIG_DIR', join_paths(sysconfdir, 'pulse'))
-cdata.set_quoted('PA_BINARY', join_paths(prefix, get_option('bindir'), 'pulseaudio'))
+cdata.set_quoted('PA_DEFAULT_CONFIG_DIR', pulsesysconfdir)
+cdata.set_quoted('PA_BINARY', join_paths(bindir, 'pulseaudio'))
 cdata.set_quoted('PA_SYSTEM_RUNTIME_PATH', join_paths(localstatedir, 'run', 'pulse'))
 cdata.set_quoted('PA_SYSTEM_CONFIG_PATH', join_paths(localstatedir, 'lib', 'pulse'))
 cdata.set_quoted('PA_SYSTEM_STATE_PATH', join_paths(localstatedir, 'lib', 'pulse'))
-cdata.set_quoted('PA_DLSEARCHPATH', join_paths(prefix, get_option('libdir'), 'pulse-' + pa_version_major_minor, 'modules'))
+cdata.set_quoted('PA_DLSEARCHPATH', join_paths(libdir, 'pulse-' + pa_version_major_minor, 'modules'))
 cdata.set_quoted('PA_SYSTEM_USER', get_option('system_user'))
 cdata.set_quoted('PA_SYSTEM_GROUP', get_option('system_group'))
 cdata.set_quoted('PA_ACCESS_GROUP', get_option('access_group'))
@@ -63,6 +84,25 @@ cdata.set_quoted('PA_ALSA_PATHS_DIR', join_paths(datadir, 'pulseaudio', 'alsa-mi
 cdata.set_quoted('PA_ALSA_PROFILE_SETS_DIR', join_paths(datadir, 'pulseaudio', 'alsa-mixer', 'profile-sets'))
 cdata.set_quoted('DESKTOPFILEDIR', join_paths(datadir, 'applications'))
 
+# Platform specifics
+# First some defaults to keep config file generation happy
+cdata.set('HAVE_COREAUDIO', 0)
+cdata.set('HAVE_WAVEOUT', 0)
+# FIXME: This was not tested. Maybe some flags should better be CFLAGS,
+# rather than ending up in the config.h file?
+if host_machine.system() == 'darwin'
+  cdata.set('OS_IS_DARWIN', 1)
+  cdata.set('_DARWIN_C_SOURCE', '200112L') # Needed to get NSIG on Mac OS
+elif host_machine.system() == 'windows'
+  cdata.set('OS_IS_WIN32', 1)
+  cdata.set('WIN32_LEAN_AND_MEAN', 1) # Needed to avoid including unnecessary headers on Windows
+#elif host_machine.system() == 'solaris'
+#  # Apparently meson has no solaris support?
+#  # Needed to get declarations for msg_control and msg_controllen on Solaris
+#  cdata.set('_XOPEN_SOURCE', 600)
+#  cdata.set('__EXTENSIONS__', 1)
+endif
+
 # Headers
 
 check_headers = [
@@ -89,7 +129,6 @@ check_headers = [
   'sys/resource.h',
   'sys/select.h',
   'sys/socket.h',
-  'sys/un.h',
   'sys/wait.h',
   'valgrind/memcheck.h',
   'xlocale.h',
@@ -107,6 +146,11 @@ if cc.has_header('pthread.h')
   cdata.set('HAVE_PTHREAD', 1)
 endif
 
+# FIXME: move this to the above set
+if cc.has_header('sys/un.h')
+  cdata.set('HAVE_AF_UNIX', 1)
+endif
+
 # Functions
 
 check_functions = [
@@ -123,6 +167,7 @@ check_functions = [
   'getuid',
   'lstat',
   'memfd_create',
+  'mkfifo',
   'mlock',
   'nanosleep',
   'paccept',
@@ -183,12 +228,6 @@ libm_dep = cc.find_library('m', required : true)
 thread_dep = dependency('threads')
 cap_dep = cc.find_library('cap', required : false)
 
-if get_option('database') == 'tdb'
-  database_dep = dependency('tdb')
-elif get_option('database') == 'gdbm'
-  database_dep = cc.find_library('gdbm', required : true)
-endif
-
 atomictest = '''void func() {
   volatile int atomic = 2;
   __sync_bool_compare_and_swap (&atomic, 2, 3);
@@ -206,30 +245,79 @@ ltdl_dep = cc.find_library('ltdl', required : true)
 #        and do we still want to support this at all?
 cdata.set('DISABLE_LIBTOOL_PRELOAD', 1)
 
-sndfile_dep = dependency('sndfile', version : '>= 1.0.20')
+if get_option('database') == 'tdb'
+  database_dep = dependency('tdb')
+elif get_option('database') == 'gdbm'
+  database_dep = cc.find_library('gdbm', required : true)
+endif
 
-dbus_dep = dependency('dbus-1', version : '>= 1.4.12', required : false)
-if dbus_dep.found()
-  cdata.set('HAVE_DBUS', 1)
+if get_option('ipv6')
+  cdata.set('HAVE_IPV6', 1)
 endif
 
-x11_dep = dependency('x11-xcb', required : false)
-if x11_dep.found()
-  cdata.set('HAVE_X11', 1)
+if get_option('legacy-database-entry-format')
+  cdata.set('ENABLE_LEGACY_DATABASE_ENTRY_FORMAT', 1)
 endif
 
-alsa_dep = dependency('alsa', version : '>= 1.0.24', required : false)
+alsa_dep = dependency('alsa', version : '>= 1.0.24', required : get_option('alsa'))
 if alsa_dep.found()
+  cdata.set('HAVE_ALSA', 1)
   cdata.set('HAVE_ALSA_UCM', 1)
 endif
 
-systemd_dep = dependency('libsystemd', required : false)
+asyncns_dep = dependency('libasyncns', version : '>= 0.1', required : get_option('asyncns'))
+if asyncns_dep.found()
+  cdata.set('HAVE_LIBASYNCNS', 1)
+endif
+
+dbus_dep = dependency('dbus-1', version : '>= 1.4.12', required : get_option('dbus'))
+if dbus_dep.found()
+  cdata.set('HAVE_DBUS', 1)
+endif
+
+gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : get_option('gsettings'))
+if gio_dep.found()
+  cdata.set('HAVE_GSETTINGS', 1)
+endif
+
+glib_dep = dependency('glib-2.0', version : '>= 2.4.0', required: get_option('glib'))
+if glib_dep.found()
+  cdata.set('HAVE_GLIB', 1)
+endif
+
+gtk_dep = dependency('gtk+-3.0', required : get_option('gtk'))
+if gtk_dep.found()
+  cdata.set('HAVE_GTK', 1)
+endif
+
+samplerate_dep = dependency('samplerate', version : '>= 0.1.0', required : get_option('samplerate'))
+if samplerate_dep.found()
+  cdata.set('HAVE_LIBSAMPLERATE', 1)
+endif
+
+sndfile_dep = dependency('sndfile', version : '>= 1.0.20')
+
+soxr_dep = dependency('soxr', version : '>= 0.1.1', required : get_option('soxr'))
+if soxr_dep.found()
+  cdata.set('HAVE_SOXR', 1)
+endif
+
+systemd_dep = dependency('libsystemd', required : get_option('systemd'))
 if systemd_dep.found()
   cdata.set('HAVE_SYSTEMD_DAEMON', 1)
   cdata.set('HAVE_SYSTEMD_LOGIN', 1)
   cdata.set('HAVE_SYSTEMD_JOURNAL', 1)
 endif
 
+x11_dep = dependency('x11-xcb', required : get_option('x11'))
+if x11_dep.found()
+  xcb_dep  = dependency('xcb',  required : true, version : '>= 1.6')
+  ice_dep  = dependency('ice',  required : true)
+  sm_dep   = dependency('sm',   required : true)
+  xtst_dep = dependency('xtst', required : true)
+  cdata.set('HAVE_X11', 1)
+endif
+
 # FIXME: support ORC
 cdata.set('DISABLE_ORC', 1)
 
@@ -238,65 +326,65 @@ cdata.set('DISABLE_ORC', 1)
 if cc.has_header('sys/soundcard.h')
   cdata.set('HAVE_OSS_OUTPUT', 1)
   cdata.set('HAVE_OSS_WRAPPER', 1)
-  cdata.set_quoted('PULSEDSP_LOCATION',	join_paths(prefix, get_option('libdir'), 'pulseaudio'))
+  cdata.set_quoted('PULSEDSP_LOCATION',	pulsedspdir)
 endif
 
-# X11 deps, we don't define any HAVE_XXX for these one
-ice_dep = dependency('ice', required : false)
-sm_dep = dependency('sm', required: false)
-xtst_dep = dependency('xtst', required: false)
+if get_option('hal-compat')
+  cdata.set('HAVE_HAL_COMPAT', 1)
+endif
 
-avahi_dep = dependency('avahi-client', version : '>= 0.6.0', required : false)
+avahi_dep = dependency('avahi-client', version : '>= 0.6.0', required : get_option('avahi'))
 if avahi_dep.found()
   cdata.set('HAVE_AVAHI', 1)
 endif
 
-bluez_dep = dependency('bluez', version : '>= 4.101', required : false)
+bluez_dep = dependency('bluez', version : '>= 5.0', required : get_option('bluez5'))
+sbc_dep = dependency('sbc', version : '>= 1.0', required : false)
 if bluez_dep.found()
-  cdata.set('HAVE_BLUEZ_5_NATIVE_HEADSET', 1)
-  cdata.set('HAVE_BLUEZ_5_OFONO_HEADSET', 1) # TODO This should be optional
-endif
-
-jack_dep = dependency('jack', version : '>= 0.117.0', required : false)
-if jack_dep.found()
-  cdata.set('HAVE_JACK', 1)
+  assert(dbus_dep.found(), 'BlueZ requires D-Bus support')
+  assert(sbc_dep.found(), 'BlueZ requires SBC support')
+  cdata.set('HAVE_SBC', 1)
+  cdata.set('HAVE_BLUEZ', 1)
+  cdata.set('HAVE_BLUEZ_5', 1)
+  if get_option('bluez5-native-headset')
+    cdata.set('HAVE_BLUEZ_5_NATIVE_HEADSET', 1)
+  endif
+  if get_option('bluez5-ofono-headset')
+    cdata.set('HAVE_BLUEZ_5_OFONO_HEADSET', 1)
+  endif
 endif
 
-fftw_dep = dependency('fftw3f', required : false)
+fftw_dep = dependency('fftw3f', required : get_option('fftw'))
 if fftw_dep.found()
   cdata.set('HAVE_FFTW', 1)
 endif
 
-lirc_dep = dependency('lirc', required : false)
+jack_dep = dependency('jack', version : '>= 0.117.0', required : get_option('jack'))
+if jack_dep.found()
+  cdata.set('HAVE_JACK', 1)
+endif
+
+lirc_dep = dependency('lirc', required : get_option('lirc'))
 if lirc_dep.found()
   cdata.set('HAVE_LIRC', 1)
 endif
 
-openssl_dep = dependency('openssl', version : '>= 0.9', required : false)
+openssl_dep = dependency('openssl', version : '>= 0.9', required : get_option('openssl'))
 if openssl_dep.found()
   cdata.set('HAVE_OPENSSL', 1)
 endif
 
-sbc_dep = dependency('sbc', version : '>= 1.0', required : false)
-if sbc_dep.found()
-  cdata.set('HAVE_SBC', 1)
-endif
-if sbc_dep.found() and dbus_dep.found()
-  cdata.set('HAVE_BLUEZ', 1)
-  cdata.set('HAVE_BLUEZ_5', 1)
-endif
-
-speex_dep = dependency('speexdsp', version : '>= 1.2', required : false)
+speex_dep = dependency('speexdsp', version : '>= 1.2', required : get_option('speex'))
 if speex_dep.found()
   cdata.set('HAVE_SPEEX', 1)
 endif
 
-udev_dep = dependency('libudev', version : '>= 143', required : false)
+udev_dep = dependency('libudev', version : '>= 143', required : get_option('udev'))
 if udev_dep.found()
   cdata.set('HAVE_UDEV', 1)
 endif
 
-webrtc_dep = dependency('webrtc-audio-processing', version : '>= 0.2', required : false)
+webrtc_dep = dependency('webrtc-audio-processing', version : '>= 0.2', required : get_option('webrtc-aec'))
 if webrtc_dep.found()
   cdata.set('HAVE_WEBRTC', 1)
 endif
@@ -306,3 +394,120 @@ configure_file(output : 'config.h', configuration : cdata)
 
 subdir('man')
 subdir('src')
+
+############################################################
+
+# Final summary
+
+summary = [
+  '',
+  '---{ @0@ @1@ }---'.format(meson.project_name(), meson.project_version()),
+  '',
+  'prefix:                        @0@'.format(prefix),
+  'bindir:                        @0@'.format(bindir),
+  'libdir:                        @0@'.format(libdir),
+  'libexecdir:                    @0@'.format(libexecdir),
+  'datadir:                       @0@'.format(datadir),
+  'sysconfdir:                    @0@'.format(sysconfdir),
+  'localstatedir:                 @0@'.format(localstatedir),
+#  'modlibexecdir:                 @0@'.format(${modlibexecdir}),
+  'System Runtime Path:           @0@'.format(cdata.get_unquoted('PA_SYSTEM_RUNTIME_PATH')),
+  'System State Path:             @0@'.format(cdata.get_unquoted('PA_SYSTEM_STATE_PATH')),
+  'System Config Path:            @0@'.format(cdata.get_unquoted('PA_SYSTEM_CONFIG_PATH')),
+#  'Zsh completions directory:     @0@'.format(${zshcompletiondir}),
+#  'Bash completions directory:    @0@'.format(${bashcompletiondir}),
+  'Compiler:                      @0@ @1@'.format(cc.get_id(), cc.version()),
+#  'CFLAGS:                        @0@'.format(${CFLAGS}),
+#  'CPPFLAGS:                      @0@'.format(${CPPFLAGS}),
+#  'LIBS:                          @0@'.format(${LIBS}),
+  '',
+  'Enable memfd shared memory:    @0@'.format(cdata.has('HAVE_MEMFD')),
+  'Enable X11:                    @0@'.format(x11_dep.found()),
+#  'Enable OSS Output:             @0@'.format(${ENABLE_OSS_OUTPUT}),
+#  'Enable OSS Wrapper:            @0@'.format(${ENABLE_OSS_WRAPPER}),
+#  'Enable EsounD:                 @0@'.format(${ENABLE_ESOUND}),
+  'Enable Alsa:                   @0@'.format(alsa_dep.found()),
+#  'Enable CoreAudio:              @0@'.format(${ENABLE_COREAUDIO}),
+#  'Enable Solaris:                @0@'.format(${ENABLE_SOLARIS}),
+#  'Enable WaveOut:                @0@'.format(${ENABLE_WAVEOUT}),
+  'Enable GLib 2:                 @0@'.format(glib_dep.found()),
+#  'Enable GConf:                  @0@'.format(${ENABLE_GCONF}),
+  'Enable GSettings:              @0@'.format(gio_dep.found()),
+  'Enable Gtk+ 3:                 @0@'.format(gtk_dep.found()),
+  'Enable Avahi:                  @0@'.format(avahi_dep.found()),
+  'Enable Jack:                   @0@'.format(jack_dep.found()),
+  'Enable Async DNS:              @0@'.format(asyncns_dep.found()),
+  'Enable LIRC:                   @0@'.format(lirc_dep.found()),
+  'Enable D-Bus:                  @0@'.format(dbus_dep.found()),
+  '  Enable BlueZ 5:              @0@'.format(bluez_dep.found()),
+  '    Enable native headsets:    @0@'.format(get_option('bluez5-native-headset')),
+  '    Enable  ofono headsets:    @0@'.format(get_option('bluez5-ofono-headset')),
+  'Enable udev:                   @0@'.format(udev_dep.found()),
+  '  Enable HAL->udev compat:     @0@'.format(get_option('hal-compat')),
+  'Enable systemd:                @0@'.format(systemd_dep.found()),
+#  'Enable TCP Wrappers:           @0@'.format(${ENABLE_TCPWRAP}),
+  'Enable libsamplerate:          @0@'.format(samplerate_dep.found()),
+  'Enable IPv6:                   @0@'.format(get_option('ipv6')),
+  'Enable OpenSSL (for Airtunes): @0@'.format(openssl_dep.found()),
+  'Enable FFTW:                   @0@'.format(fftw_dep.found()),
+#  'Enable orc:                    @0@'.format(${ENABLE_ORC}),
+  'Enable Adrian echo canceller:  @0@'.format(get_option('adrian-aec')),
+  'Enable Speex (resampler, AEC): @0@'.format(speex_dep.found()),
+  'Enable SoXR (resampler):       @0@'.format(soxr_dep.found()),
+  'Enable WebRTC echo canceller:  @0@'.format(webrtc_dep.found()),
+#  'Enable gcov coverage:          @0@'.format(${ENABLE_GCOV}),
+#  'Enable unit tests:             @0@'.format(${ENABLE_TESTS}),
+  '',
+  'Database:                      @0@'.format(get_option('database')),
+  'Legacy Database Entry Support: @0@'.format(get_option('legacy-database-entry-format')),
+  'System User:                   @0@'.format(cdata.get_unquoted('PA_SYSTEM_USER')),
+  'System Group:                  @0@'.format(cdata.get_unquoted('PA_SYSTEM_GROUP')),
+  'Access Group:                  @0@'.format(cdata.get_unquoted('PA_ACCESS_GROUP')),
+#  'Enable per-user EsounD socket: @0@'.format(${ENABLE_PER_USER_ESOUND_SOCKET}),
+#  'Force preopen:                 @0@'.format(${FORCE_PREOPEN}),
+#  'Preopened modules:             @0@'.format(${PREOPEN_MODS}),
+]
+
+message('\n    '.join(summary))
+
+# Sanity checks
+
+if not speex_dep.found() and not webrtc_dep.found() and not get_option('adrian-aec')
+  error('At least one echo canceller implementation must be available!')
+endif
+
+if samplerate_dep.found()
+  warning('Support for libsamplerate is DEPRECATED')
+endif
+
+if host_machine.system() != 'windows'
+  if not dbus_dep.found()
+    message = [
+      'You do not have D-Bus support enabled. It is strongly recommended',
+      'that you enable D-Bus support if your platform supports it.',
+      'Many parts of PulseAudio use D-Bus, from ConsoleKit interaction',
+      'to the Device Reservation Protocol to speak to JACK, Bluetooth',
+      'support and even a native control protocol for communicating and',
+      'controlling the PulseAudio daemon itself.',
+    ]
+    warning('\n' + '\n'.join(message))
+  endif
+  if not udev_dep.found()
+    message = [
+      'You do not have udev support enabled. It is strongly recommended',
+      'that you enable udev support if your platform supports it as it is',
+      'the primary method used to detect hardware audio devices (on Linux)',
+      'and is thus a critical part of PulseAudio on that platform.',
+    ]
+    warning('\n' + '\n'.join(message))
+  endif
+  if not speex_dep.found()
+    message = [
+      'You do not have speex support enabled. It is strongly recommended',
+      'that you enable speex support if your platform supports it as it is',
+      'the primary method used for audio resampling and is thus a critical',
+      'part of PulseAudio on that platform.',
+    ]
+    warning('\n' + '\n'.join(message))
+  endif
+endif


=====================================
meson_options.txt
=====================================
@@ -11,3 +11,87 @@ option('database',
         type : 'combo', value : 'tdb',
         choices : [ 'gdbm', 'tdb', 'simple' ],
         description : 'Database backend')
+option('legacy-database-entry-format',
+       type : 'boolean', value : 'true',
+       description : 'Try to load legacy (< 1.0) database files (card, device and volume restore)')
+option('pulsedspdir',
+       type : 'string',
+       description : 'Specify location where OSS wrapper will be installed')
+
+# Optional features
+
+option('alsa',
+       type : 'feature', value : 'auto',
+       description : 'Optional ALSA support')
+option('asyncns',
+       type : 'feature', value : 'auto',
+       description : 'Optional Async DNS support')
+option('avahi',
+       type : 'feature', value : 'auto',
+       description : 'Optional Avahi support')
+option('bluez5',
+       type : 'feature', value : 'auto',
+       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)')
+option('dbus',
+       type : 'feature', value : 'auto',
+       description : 'Optional D-Bus support')
+option('fftw',
+       type : 'feature', value : 'auto',
+       description : 'Optional FFTW support')
+option('glib',
+       type : 'feature', value : 'auto',
+       description : 'Optional GLib 2 support')
+option('gsettings',
+       type : 'feature', value : 'auto',
+       description : 'Optional GSettings support')
+option('gtk',
+       type : 'feature', value : 'auto',
+       description : 'Optional Gtk+ 3 support')
+option('hal-compat',
+       type : 'boolean',
+       description : 'Optional HAL->udev transition compatibility support (needs udev)')
+option('ipv6',
+       type : 'boolean',
+       description : 'Optional IPv6 support')
+option('jack',
+       type : 'feature', value : 'auto',
+       description : 'Optional JACK support')
+option('lirc',
+       type : 'feature', value : 'auto',
+       description : 'Optional LIRC support')
+option('openssl',
+       type : 'feature', value : 'auto',
+       description : 'Optional OpenSSL support (used for Airtunes/RAOP)')
+option('samplerate',
+       type : 'feature', value : 'disabled',
+       description : 'Optional libsamplerate support (DEPRECATED)')
+option('soxr',
+       type : 'feature', value : 'auto',
+       description : 'Optional SoXR support (resampling)')
+option('speex',
+       type : 'feature', value : 'auto',
+       description : 'Optional Speex support (resampling, AEC)')
+option('systemd',
+       type : 'feature', value : 'auto',
+       description : 'Optional systemd support')
+option('udev',
+       type : 'feature', value : 'auto',
+       description : 'Optional udev support')
+option('x11',
+       type : 'feature', value : 'auto',
+       description : 'Optional X11 support')
+
+# Echo cancellation
+
+option('adrian-aec',
+       type : 'boolean',
+       description : 'Optional Adrian\'s echo canceller')
+option('webrtc-aec',
+       type : 'feature', value : 'auto',
+       description : 'Optional WebRTC-based echo canceller')


=====================================
src/daemon/meson.build
=====================================
@@ -22,7 +22,7 @@ if dbus_dep.found()
   pulseaudio_headers += 'server-lookup.h'
 endif
 
-# FIXME: man pages, dependencies
+# FIXME: dependencies
 executable('pulseaudio',
   pulseaudio_sources,
   pulseaudio_headers,
@@ -32,3 +32,79 @@ executable('pulseaudio',
   dependencies : [ltdl_dep, cap_dep, dbus_dep, systemd_dep],
   c_args : pa_c_args,
 )
+
+if x11_dep.found()
+  conf = configuration_data()
+  conf.set('PACTL_BINARY', join_paths(bindir, 'pactl'))
+
+  configure_file(
+    input : 'start-pulseaudio-x11.in',
+    output : 'start-pulseaudio-x11',
+    configuration : conf,
+    install : true,
+    install_dir : bindir,
+  )
+endif
+
+# Configuration files
+
+m4 = find_program('m4', required: true)
+
+daemon_conf = configuration_data()
+daemon_conf.merge_from(cdata)
+daemon_conf.set('PA_DEFAULT_CONFIG_DIR', cdata.get_unquoted('PA_DEFAULT_CONFIG_DIR'))
+
+daemon_template_file = configure_file(
+  input : 'daemon.conf.in',
+  output : 'daemon.conf.tmp',
+  configuration : daemon_conf,
+)
+
+custom_target('daemon.conf',
+  input : daemon_template_file,
+  output : 'daemon.conf',
+  capture : true,
+  command : [m4, '@INPUT@'],
+  install : true,
+  install_dir : pulsesysconfdir,
+)
+
+default_conf = configuration_data()
+default_conf.merge_from(cdata)
+default_conf.set('PA_BINARY', cdata.get_unquoted('PA_BINARY'))
+default_conf.set('PA_SOEXT', cdata.get_unquoted('PA_SOEXT'))
+
+default_template_file = configure_file(
+  input : 'default.pa.in',
+  output : 'default.pa.tmp',
+  configuration : default_conf,
+)
+
+custom_target('default.pa',
+  input : default_template_file,
+  output : 'default.pa',
+  capture : true,
+  command : [m4, '@INPUT@'],
+  install : true,
+  install_dir : pulsesysconfdir,
+)
+
+system_conf = configuration_data()
+system_conf.merge_from(cdata)
+system_conf.set('PA_BINARY', cdata.get_unquoted('PA_BINARY'))
+system_conf.set('PA_SOEXT', cdata.get_unquoted('PA_SOEXT'))
+
+system_template_file = configure_file(
+  input : 'system.pa.in',
+  output : 'system.pa.tmp',
+  configuration : system_conf,
+)
+
+custom_target('system.pa',
+  input : system_template_file,
+  output : 'system.pa',
+  capture : true,
+  command : [m4, '@INPUT@'],
+  install : true,
+  install_dir : pulsesysconfdir,
+)


=====================================
src/daemon/system.pa.in
=====================================
@@ -29,10 +29,6 @@ ifelse(@HAVE_UDEV@, 1, [dnl
 .ifexists module-udev-detect at PA_SOEXT@
 load-module module-udev-detect
 .else
-], @HAVE_HAL@, 1, [dnl
-.ifexists module-hal-detect at PA_SOEXT@
-load-module module-hal-detect
-.else
 ], @HAVE_COREAUDIO@, 1, [dnl
 .ifexists module-coreaudio-detect at PA_SOEXT@
 load-module module-coreaudio-detect


=====================================
src/meson.build
=====================================
@@ -182,7 +182,7 @@ libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor,
   include_directories : [configinc, topinc],
   c_args : [pa_c_args],
   install : true,
-  dependencies : [libm_dep, thread_dep, shm_dep, sndfile_dep, dbus_dep, x11_dep, systemd_dep],
+  dependencies : [libm_dep, thread_dep, shm_dep, sndfile_dep, dbus_dep, x11_dep, systemd_dep, glib_dep, gtk_dep, asyncns_dep],
   implicit_include_directories : false)
 
 libpulsecommon_dep = declare_dependency(link_with: libpulsecommon)


=====================================
src/modules/bluetooth/meson.build
=====================================
@@ -8,12 +8,13 @@ libbluez5_util_headers = [
   'rtp.h',
 ]
 
-if bluez_dep.found()
+if get_option('bluez5-native-headset')
   libbluez5_util_sources += [ 'backend-native.c' ]
 endif
 
-# TODO This should be optional
-libbluez5_util_sources += [ 'backend-ofono.c' ]
+if get_option('bluez5-ofono-headset')
+  libbluez5_util_sources += [ 'backend-ofono.c' ]
+endif
 
 libbluez5_util = shared_library('libbluez5_util',
   libbluez5_util_sources,


=====================================
src/modules/gsettings/meson.build
=====================================
@@ -0,0 +1,37 @@
+# GSettings helper
+
+gsettings_helper_sources = [
+  'gsettings-helper.c',
+]
+
+gsettings_helper = executable('gsettings-helper',
+  gsettings_helper_sources,
+  c_args : pa_c_args,
+  include_directories : [configinc, topinc],
+  link_with : [libpulsecommon, libpulse],
+  dependencies : [gio_dep],
+  install_dir : pulselibexecdir,
+  install : true,
+)
+
+# GSettings schemas
+
+compile_schemas = find_program('glib-compile-schemas', required : false)
+if compile_schemas.found()
+  test('Validate schema files in ' + meson.current_source_dir(),
+    compile_schemas,
+    args: ['--strict', '--dry-run', meson.current_source_dir()]
+  )
+endif
+
+install_data('org.freedesktop.pulseaudio.gschema.xml',
+  install_dir : join_paths(datadir, 'glib-2.0', 'schemas')
+)
+
+meson.add_install_script('post-install.sh', datadir)
+
+# Conversion from GConf to GSettings
+
+install_data('pulseaudio.convert',
+  install_dir : join_paths(datadir, 'GConf', 'gsettings')
+)


=====================================
src/modules/gsettings/post-install.sh
=====================================
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+set -u
+
+DATADIR="$1"
+
+echo "Compiling GSettings schemas..."
+glib-compile-schemas "$DATADIR/glib-2.0/schemas"


=====================================
src/modules/meson.build
=====================================
@@ -1,6 +1,4 @@
-# Order matters! raop needs rtp!
 subdir('rtp')
-subdir('raop')
 
 # module name, sources, [headers, extra flags, extra deps, extra libs]
 all_modules = [
@@ -15,7 +13,6 @@ all_modules = [
   [ 'module-cli-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_CLI', '-DUSE_UNIX_SOCKETS'], [], libprotocol_cli ],
   [ 'module-combine', 'module-combine.c' ],
   [ 'module-combine-sink', 'module-combine-sink.c' ],
-  [ 'module-console-kit', 'module-console-kit.c', [], [], [dbus_dep] ],
 #  [ 'module-coreaudio-detect', 'macosx/module-coreaudio-detect.c' ],
 #  [ 'module-coreaudio-device', 'macosx/module-coreaudio-device.c' ],
   [ 'module-default-device-restore', 'module-default-device-restore.c', [], [], [], libprotocol_native ],
@@ -30,12 +27,10 @@ all_modules = [
   [ 'module-filter-apply', 'module-filter-apply.c' ],
   [ 'module-filter-heuristics', 'module-filter-heuristics.c' ],
 #  [ 'module-gconf', 'gconf/module-gconf.c' ],
-  [ 'module-hal-detect', 'module-hal-detect-compat.c' ],
   [ 'module-http-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_HTTP', '-DUSE_TCP_SOCKETS'], [], libprotocol_http ],
   [ 'module-http-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_HTTP', '-DUSE_UNIX_SOCKETS'], [], libprotocol_http ],
   [ 'module-intended-roles', 'module-intended-roles.c' ],
-  [ 'module-jackdbus-detect', 'jack/module-jackdbus-detect.c', [], [], [dbus_dep] ],
-  [ 'module-ladspa-sink', 'module-ladspa-sink.c', 'ladspa.h', ['-DLADSPA_PATH="' + join_paths(prefix, get_option('libdir')) + '/ladspa:/usr/local/lib/ladspa:/usr/lib/ladspa:/usr/local/lib64/ladspa:/usr/lib64/ladspa"'], [dbus_dep, libm_dep, ltdl_dep] ],
+  [ 'module-ladspa-sink', 'module-ladspa-sink.c', 'ladspa.h', ['-DLADSPA_PATH="' + libdir + '/ladspa:/usr/local/lib/ladspa:/usr/lib/ladspa:/usr/local/lib64/ladspa:/usr/lib64/ladspa"'], [dbus_dep, libm_dep, ltdl_dep] ],
   [ 'module-loopback', 'module-loopback.c' ],
   [ 'module-match', 'module-match.c' ],
   [ 'module-native-protocol-fd', 'module-native-protocol-fd.c', [], [], [], libprotocol_native ],
@@ -53,7 +48,6 @@ all_modules = [
   [ 'module-role-ducking', ['module-role-ducking.c', 'stream-interaction.c'], 'stream-interaction.h' ],
   [ 'module-rtp-recv', 'rtp/module-rtp-recv.c', [], [], [], librtp ],
   [ 'module-rtp-send', 'rtp/module-rtp-send.c' , [], [], [], librtp ],
-  [ 'module-rygel-media-server', 'module-rygel-media-server.c', [], [], [dbus_dep], libprotocol_http ],
   [ 'module-simple-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_SIMPLE', '-DUSE_TCP_SOCKETS'], [], libprotocol_simple ],
   [ 'module-simple-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_SIMPLE', '-DUSE_UNIX_SOCKETS'], [], libprotocol_simple ],
   [ 'module-sine', 'module-sine.c' ],
@@ -106,8 +100,19 @@ if avahi_dep.found()
   ]
 endif
 
+if bluez_dep.found()
+  subdir('bluetooth')
+  all_modules += [
+    [ 'module-bluetooth-discover', 'bluetooth/module-bluetooth-discover.c' ],
+    [ 'module-bluetooth-policy', 'bluetooth/module-bluetooth-policy.c', [], [], [dbus_dep] ],
+    [ 'module-bluez5-device', 'bluetooth/module-bluez5-device.c', [], [], [sbc_dep], libbluez5_util ],
+    [ 'module-bluez5-discover', 'bluetooth/module-bluez5-discover.c', [], [], [dbus_dep], libbluez5_util ],
+  ]
+endif
+
 if dbus_dep.found()
   all_modules += [
+    [ 'module-console-kit', 'module-console-kit.c', [], [], [dbus_dep] ],
     [ 'module-dbus-protocol',
       [ 'dbus/iface-card.c', 'dbus/iface-card.h',
 	'dbus/iface-card-profile.c', 'dbus/iface-card-profile.h',
@@ -121,27 +126,23 @@ if dbus_dep.found()
 	'dbus/iface-stream.c', 'dbus/iface-stream.h',
 	'dbus/module-dbus-protocol.c',
       ],
-      [], [], [dbus_dep] ]
+      [], [], [dbus_dep] ],
+    [ 'module-rygel-media-server', 'module-rygel-media-server.c', [], [], [dbus_dep], libprotocol_http ],
   ]
 endif
 
-if dbus_dep.found() and sbc_dep.found()
+if dbus_dep.found() and fftw_dep.found()
   all_modules += [
-    [ 'module-bluetooth-discover', 'bluetooth/module-bluetooth-discover.c' ],
-    [ 'module-bluetooth-policy', 'bluetooth/module-bluetooth-policy.c', [], [], [dbus_dep] ]
+    [ 'module-equalizer-sink', 'module-equalizer-sink.c', [], [], [dbus_dep, fftw_dep, libm_dep] ],
   ]
-  if bluez_dep.found()
-    subdir('bluetooth')
-    all_modules += [
-      [ 'module-bluez5-device', 'bluetooth/module-bluez5-device.c', [], [], [sbc_dep], libbluez5_util ],
-      [ 'module-bluez5-discover', 'bluetooth/module-bluez5-discover.c', [], [], [dbus_dep], libbluez5_util ],
-    ]
-  endif
 endif
 
-if fftw_dep.found()
+if gio_dep.found()
+  subdir('gsettings')
   all_modules += [
-    [ 'module-equalizer-sink', 'module-equalizer-sink.c', [], [], [dbus_dep, fftw_dep, libm_dep] ],
+    [ 'module-gsettings',
+      [ 'gsettings/module-gsettings.c', 'stdin-util.c', 'stdin-util.h' ],
+      [], ['-DPA_GSETTINGS_HELPER="' + pulselibexecdir + 'gsettings-helper"'] ]
   ]
 endif
 
@@ -150,6 +151,11 @@ if jack_dep.found()
     [ 'module-jack-sink', 'jack/module-jack-sink.c', [], [], [jack_dep] ],
     [ 'module-jack-source', 'jack/module-jack-source.c', [], [], [jack_dep] ],
   ]
+  if dbus_dep.found()
+    all_modules += [
+      [ 'module-jackdbus-detect', 'jack/module-jackdbus-detect.c', [], [], [dbus_dep] ],
+    ]
+  endif
 endif
 
 if lirc_dep.found()
@@ -159,6 +165,7 @@ if lirc_dep.found()
 endif
 
 if openssl_dep.found()
+  subdir('raop')
   all_modules += [
     [ 'module-raop-sink', 'raop/module-raop-sink.c', [], [], [], libraop ],
   ]
@@ -177,23 +184,18 @@ endif
 
 if udev_dep.found()
   all_modules += [ [ 'module-udev-detect', 'module-udev-detect.c', [], [], [udev_dep] ] ]
+  if get_option('hal-compat')
+    all_modules += [ [ 'module-hal-detect', 'module-hal-detect-compat.c' ] ]
+  endif
 endif
 
 if x11_dep.found()
   all_modules += [
     [ 'module-x11-bell', 'x11/module-x11-bell.c', [], [], [x11_dep] ],
+    [ 'module-x11-cork-request', 'x11/module-x11-cork-request.c', [], [], [x11_dep, xtst_dep] ],
     [ 'module-x11-publish', 'x11/module-x11-publish.c', [], [], [x11_dep], libprotocol_native ],
+    [ 'module-x11-xsmp', 'x11/module-x11-xsmp.c', [], [], [x11_dep, ice_dep, sm_dep] ],
   ]
-  if xtst_dep.found()
-    all_modules += [
-      [ 'module-x11-cork-request', 'x11/module-x11-cork-request.c', [], [], [x11_dep, xtst_dep] ],
-    ]
-  endif
-  if ice_dep.found() and sm_dep.found()
-    all_modules += [
-      [ 'module-x11-xsmp', 'x11/module-x11-xsmp.c', [], [], [x11_dep, ice_dep, sm_dep] ],
-    ]
-  endif
 endif
 
 # Module echo-cancel is quite modular itself and requires a section of its own
@@ -207,12 +209,14 @@ module_echo_cancel_flags = []
 module_echo_cancel_deps = []
 module_echo_cancel_libs = []
 
-# FIXME: Adrian support should be optional
-module_echo_cancel_sources += [
-  'echo-cancel/adrian.c', 'echo-cancel/adrian.h',
-  'echo-cancel/adrian-aec.c', 'echo-cancel/adrian-aec.h',
-]
-module_echo_cancel_flags += ['-DHAVE_ADRIAN_EC=1']
+if get_option('adrian-aec')
+  module_echo_cancel_sources += [
+    'echo-cancel/adrian.c', 'echo-cancel/adrian.h',
+    'echo-cancel/adrian-aec.c', 'echo-cancel/adrian-aec.h',
+  ]
+  module_echo_cancel_flags += ['-DHAVE_ADRIAN_EC=1']
+  module_echo_cancel_deps = [libm_dep]
+endif
 
 # FIXME: support ORC (depends on Adrian)
 #ORC_SOURCE += modules/echo-cancel/adrian-aec


=====================================
src/modules/module-stream-restore.c
=====================================
@@ -1415,6 +1415,11 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3
         if (mute_updated)
             send_mute_updated_signal(de, entry);
     }
+#else
+    /* Silence compiler warnings */
+    (void) device_updated;
+    (void) volume_updated;
+    (void) mute_updated;
 #endif
 
     entry_free(entry);


=====================================
src/pulse/meson.build
=====================================
@@ -61,6 +61,10 @@ libpulse_headers = [
   'xmalloc.h',
 ]
 
+if glib_dep.found()
+  libpulse_headers += 'glib-mainloop.h'
+endif
+
 libpulse = shared_library('pulse',
   libpulse_sources,
   libpulse_headers,
@@ -73,3 +77,28 @@ libpulse = shared_library('pulse',
   implicit_include_directories : false)
 
 libpulse_dep = declare_dependency(link_with: libpulse)
+
+if glib_dep.found()
+  # TODO we must install libpulse-mainloop-glib.pc
+  libpulse_mainloop_glib = shared_library('pulse-mainloop-glib',
+    'glib-mainloop.c',
+    'glib-mainloop.h',
+    version : libpulse_mainloop_glib_version,
+    c_args : [pa_c_args],
+    include_directories : [configinc, topinc],
+    dependencies : [libpulse_dep, libpulsecommon_dep, glib_dep],
+    install : true,
+  )
+endif
+
+# Configuration files
+
+client_conf = configuration_data()
+client_conf.set('PA_BINARY', cdata.get_unquoted('PA_BINARY'))
+
+client_conf_file = configure_file(
+  input : 'client.conf.in',
+  output : 'client.conf',
+  configuration : client_conf,
+  install_dir : pulsesysconfdir,
+)


=====================================
src/pulsecore/meson.build
=====================================
@@ -126,6 +126,14 @@ if dbus_dep.found()
   ]
 endif
 
+if samplerate_dep.found()
+  libpulsecore_sources += ['resampler/libsamplerate.c']
+endif
+
+if soxr_dep.found()
+  libpulsecore_sources += ['resampler/soxr.c']
+endif
+
 if speex_dep.found()
   libpulsecore_sources += ['resampler/speex.c']
 endif
@@ -163,7 +171,7 @@ libpulsecore = shared_library('pulsecore-' + pa_version_major_minor,
   c_args : [pa_c_args, server_c_args],
   install : true,
   link_with : libpulsecore_simd_lib,
-  dependencies : [libm_dep, libpulsecommon_dep, libpulse_dep, ltdl_dep, shm_dep, sndfile_dep, database_dep, dbus_dep, speex_dep, x11_dep],
+  dependencies : [libm_dep, libpulsecommon_dep, libpulse_dep, ltdl_dep, shm_dep, sndfile_dep, database_dep, dbus_dep, samplerate_dep, soxr_dep, speex_dep, x11_dep],
   implicit_include_directories : false)
 
 libpulsecore_dep = declare_dependency(link_with: libpulsecore)


=====================================
src/utils/meson.build
=====================================
@@ -48,18 +48,20 @@ executable('pacmd',
   c_args : pa_c_args,
 )
 
-pax11publish_sources = [
-  'pax11publish.c',
-]
+if x11_dep.found()
+  pax11publish_sources = [
+    'pax11publish.c',
+  ]
 
-executable('pax11publish',
-  pax11publish_sources,
-  install: true,
-  include_directories : [configinc, topinc],
-  link_with : [libpulsecommon, libpulse],
-  dependencies : [x11_dep],
-  c_args : pa_c_args,
-)
+  executable('pax11publish',
+    pax11publish_sources,
+    install: true,
+    include_directories : [configinc, topinc],
+    link_with : [libpulsecommon, libpulse],
+    dependencies : [x11_dep],
+    c_args : pa_c_args,
+  )
+endif
 
 if cc.has_header('sys/soundcard.h')
   libpulsecommon_sources = [
@@ -69,6 +71,7 @@ if cc.has_header('sys/soundcard.h')
   libpulsedsp = shared_library('pulsedsp',
     libpulsecommon_sources,
     install: true,
+    install_dir : pulsedspdir,
     include_directories : [configinc, topinc],
     link_with : [libpulsecommon, libpulse],
     link_args : ['-ldl'],
@@ -81,6 +84,6 @@ if cc.has_header('sys/soundcard.h')
     output : 'padsp',
     configuration : cdata,
     install : true,
-    install_dir : join_paths(prefix, get_option('bindir')),
+    install_dir : bindir,
   )
 endif



View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/compare/adef9a442196a9b5ad6da16f7a88419ab1a4cac8...2eb8ec93a2ad79cffe3371867e1a8951e65fed82

-- 
View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/compare/adef9a442196a9b5ad6da16f7a88419ab1a4cac8...2eb8ec93a2ad79cffe3371867e1a8951e65fed82
You're receiving this email because of your account on gitlab.freedesktop.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-commits/attachments/20181227/3bcf313a/attachment-0001.html>


More information about the pulseaudio-commits mailing list