mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-30 01:43:23 +00:00
18c73a4c70
When using .path() for an argument to a python script meson will not setup dependancies on the file. This means that changes to the generator script will not trigger a rebiuld Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
152 lines
4.6 KiB
Meson
152 lines
4.6 KiB
Meson
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)
|
|
# section - man page section (required)
|
|
# install - whether to build and install the man page (required)
|
|
# file - generated RST file (optional, default none)
|
|
|
|
docs_man_files = [
|
|
{ 'name': 'index', 'section': '', 'install': false },
|
|
|
|
{ 'name': 'virsh', 'section': '1', 'install': true },
|
|
{ 'name': 'virt-admin', 'section': '1', 'install': true },
|
|
{ 'name': 'virt-host-validate', 'section': '1', 'install': conf.has('WITH_HOST_VALIDATE') },
|
|
{ 'name': 'virt-login-shell', 'section': '1', 'install': conf.has('WITH_LOGIN_SHELL') },
|
|
{ 'name': 'virt-pki-validate', 'section': '1', 'install': true },
|
|
{ 'name': 'virt-qemu-run', 'section': '1', 'install': conf.has('WITH_QEMU') },
|
|
{ 'name': 'virt-xml-validate', 'section': '1', 'install': true },
|
|
|
|
{ 'name': 'libvirtd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') },
|
|
{ 'name': 'virt-sanlock-cleanup', 'section': '8', 'install': conf.has('WITH_SANLOCK') },
|
|
{ 'name': 'virtlockd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') },
|
|
{ 'name': 'virtlogd', 'section': '8', 'install': conf.has('WITH_LIBVIRTD') },
|
|
]
|
|
|
|
foreach name : keycode_list
|
|
rst_file = custom_target(
|
|
'virkeycode-@0@.rst'.format(name),
|
|
input: keymap_src_file,
|
|
output: 'virkeycode-@0@.rst'.format(name),
|
|
command: [
|
|
meson_python_prog, python3_prog, keymap_gen_prog, 'code-docs',
|
|
'--lang', 'rst',
|
|
'--title', 'virkeycode-@0@'.format(name),
|
|
'--subtitle', 'Key code values for @0@'.format(name),
|
|
'@INPUT@', name,
|
|
],
|
|
capture: true,
|
|
build_by_default: true,
|
|
)
|
|
|
|
docs_man_files += {
|
|
'name': 'virkeycode-@0@'.format(name), 'section': '7', 'install': true, 'file': rst_file,
|
|
}
|
|
endforeach
|
|
|
|
foreach name : keyname_list
|
|
rst_file = custom_target(
|
|
'virkeyname-@0@.rst'.format(name),
|
|
input: keymap_src_file,
|
|
output: 'virkeyname-@0@.rst'.format(name),
|
|
command: [
|
|
meson_python_prog, python3_prog, keymap_gen_prog, 'name-docs',
|
|
'--lang', 'rst',
|
|
'--title', 'virkeyname-@0@'.format(name),
|
|
'--subtitle', 'Key name values for @0@'.format(name),
|
|
'@INPUT@', name,
|
|
],
|
|
capture: true,
|
|
build_by_default: true,
|
|
)
|
|
|
|
docs_man_files += {
|
|
'name': 'virkeyname-@0@'.format(name), 'section': '7', 'install': true, 'file': rst_file,
|
|
}
|
|
endforeach
|
|
|
|
docs_man_conf = configuration_data()
|
|
docs_man_conf.set('SYSCONFDIR', sysconfdir)
|
|
docs_man_conf.set('RUNSTATEDIR', runstatedir)
|
|
|
|
foreach data : docs_man_files
|
|
rst_in_file = '@0@.rst'.format(data['name'])
|
|
html_in_file = '@0@.html.in'.format(data['name'])
|
|
html_file = '@0@.html'.format(data['name'])
|
|
|
|
if data.has_key('file')
|
|
rst_file = data['file']
|
|
else
|
|
rst_file = configure_file(
|
|
input: rst_in_file,
|
|
output: '@0@.rst'.format(data['name']),
|
|
configuration: docs_man_conf,
|
|
)
|
|
endif
|
|
|
|
if data['install']
|
|
man_file = '@0@.@1@'.format(data['name'], data['section'])
|
|
man_page = custom_target(
|
|
man_file,
|
|
input: rst_file,
|
|
output: man_file,
|
|
# 'contents' element is the table of contents which is undesired in manpage
|
|
command: [ rst2man_prog, '--strip-elements-with-class', 'contents', '--strict', '@INPUT@', '@OUTPUT@' ],
|
|
install: true,
|
|
install_dir: mandir / 'man@0@'.format(data['section']),
|
|
)
|
|
endif
|
|
|
|
html_in = custom_target(
|
|
html_in_file,
|
|
input: rst_file,
|
|
output: html_in_file,
|
|
command: [ rst2html_prog, '--stylesheet=', '--strict', '@INPUT@' ],
|
|
capture: true,
|
|
)
|
|
|
|
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: [
|
|
xsltproc_prog,
|
|
'--stringparam', 'pagesrc', data.get('source', ''),
|
|
'--stringparam', 'builddir', meson.build_root(),
|
|
'--stringparam', 'timestamp', docs_timestamp,
|
|
'--nonet',
|
|
html_xslt_gen_xslt,
|
|
'@INPUT@',
|
|
],
|
|
depends: data.get('depends', []),
|
|
depend_files: [ page_xsl ],
|
|
capture: true,
|
|
install: true,
|
|
install_dir: html_xslt_gen_install_dir,
|
|
)
|
|
|
|
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 ---
|