X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=man%2Fmeson.build;h=3a7143a4b6a7377a71326af8cf80a291e31d0f72;hb=c53da7ed02a5d732c9449f79c19675b90a6032e3;hp=8757dccb84e6721c346472afe659d8262fe13482;hpb=3a726fcd089f6702eb69d21a4513b84b886f395b;p=thirdparty%2Fsystemd.git diff --git a/man/meson.build b/man/meson.build index 8757dccb84e..3a7143a4b6a 100644 --- a/man/meson.build +++ b/man/meson.build @@ -1,19 +1,4 @@ # SPDX-License-Identifier: LGPL-2.1+ -# -# Copyright 2017 Zbigniew Jędrzejewski-Szmek -# -# systemd is free software; you can redistribute it and/or modify it -# under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation; either version 2.1 of the License, or -# (at your option) any later version. -# -# systemd is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with systemd; If not, see . # This is lame, I know, but meson has no other include mechanism subdir('rules') @@ -49,7 +34,8 @@ custom_entities_ent = configure_file( man_pages = [] html_pages = [] source_xml_files = [] -foreach tuple : want_man or want_html ? manpages : [] +dbus_docs = [] +foreach tuple : xsltproc.found() ? manpages : [] stem = tuple[0] section = tuple[1] aliases = tuple[2] @@ -62,8 +48,8 @@ foreach tuple : want_man or want_html ? 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) @@ -77,22 +63,21 @@ foreach tuple : want_man or want_html ? manpages : [] depend_files : custom_entities_ent, install : want_man, install_dir : mandirn) - man_pages += [p1] + man_pages += p1 p2 = [] foreach htmlalias : htmlaliases link = custom_target( htmlalias, - input : p2, output : htmlalias, command : ['ln', '-fs', html, '@OUTPUT@']) if want_html 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( @@ -104,9 +89,13 @@ foreach tuple : want_man or want_html ? 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') + file = files(tuple[0] + '.xml') + source_xml_files += file + if tuple[0].startswith('org.freedesktop.') + dbus_docs += file + endif else message('Skipping @0@.@1@ because @2@ is false'.format(stem, section, condition)) endif @@ -121,9 +110,9 @@ endif systemd_directives_xml = custom_target( 'systemd.directives.xml', - input : source_xml_files, + input : ['directives-template.xml', source_xml_files], output : 'systemd.directives.xml', - command : [make_directive_index_py, '@OUTPUT@'] + source_xml_files) + command : [make_directive_index_py, '@OUTPUT@', '@INPUT@']) nonindex_xml_files = source_xml_files + [systemd_directives_xml] systemd_index_xml = custom_target( @@ -132,8 +121,8 @@ systemd_index_xml = custom_target( output : 'systemd.index.xml', command : [make_man_index_py, '@OUTPUT@'] + nonindex_xml_files) -foreach tuple : want_man or want_html ? [['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] @@ -150,7 +139,7 @@ foreach tuple : want_man or want_html ? [['systemd.directives', '7', systemd_dir 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' @@ -164,9 +153,9 @@ foreach tuple : want_man or want_html ? [['systemd.directives', '7', systemd_dir 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( @@ -178,10 +167,11 @@ foreach tuple : want_man or want_html ? [['systemd.directives', '7', systemd_dir 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', @@ -208,16 +198,38 @@ run_target( ############################################################ +if dbus_docs.length() > 0 + custom_target( + 'update-dbus-docs', + output : 'update-dbus-docs', + command : ['python3', + '@0@/tools/update-dbus-docs.py'.format(project_source_root), + '--build-dir=@0@'.format(project_build_root), + '@INPUT@'], + input : dbus_docs) +endif + +############################################################ + 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/update-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)