diff --git a/docs/manpages/meson.build b/docs/manpages/meson.build index 7ed1d304a4..ecc517e80e 100644 --- a/docs/manpages/meson.build +++ b/docs/manpages/meson.build @@ -1,3 +1,7 @@ +html_xslt_gen_xslt = subsite_xsl +html_xslt_gen_install_dir = docs_html_dir / 'manpages' +html_xslt_gen = [] + # docs_man_files # each entry is a dictionary with following items: # name - man page name (required) @@ -104,29 +108,44 @@ foreach data : docs_man_files capture: true, ) - out_file = custom_target( - html_file, - input: html_in, - output: html_file, + html_xslt_gen += { + 'name': data['name'], + 'file': html_in, + 'source': 'docs/manpages' / rst_in_file, + } +endforeach + +# keep the XSLT processing code block in sync with docs/meson.build + +# --- begin of XSLT processing --- + +foreach data : html_xslt_gen + html_filename = data['name'] + '.html' + + html_file = custom_target( + html_filename, + input: data.get('file', data['name'] + '.html.in'), + output: html_filename, command: [ - meson_python_prog, - python3_prog.path(), - meson_html_gen_prog.path(), - xsltproc_prog.path(), - xmllint_prog.path(), - meson.build_root(), - docs_timestamp, - subsite_xsl, + xsltproc_prog, + '--stringparam', 'pagesrc', data.get('source', ''), + '--stringparam', 'builddir', meson.build_root(), + '--stringparam', 'timestamp', docs_timestamp, + '--nonet', + html_xslt_gen_xslt, '@INPUT@', - '@OUTPUT@', - 'docs/manpages' / rst_in_file, ], - depends: [ aclperms_gen ], + depends: data.get('depends', []), depend_files: [ page_xsl ], + capture: true, install: true, - install_dir: docs_html_dir / 'manpages', + install_dir: html_xslt_gen_install_dir, ) - install_web_deps += out_file - install_web_files += '@0@:@1@'.format(out_file.full_path(), docs_html_dir / 'manpages') + install_web_deps += html_file + install_web_files += html_file.full_path() + ':' + html_xslt_gen_install_dir endforeach + +html_xslt_gen = [] + +# --- end of XSLT processing ---