[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