You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/media-sound/pulseaudio-daemon/files/15.0-daemon-only.patch

299 lines
9.1 KiB

From f4f28cc436a506d1dfbd514968b2976ab31cdf5f Mon Sep 17 00:00:00 2001
From: Mart Raudsepp <mart@leio.tech>
Date: Fri, 24 Sep 2021 15:19:05 +0300
Subject: [PATCH] build-sys: meson: Allow building the daemon only
---
man/meson.build | 2 ++
meson.build | 23 ++++++++++++++++++++---
meson_options.txt | 3 +++
po/meson.build | 3 ---
shell-completion/bash/meson.build | 2 ++
src/daemon/meson.build | 4 ++--
src/meson.build | 11 +++++++++++
src/modules/gsettings/meson.build | 3 +--
src/tests/meson.build | 9 +++++++--
src/utils/meson.build | 10 ++++++----
10 files changed, 54 insertions(+), 16 deletions(-)
diff --git a/man/meson.build b/man/meson.build
index 31c581a8f..c12ad5e6a 100644
--- a/man/meson.build
+++ b/man/meson.build
@@ -14,6 +14,7 @@ if get_option('daemon')
]
endif
+if not get_option('daemon-only')
manpages += [
['pacat', '1', ['paplay', 'parec', 'parecord', 'pamon']],
['pactl', '1'],
@@ -31,6 +32,7 @@ if x11_dep.found()
['pax11publish', '1'],
]
endif
+endif
# FIXME: Add esdcompat if HAVE_ESOUND
#manpages += ['esdcompat', '1'],
diff --git a/meson.build b/meson.build
index 63ed62342..420cc6fac 100644
--- a/meson.build
+++ b/meson.build
@@ -53,6 +53,8 @@ libpulse_mainloop_glib_version = '@0@.@1@.@2@'.format(
libpulse_mainloop_glib_version_info[1],
)
+i18n = import('i18n')
+
# Paths
prefix = get_option('prefix')
@@ -68,6 +70,7 @@ localedir = join_paths(prefix, get_option('localedir'))
localstatedir = join_paths(prefix, get_option('localstatedir'))
sysconfdir = join_paths(prefix, get_option('sysconfdir'))
privlibdir = join_paths(libdir, 'pulseaudio')
+po_dir = join_paths(meson.current_source_dir(), 'po')
if host_machine.system() == 'windows'
# Windows only supports loading libraries from the same dir as the executable
@@ -796,20 +799,28 @@ check_dep = dependency('check', version : '>= 0.9.10', required : get_option('te
if get_option('doxygen')
subdir('doxygen')
endif
-subdir('po')
+if not get_option('daemon-only')
+ subdir('po')
+endif
if get_option('man')
subdir('man')
endif
subdir('shell-completion/bash')
-subdir('shell-completion/zsh')
+if not get_option('daemon-only')
+ subdir('shell-completion/zsh')
+endif
subdir('src')
-subdir('vala')
+if not get_option('daemon-only')
+ subdir('vala')
+endif
# Now generate config.h from everything above
configure_file(output : 'config.h', configuration : cdata)
# pkg-config files
+if not get_option('daemon-only')
+
pc_cdata = configuration_data()
pc_cdata.set('prefix', prefix)
@@ -842,8 +853,12 @@ foreach file : pc_files
install_dir : pkgconfigdir)
endforeach
+endif # !daemon-only
+
# CMake files
+if not get_option('daemon-only')
+
m4 = find_program('m4', required: true)
cmakedir = join_paths(libdir, 'cmake', 'PulseAudio')
@@ -872,6 +887,8 @@ configure_file(
install_dir : cmakedir,
)
+endif # !daemon-only
+
############################################################
# Final summary
diff --git a/meson_options.txt b/meson_options.txt
index bb41a42a7..62828ac5c 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,6 +1,9 @@
option('daemon',
type : 'boolean', value : true,
description : 'Enable building and installation of pulseaudio daemon and supporting configuration files')
+option('daemon-only',
+ type : 'boolean', value : false,
+ description : 'Build and install only the pulseaudio daemon and supporting configuration files, relying on a system installation of libpulse')
option('doxygen',
type : 'boolean', value : true,
description : 'Enable building and installation of documentation generated with doxygen')
diff --git a/po/meson.build b/po/meson.build
index 34278db47..33429373c 100644
--- a/po/meson.build
+++ b/po/meson.build
@@ -1,4 +1,3 @@
-i18n = import('i18n')
i18n.gettext(
meson.project_name(),
preset: 'glib',
@@ -7,5 +6,3 @@ i18n.gettext(
args: ['--msgid-bugs-address=https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/new',
'--width=90'],
)
-
-po_dir = meson.current_source_dir()
diff --git a/shell-completion/bash/meson.build b/shell-completion/bash/meson.build
index 3ba5cb16f..83d90b94b 100644
--- a/shell-completion/bash/meson.build
+++ b/shell-completion/bash/meson.build
@@ -8,6 +8,7 @@ if bashcompletiondir != 'no'
]
endif
+ if not get_option('daemon-only')
aliases += [
'pacat',
'pactl',
@@ -16,6 +17,7 @@ if bashcompletiondir != 'no'
'parec',
'parecord',
]
+ endif
install_data('pulseaudio', install_dir : bashcompletiondir)
diff --git a/src/daemon/meson.build b/src/daemon/meson.build
index 262e193b2..e8f70a453 100644
--- a/src/daemon/meson.build
+++ b/src/daemon/meson.build
@@ -30,8 +30,8 @@ executable('pulseaudio',
install_rpath : privlibdir,
include_directories : [configinc, topinc],
link_args : ['-ffast-math'],
- link_with : [libpulsecore, libpulsecommon, libpulse],
- dependencies : [ltdl_dep, cap_dep, dbus_dep, libsystemd_dep, dl_dep, libintl_dep, platform_dep, platform_socket_dep],
+ link_with : [libpulsecore],
+ dependencies : [ltdl_dep, cap_dep, dbus_dep, libsystemd_dep, dl_dep, libintl_dep, platform_dep, platform_socket_dep, libpulsecommon_dep, libpulse_dep],
c_args : pa_c_args,
)
diff --git a/src/meson.build b/src/meson.build
index e2860811b..a56667271 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -188,6 +188,15 @@ else
endif
# FIXME: Do SIMD things
+if get_option('daemon-only')
+ libpulsecommon_dep = cc.find_library('pulsecommon-' + pa_version_major_minor, dirs : privlibdir, required : true)
+ libpulse_dep = dependency('libpulse', required : true)
+ libpulse_simple_dep = dependency('libpulse-simple', required : true)
+ if glib_dep.found()
+ libpulse_mainloop_glib_dep = dependency('libpulse-mainloop-glib', required : true)
+ endif
+else
+
libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor,
libpulsecommon_sources,
libpulsecommon_headers,
@@ -207,6 +216,8 @@ libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor,
libpulsecommon_dep = declare_dependency(link_with: libpulsecommon)
subdir('pulse')
+endif
+
if get_option('daemon')
subdir('pulsecore')
subdir('daemon')
diff --git a/src/modules/gsettings/meson.build b/src/modules/gsettings/meson.build
index 68a72c3ff..9604699e7 100644
--- a/src/modules/gsettings/meson.build
+++ b/src/modules/gsettings/meson.build
@@ -8,8 +8,7 @@ gsettings_helper = executable('gsettings-helper',
gsettings_helper_sources,
c_args : pa_c_args,
include_directories : [configinc, topinc],
- link_with : [libpulsecommon, libpulse],
- dependencies : [gio_dep],
+ dependencies : [gio_dep, libpulsecommon_dep, libpulse_dep],
install_dir : pulselibexecdir,
install_rpath : privlibdir,
install : true,
diff --git a/src/tests/meson.build b/src/tests/meson.build
index acd301037..56d71299f 100644
--- a/src/tests/meson.build
+++ b/src/tests/meson.build
@@ -20,8 +20,6 @@ default_tests += [
[ check_dep, libpulse_dep, libpulsecommon_dep ] ],
[ 'json-test', 'json-test.c',
[ check_dep, libpulse_dep, libpulsecommon_dep ] ],
- [ 'mainloop-test', 'mainloop-test.c',
- [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
[ 'proplist-test', 'proplist-test.c',
[ check_dep, libpulse_dep, libpulsecommon_dep ] ],
[ 'thread-mainloop-test', 'thread-mainloop-test.c',
@@ -32,6 +30,13 @@ default_tests += [
[ check_dep, libm_dep, libpulse_dep, libpulsecommon_dep ] ],
]
+if not get_option('daemon-only')
+ default_tests += [
+ [ 'mainloop-test', 'mainloop-test.c',
+ [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
+ ]
+endif
+
if get_option('daemon')
default_tests += [
[ 'asyncmsgq-test', 'asyncmsgq-test.c',
diff --git a/src/utils/meson.build b/src/utils/meson.build
index c9635fdb6..7ed6e738f 100644
--- a/src/utils/meson.build
+++ b/src/utils/meson.build
@@ -1,3 +1,4 @@
+if not get_option('daemon-only')
pacat_sources = [
'pacat.c',
]
@@ -41,6 +42,7 @@ executable('pactl',
dependencies : [sndfile_dep, libintl_dep],
c_args : pa_c_args,
)
+endif
if get_option('daemon')
if host_machine.system() != 'windows'
@@ -53,8 +55,7 @@ if get_option('daemon')
install: true,
install_rpath : privlibdir,
include_directories : [configinc, topinc],
- link_with : [libpulsecommon, libpulse],
- dependencies: [libintl_dep],
+ dependencies: [libintl_dep, libpulsecommon_dep, libpulse_dep],
c_args : pa_c_args,
)
@@ -67,13 +68,13 @@ if get_option('daemon')
install: true,
install_rpath : privlibdir,
include_directories : [configinc, topinc],
- link_with : [libpulsecommon, libpulse],
- dependencies: [libintl_dep],
+ dependencies: [libintl_dep, libpulsecommon_dep, libpulse_dep],
c_args : pa_c_args,
)
endif
endif
+if not get_option('daemon-only')
if x11_dep.found()
pax11publish_sources = [
'pax11publish.c',
@@ -121,3 +122,4 @@ if dbus_dep.found() and fftw_dep.found()
endif
install_data('pa-info', install_dir : bindir)
+endif
--
2.32.0