diff options
Diffstat (limited to '')
-rw-r--r-- | man/meson.build | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/man/meson.build b/man/meson.build new file mode 100644 index 0000000..1043844 --- /dev/null +++ b/man/meson.build @@ -0,0 +1,74 @@ + +# man page name, section, [aliases] +manpages = [ + ['default.pa', '5'], + ['pacat', '1', ['paplay', 'parec', 'parecord', 'pamon']], + ['pacmd', '1'], + ['pactl', '1'], + ['padsp', '1'], + ['pasuspender', '1'], + ['pax11publish', '1'], + ['pulse-cli-syntax', '5'], + ['pulse-client.conf', '5'], + ['pulse-daemon.conf', '5'], + ['pulseaudio', '1'], + ['start-pulseaudio-x11', '1'], +] + +# FIXME: Add esdcompat if HAVE_ESOUND +#manpages += ['esdcompat', '1'], + +man_data = configuration_data() +man_data.set('PACKAGE_URL', 'http://pulseaudio.org/') +man_data.set('PACKAGE_BUGREPORT', 'pulseaudio-discuss (at) lists (dot) freedesktop (dot) org') +man_data.set('PA_DEFAULT_CONFIG_DIR', cdata.get_unquoted('PA_DEFAULT_CONFIG_DIR')) + +perl = find_program('perl', required: true) +xmltoman_cmd = [perl, join_paths(meson.current_source_dir(), 'xmltoman')] +xmllint = find_program('xmllint', required: false) + +foreach tuple : manpages + stem = tuple[0] + section = tuple[1] + aliases = tuple.get(2, []) + + man = stem + '.' + section + xmlin = man + '.xml.in' + xml = man + '.xml' + + xml_file = configure_file( + input : xmlin, + output : xml, + configuration : man_data, + ) + + mandirn = join_paths(mandir, 'man' + section) + + custom_target( + man + '-target', + input : xml_file, + output : man, + capture : true, + command : xmltoman_cmd + ['@INPUT@'], + install : true, + install_dir : mandirn, + ) + + foreach alias_stem : aliases + alias = alias_stem + '.' + section + dst = join_paths(mandirn, alias) + cmd = 'ln -fs @0@ $DESTDIR@1@'.format(man, dst) + meson.add_install_script('sh', '-c', cmd) + endforeach + + if xmllint.found() + test( + 'Validate xml file ' + xml, + xmllint, + args : [ + '--noout', '--valid', + '--path', meson.current_source_dir(), + join_paths(meson.current_build_dir(), xml)] + ) + endif +endforeach |