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.
299 lines
9.1 KiB
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
|
|
|