--- 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