X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=man%2Fmeson.build;h=f3992b28341698418be576efbaae07608be6174b;hb=f789e0b4f891800557c74c385d0f61a0164cb16f;hp=8ddbd5557cbcf488642c05f8a8e1b481f5be8211;hpb=4f41b69cd9dcff3687dc90df0216ba444c2d9940;p=thirdparty%2Fsystemd.git diff --git a/man/meson.build b/man/meson.build index 8ddbd5557cb..f3992b28341 100644 --- a/man/meson.build +++ b/man/meson.build @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: LGPL-2.1+ + # This is lame, I know, but meson has no other include mechanism subdir('rules') @@ -11,6 +13,7 @@ want_html = want_html != 'false' and xsltproc.found() xsltproc_flags = [ '--nonet', '--xinclude', + '--maxdepth', '9000', '--stringparam', 'man.output.quietly', '1', '--stringparam', 'funcsynopsis.style', 'ansi', '--stringparam', 'man.authors.section.enabled', '0', @@ -31,7 +34,7 @@ custom_entities_ent = configure_file( man_pages = [] html_pages = [] source_xml_files = [] -foreach tuple : manpages +foreach tuple : xsltproc.found() ? manpages : [] stem = tuple[0] section = tuple[1] aliases = tuple[2] @@ -44,13 +47,13 @@ foreach tuple : manpages manaliases = [] htmlaliases = [] foreach alias : aliases - manaliases += [alias + '.' + section] - htmlaliases += [alias + '.html'] + manaliases += alias + '.' + section + htmlaliases += alias + '.html' endforeach mandirn = join_paths(get_option('mandir'), 'man' + section) - if condition == '' or conf.get(condition, false) + if condition == '' or conf.get(condition) == 1 p1 = custom_target( man, input : xml, @@ -59,7 +62,7 @@ foreach tuple : manpages depend_files : custom_entities_ent, install : want_man, install_dir : mandirn) - man_pages += [p1] + man_pages += p1 p2 = [] foreach htmlalias : htmlaliases @@ -72,9 +75,9 @@ foreach tuple : manpages dst = join_paths(docdir, 'html', htmlalias) cmd = 'ln -fs @0@ $DESTDIR@1@'.format(html, dst) meson.add_install_script('sh', '-c', cmd) - p2 += [link] + p2 += link endif - html_pages += [link] + html_pages += link endforeach p3 = custom_target( @@ -86,7 +89,7 @@ foreach tuple : manpages depends : p2, install : want_html, install_dir : join_paths(docdir, 'html')) - html_pages += [p3] + html_pages += p3 source_xml_files += files(tuple[0] + '.xml') else @@ -114,8 +117,8 @@ systemd_index_xml = custom_target( output : 'systemd.index.xml', command : [make_man_index_py, '@OUTPUT@'] + nonindex_xml_files) -foreach tuple : [['systemd.directives', '7', systemd_directives_xml], - ['systemd.index', '7', systemd_index_xml]] +foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directives_xml], + ['systemd.index', '7', systemd_index_xml]] : [] stem = tuple[0] section = tuple[1] xml = tuple[2] @@ -132,7 +135,7 @@ foreach tuple : [['systemd.directives', '7', systemd_directives_xml], command : xslt_cmd + [custom_man_xsl, '@INPUT@'], install : want_man and have_lxml, install_dir : mandirn) - man_pages += [p1] + man_pages += p1 p2 = [] if html == 'systemd.index.html' @@ -146,9 +149,9 @@ foreach tuple : [['systemd.directives', '7', systemd_directives_xml], dst = join_paths(docdir, 'html', htmlalias) cmd = 'ln -fs @0@ $DESTDIR@1@'.format(html, dst) meson.add_install_script('sh', '-c', cmd) - p2 += [link] + p2 += link endif - html_pages += [link] + html_pages += link endif p3 = custom_target( @@ -160,10 +163,11 @@ foreach tuple : [['systemd.directives', '7', systemd_directives_xml], depends : p2, install : want_html and have_lxml, install_dir : join_paths(docdir, 'html')) - html_pages += [p3] + html_pages += p3 endforeach -# cannot use run_target until https://github.com/mesonbuild/meson/issues/1644 is resolved +# Cannot use run_target because those targets are used in depends +# Also see https://github.com/mesonbuild/meson/issues/368. man = custom_target( 'man', output : 'man', @@ -194,12 +198,21 @@ if git.found() custom_target( 'update-man-rules', output : 'update-man-rules', - # slightly strange syntax because of - # https://github.com/mesonbuild/meson/issues/1643 - # and https://github.com/mesonbuild/meson/issues/1512 command : ['sh', '-c', 'cd @0@ && '.format(meson.build_root()) + - 'python3 @0@/tools/make-man-rules.py `git ls-files ":/man/*.xml"` >t && '.format(meson.source_root()) + + 'python3 @0@/tools/make-man-rules.py $(git ls-files ":/man/*.xml") >t && '.format(project_source_root) + 'mv t @0@/rules/meson.build'.format(meson.current_source_dir())], depend_files : custom_entities_ent) endif + +############################################################ + +configure_file( + input : 'man.in', + output : 'man', + configuration : substs) + +configure_file( + input : 'html.in', + output : 'html', + configuration : substs)