mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
The internals/eventloop document uses two images for
illustrative purposes, but unlike other graphics included
in the documentation these are not part of libvirt.git but
rather were added to libvirt-media.git with
commit fae5622074cf5e18d190496f8a43260c614599b2
Author: Michal Privoznik <mprivozn@redhat.com>
Date: Mon Jun 6 17:27:50 2016 +0200
Add two event loop images
These images are going to be used in our documentation of the
event loop.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
fae5622074
and are requested directly from there. Specifically, the
URLs point to the libvirt.org mirror of libvirt-media.git
instead of the primary repository hosted on GitLab.
Import the images into libvirt.git so that the website
doesn't rely on external resources and can, if desired, be
browsed entirely offline from installed packages.
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
330 lines
6.8 KiB
Meson
330 lines
6.8 KiB
Meson
docs_html_dir = docdir / 'html'
|
|
|
|
# xsltproc requires that the -o path ends with '/'
|
|
# Not using '/' operator due to bug in meson 0.60.0
|
|
# https://github.com/mesonbuild/meson/issues/9450
|
|
docs_builddir = join_paths(meson.current_build_dir(), '')
|
|
|
|
docs_assets = [
|
|
'android-chrome-192x192.png',
|
|
'android-chrome-256x256.png',
|
|
'apple-touch-icon.png',
|
|
'browserconfig.xml',
|
|
'event_loop_simple.png',
|
|
'event_loop_worker.png',
|
|
'favicon.ico',
|
|
'favicon-16x16.png',
|
|
'favicon-32x32.png',
|
|
'generic.css',
|
|
'libvirt.css',
|
|
'libvirt-daemon-arch.png',
|
|
'libvirt-driver-arch.png',
|
|
'libvirt-object-model.png',
|
|
'libvirt-virConnect-example.png',
|
|
'main.css',
|
|
'manifest.json',
|
|
'migration-managed-direct.png',
|
|
'migration-managed-p2p.png',
|
|
'migration-native.png',
|
|
'migration-tunnel.png',
|
|
'migration-unmanaged-direct.png',
|
|
'mobile.css',
|
|
'mstile-150x150.png',
|
|
'node.gif',
|
|
]
|
|
|
|
docs_html_in_files = [
|
|
'404',
|
|
'bugs',
|
|
'cgroups',
|
|
'contact',
|
|
'contribute',
|
|
'csharp',
|
|
'dbus',
|
|
'devguide',
|
|
'docs',
|
|
'downloads',
|
|
'drivers',
|
|
'drvbhyve',
|
|
'drvesx',
|
|
'drvhyperv',
|
|
'drvlxc',
|
|
'drvnodedev',
|
|
'drvopenvz',
|
|
'drvremote',
|
|
'drvsecret',
|
|
'drvtest',
|
|
'drvvbox',
|
|
'drvvirtuozzo',
|
|
'drvvmware',
|
|
'drvxen',
|
|
'errors',
|
|
'firewall',
|
|
'formatcaps',
|
|
'formatdomaincaps',
|
|
'format',
|
|
'formatnetwork',
|
|
'formatnetworkport',
|
|
'formatnode',
|
|
'formatnwfilter',
|
|
'formatsecret',
|
|
'formatsnapshot',
|
|
'formatstoragecaps',
|
|
'formatstorageencryption',
|
|
'formatstorage',
|
|
'goals',
|
|
'governance',
|
|
'hooks',
|
|
'index',
|
|
'internals',
|
|
'java',
|
|
'logging',
|
|
'nss',
|
|
'pci-hotplug',
|
|
'php',
|
|
'python',
|
|
'remote',
|
|
'securityprocess',
|
|
'storage',
|
|
'strategy',
|
|
'support',
|
|
'testapi',
|
|
'testsuites',
|
|
'testtck',
|
|
'tlscerts',
|
|
'uri',
|
|
'virshcmdref',
|
|
'windows',
|
|
]
|
|
|
|
docs_rst_files = [
|
|
'aclpolkit',
|
|
'advanced-tests',
|
|
'api_extension',
|
|
'api',
|
|
'apps',
|
|
'auditlog',
|
|
'auth',
|
|
'bindings',
|
|
'best-practices',
|
|
'ci',
|
|
'coding-style',
|
|
'committer-guidelines',
|
|
'compiling',
|
|
'daemons',
|
|
'developer-tooling',
|
|
'drvqemu',
|
|
'drvch',
|
|
'formatbackup',
|
|
'formatcheckpoint',
|
|
'formatdomain',
|
|
'glib-adoption',
|
|
'hacking',
|
|
'libvirt-go',
|
|
'libvirt-go-xml',
|
|
'migration',
|
|
'newreposetup',
|
|
'pci-addresses',
|
|
'platforms',
|
|
'programming-languages',
|
|
'styleguide',
|
|
'submitting-patches',
|
|
]
|
|
|
|
# list of web targets to build for docs/web rule
|
|
install_web_deps = []
|
|
install_web_files = []
|
|
|
|
install_data(docs_assets, install_dir: docs_html_dir)
|
|
|
|
aclperms_gen = custom_target(
|
|
'aclperms.htmlinc',
|
|
input: access_perm_h,
|
|
output: 'aclperms.htmlinc',
|
|
command: [
|
|
meson_python_prog, python3_prog, genaclperms_prog, '@INPUT@',
|
|
],
|
|
capture: true,
|
|
)
|
|
|
|
docs_timestamp = run_command(
|
|
python3_prog, meson_timestamp_prog.path(), env: runutf8
|
|
).stdout().strip()
|
|
|
|
site_xsl = files('site.xsl')
|
|
subsite_xsl = files('subsite.xsl')
|
|
page_xsl = files('page.xsl')
|
|
newapi_xsl = files('newapi.xsl')
|
|
|
|
docs_api_generated = custom_target(
|
|
'generate-api',
|
|
output: [
|
|
'libvirt-api.xml',
|
|
'libvirt-lxc-api.xml',
|
|
'libvirt-qemu-api.xml',
|
|
'libvirt-admin-api.xml',
|
|
],
|
|
command: [
|
|
meson_python_prog, python3_prog, apibuild_prog,
|
|
meson.current_source_dir(),
|
|
meson.current_build_dir(),
|
|
],
|
|
install: true,
|
|
install_dir: pkgdatadir / 'api',
|
|
depend_files: [
|
|
libvirt_common_h_in,
|
|
libvirt_include,
|
|
driver_sources,
|
|
libvirt_qemu_sources,
|
|
libvirt_lxc_sources,
|
|
admin_sources,
|
|
util_public_sources,
|
|
],
|
|
)
|
|
|
|
docs_api_xml = docs_api_generated[0]
|
|
docs_lxc_api_xml = docs_api_generated[1]
|
|
docs_qemu_api_xml = docs_api_generated[2]
|
|
docs_admin_api_xml = docs_api_generated[3]
|
|
|
|
docs_rst2html5_gen = generator(
|
|
rst2html5_prog,
|
|
output: '@BASENAME@.html.in',
|
|
arguments: [ '--stylesheet=', '--strict', '@INPUT@' ],
|
|
capture: true,
|
|
)
|
|
|
|
|
|
# html_xslt_gen config
|
|
|
|
html_xslt_gen_xslt = site_xsl
|
|
html_xslt_gen_install_dir = docs_html_dir
|
|
|
|
html_xslt_gen = []
|
|
# html_xslt_gen:
|
|
# each entry is a dictionary with following items:
|
|
# name - base file name (required), output file will become 'name.html'
|
|
# file - input file (optional, 'name.html.in' assumed if missing)
|
|
# source - source filename relative to repository root (optional, if there is no source)
|
|
# depends - explicit dependency on other input (optional)
|
|
|
|
foreach name : docs_html_in_files
|
|
html_xslt_gen += {
|
|
'name': name,
|
|
'source': 'docs' / name + '.html.in',
|
|
}
|
|
endforeach
|
|
|
|
foreach name : docs_rst_files
|
|
rst_file = '@0@.rst'.format(name)
|
|
html_xslt_gen += {
|
|
'name': name,
|
|
'file': docs_rst2html5_gen.process(rst_file),
|
|
'source': 'docs' / rst_file,
|
|
}
|
|
endforeach
|
|
|
|
html_xslt_gen += {
|
|
'name': 'acl',
|
|
'source': 'docs' / 'acl.html.in',
|
|
'depends': aclperms_gen,
|
|
}
|
|
|
|
hvsupport_html_in = custom_target(
|
|
'hvsupport.html.in',
|
|
output: 'hvsupport.html.in',
|
|
command: [
|
|
meson_python_prog,
|
|
python3_prog,
|
|
hvsupport_prog,
|
|
meson.source_root(),
|
|
meson.build_root(),
|
|
],
|
|
capture: true,
|
|
depend_files: [
|
|
public_sym_file,
|
|
libvirt_qemu_syms,
|
|
libvirt_lxc_syms,
|
|
driver_header,
|
|
],
|
|
depends: [
|
|
docs_api_generated,
|
|
],
|
|
)
|
|
html_xslt_gen += {
|
|
'name': 'hvsupport',
|
|
'file': hvsupport_html_in,
|
|
}
|
|
|
|
news_html_in = docs_rst2html5_gen.process(meson.source_root() / 'NEWS.rst')
|
|
html_xslt_gen += {
|
|
'name': 'news',
|
|
'file': news_html_in,
|
|
'source': 'NEWS.rst',
|
|
}
|
|
|
|
# The following code between the markers must be kept identical with the other
|
|
# copies of the code in various subdirs, since meson doesn't support any kind
|
|
# of functions.
|
|
|
|
# --- 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 ---
|
|
|
|
subdir('fonts')
|
|
subdir('go')
|
|
subdir('html')
|
|
subdir('internals')
|
|
subdir('js')
|
|
subdir('kbase')
|
|
subdir('logos')
|
|
subdir('manpages')
|
|
subdir('schemas')
|
|
|
|
|
|
foreach file : docs_assets
|
|
# This hack enables us to view the web pages
|
|
# from within the uninstalled build tree
|
|
configure_file(input: file, output: file, copy: true)
|
|
|
|
install_web_files += '@0@:@1@'.format(meson.current_source_dir() / file, docs_html_dir)
|
|
endforeach
|
|
|
|
run_target(
|
|
'install-web',
|
|
command: [
|
|
meson_python_prog, python3_prog.path(), meson_install_web_prog.path(),
|
|
install_web_files,
|
|
],
|
|
depends: install_web_deps,
|
|
)
|