[pulseaudio-discuss] [PATCH] Port to meson
Jan Tojnar
jtojnar at gmail.com
Sun Jul 8 02:46:48 UTC 2018
---
doc/README.html.in | 8 +++----
doc/html2txt | 2 ++
doc/meson.build | 25 ++++++++++++++++++++
meson.build | 52 ++++++++++++++++++++++++++++++++++++++++++
meson_options.txt | 1 +
po/meson.build | 4 ++++
src/meson.build | 33 +++++++++++++++++++++++++++
src/paprefs.desktop.in | 6 ++---
8 files changed, 124 insertions(+), 7 deletions(-)
create mode 100755 doc/html2txt
create mode 100644 doc/meson.build
create mode 100644 meson.build
create mode 100644 meson_options.txt
create mode 100644 po/meson.build
create mode 100644 src/meson.build
diff --git a/doc/README.html.in b/doc/README.html.in
index 1e0c0fb..4a8051a 100644
--- a/doc/README.html.in
+++ b/doc/README.html.in
@@ -95,10 +95,10 @@ module <tt>module-gsettings</tt> must be loaded in the daemon.</p>
<h2><a name="installation">Installation</a></h2>
-<p>As this package is made with the GNU autotools you should run
-<tt>./configure</tt> inside the distribution directory for configuring
-the source tree. After that you should run <tt>make</tt> for
-compilation and <tt>make install</tt> (as root) for installation of
+<p>As this package is made with the Meson you should run
+<tt>meson build</tt> inside the distribution directory for configuring
+the source tree. After that you should run <tt>ninja -C build</tt> for
+compilation and <tt>ninja install</tt> (as root) for installation of
<tt>paprefs</tt>.</p>
<h2><a name="acks">Acknowledgements</a></h2>
diff --git a/doc/html2txt b/doc/html2txt
new file mode 100755
index 0000000..63e5a20
--- /dev/null
+++ b/doc/html2txt
@@ -0,0 +1,2 @@
+#!/bin/sh
+lynx --dump $1 | sed 's,file://localhost/.*/doc/README.html,README,'
diff --git a/doc/meson.build b/doc/meson.build
new file mode 100644
index 0000000..531cf3b
--- /dev/null
+++ b/doc/meson.build
@@ -0,0 +1,25 @@
+doc_conf = configuration_data()
+doc_conf.set('PACKAGE_VERSION', meson.project_version())
+doc_conf.set('PACKAGE_BUGREPORT', mailing_list)
+doc_conf.set('PACKAGE_URL', homepage)
+
+readme_html = configure_file(
+ input: 'README.html.in',
+ output: 'README.html',
+ configuration: doc_conf,
+)
+
+if tidy.found()
+ test('XHTML documentation uses correct mark-up', tidy, args: ['-e', readme_html])
+endif
+
+if with_lynx
+ custom_target(
+ 'README',
+ input: readme_html,
+ output: 'README',
+ command: [find_program('./html2txt'), '@INPUT@'],
+ capture: true,
+ build_by_default: true,
+ )
+endif
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..d2d002e
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,52 @@
+project('paprefs', 'cpp',
+ license: 'GPL2+',
+ version: '0.9.10',
+ meson_version: '>=0.40.1'
+)
+
+mailing_list = 'pulseaudio-discuss (at) lists (dot) freedesktop (dot) org'
+homepage = 'http://freedesktop.org/software/pulseaudio/paprefs/'
+
+with_lynx = get_option('lynx')
+
+i18n = import('i18n')
+
+gtkmm = dependency('gtkmm-3.0')
+giomm = dependency('giomm-2.4', version: '>= 2.26')
+sigc = dependency('sigc++-2.0')
+dbus_glib = dependency('dbus-glib-1')
+libpulse = dependency('libpulse')
+
+lynx = find_program('lynx', required: with_lynx)
+tidy = find_program('tidy', required: false)
+
+prefix = get_option('prefix')
+bindir = join_paths(prefix, get_option('bindir'))
+localedir = join_paths(prefix, get_option('localedir'))
+datadir = join_paths(prefix, get_option('datadir'))
+pkgdatadir = join_paths(datadir, meson.project_name())
+
+conf = configuration_data()
+
+conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
+conf.set_quoted('GLADE_FILE', join_paths(pkgdatadir, 'paprefs.glade'))
+conf.set_quoted('LOCALEDIR', localedir)
+conf.set_quoted('MODDIR', libpulse.get_pkgconfig_variable('modlibexecdir'))
+# Needs fixing on some borked OS
+conf.set_quoted('SHREXT', '.so')
+
+configure_file(
+ output : 'config.h',
+ configuration : conf
+)
+
+common_flags = [
+ '-DHAVE_CONFIG_H',
+]
+add_project_arguments(common_flags, language: 'cpp')
+
+configuration_inc = include_directories('.')
+
+subdir('src')
+subdir('po')
+subdir('doc')
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..a4a9ce8
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1 @@
+option('lynx', type: 'boolean', value: false, description: 'enable documentation generation (using lynx)')
diff --git a/po/meson.build b/po/meson.build
new file mode 100644
index 0000000..2611f29
--- /dev/null
+++ b/po/meson.build
@@ -0,0 +1,4 @@
+i18n.gettext(
+ meson.project_name(),
+ preset: 'glib',
+ )
diff --git a/src/meson.build b/src/meson.build
new file mode 100644
index 0000000..54740eb
--- /dev/null
+++ b/src/meson.build
@@ -0,0 +1,33 @@
+paprefs_sources = [
+ 'paprefs.cc',
+]
+
+paprefs_dependencies = [
+ giomm,
+ gtkmm,
+ sigc,
+ dbus_glib,
+ libpulse,
+]
+
+executable(
+ 'paprefs',
+ paprefs_sources,
+ include_directories: configuration_inc,
+ dependencies: paprefs_dependencies,
+ install: true,
+)
+
+desktop_file = i18n.merge_file(
+ input: 'paprefs.desktop.in',
+ output: 'paprefs.desktop',
+ type: 'desktop',
+ po_dir: '../po',
+ install: true,
+ install_dir: join_paths(datadir, 'applications'),
+)
+
+install_data(
+ 'paprefs.glade',
+ install_dir: join_paths(pkgdatadir),
+)
diff --git a/src/paprefs.desktop.in b/src/paprefs.desktop.in
index 113b111..dcab321 100644
--- a/src/paprefs.desktop.in
+++ b/src/paprefs.desktop.in
@@ -1,9 +1,9 @@
[Desktop Entry]
Version=1.0
Encoding=UTF-8
-_Name=PulseAudio Preferences
-_GenericName=Sound Server Preferences
-_Comment=View and modify the configuration of the local sound server
+Name=PulseAudio Preferences
+GenericName=Sound Server Preferences
+Comment=View and modify the configuration of the local sound server
Exec=paprefs
Icon=preferences-desktop
StartupNotify=true
--
2.17.1
More information about the pulseaudio-discuss
mailing list