meson: docs: build api XML files

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
This commit is contained in:
Pavel Hrdina 2020-06-25 14:31:59 +02:00
parent c4fbc69491
commit 4dc0e601c7
4 changed files with 60 additions and 68 deletions

View File

@ -297,13 +297,6 @@ dot_html = \
htmldir = $(HTML_DIR) htmldir = $(HTML_DIR)
html_DATA = $(dot_html) html_DATA = $(dot_html)
apidir = $(pkgdatadir)/api
api_DATA = \
libvirt-api.xml \
libvirt-qemu-api.xml \
libvirt-lxc-api.xml \
libvirt-admin-api.xml
schemadir = $(pkgdatadir)/schemas schemadir = $(pkgdatadir)/schemas
schema_DATA = $(wildcard $(srcdir)/schemas/*.rng) schema_DATA = $(wildcard $(srcdir)/schemas/*.rng)
@ -392,51 +385,3 @@ check-html:
$(XMLLINT) --nonet --noout html/*.html $(XMLLINT) --nonet --noout html/*.html
check-local: check-html check-local: check-html
python_generated_files = $(api_DATA)
APIBUILD=$(top_srcdir)/scripts/apibuild.py
APIBUILD_STAMP=apibuild.py.stamp
$(python_generated_files): $(APIBUILD_STAMP)
$(APIBUILD_STAMP): $(top_srcdir)/scripts/apibuild.py \
$(top_srcdir)/include/libvirt/libvirt.h \
$(top_srcdir)/include/libvirt/libvirt-common.h.in \
$(top_srcdir)/include/libvirt/libvirt-domain-checkpoint.h \
$(top_srcdir)/include/libvirt/libvirt-domain-snapshot.h \
$(top_srcdir)/include/libvirt/libvirt-domain.h \
$(top_srcdir)/include/libvirt/libvirt-event.h \
$(top_srcdir)/include/libvirt/libvirt-host.h \
$(top_srcdir)/include/libvirt/libvirt-interface.h \
$(top_srcdir)/include/libvirt/libvirt-network.h \
$(top_srcdir)/include/libvirt/libvirt-nodedev.h \
$(top_srcdir)/include/libvirt/libvirt-nwfilter.h \
$(top_srcdir)/include/libvirt/libvirt-secret.h \
$(top_srcdir)/include/libvirt/libvirt-storage.h \
$(top_srcdir)/include/libvirt/libvirt-stream.h \
$(top_srcdir)/include/libvirt/libvirt-lxc.h \
$(top_srcdir)/include/libvirt/libvirt-qemu.h \
$(top_srcdir)/include/libvirt/libvirt-admin.h \
$(top_srcdir)/include/libvirt/virterror.h \
$(top_srcdir)/src/libvirt.c \
$(top_srcdir)/src/libvirt-domain-checkpoint.c \
$(top_srcdir)/src/libvirt-domain-snapshot.c \
$(top_srcdir)/src/libvirt-domain.c \
$(top_srcdir)/src/libvirt-host.c \
$(top_srcdir)/src/libvirt-interface.c \
$(top_srcdir)/src/libvirt-network.c \
$(top_srcdir)/src/libvirt-nodedev.c \
$(top_srcdir)/src/libvirt-nwfilter.c \
$(top_srcdir)/src/libvirt-secret.c \
$(top_srcdir)/src/libvirt-storage.c \
$(top_srcdir)/src/libvirt-stream.c \
$(top_srcdir)/src/libvirt-lxc.c \
$(top_srcdir)/src/libvirt-qemu.c \
$(top_srcdir)/src/admin/libvirt-admin.c \
$(top_srcdir)/src/util/virerror.c \
$(top_srcdir)/src/util/virevent.c \
$(top_srcdir)/src/util/virtypedparam-public.c
$(AM_V_GEN)srcdir=$(srcdir) builddir=$(builddir) \
$(RUNUTF8) $(PYTHON) $(APIBUILD)
touch $@

View File

@ -28,3 +28,34 @@ docs_assets = [
] ]
install_data(docs_assets, install_dir: docs_html_dir) install_data(docs_assets, install_dir: docs_html_dir)
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.path(), apibuild_prog.path(),
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]

View File

@ -12,6 +12,7 @@ import os
import sys import sys
import glob import glob
import re import re
import argparse
quiet = True quiet = True
warnings = 0 warnings = 0
@ -2404,13 +2405,11 @@ class app:
warnings = warnings + 1 warnings = warnings + 1
print(msg) print(msg)
def rebuild(self, name): def rebuild(self, name, srcdir, builddir):
if name not in ["libvirt", "libvirt-qemu", "libvirt-lxc", "libvirt-admin"]: if name not in ["libvirt", "libvirt-qemu", "libvirt-lxc", "libvirt-admin"]:
self.warning("rebuild() failed, unknown module %s" % name) self.warning("rebuild() failed, unknown module %s" % name)
return None return None
builder = None builder = None
srcdir = os.path.abspath((os.environ["srcdir"]))
builddir = os.path.abspath((os.environ["builddir"]))
if glob.glob(srcdir + "/../src/libvirt.c") != []: if glob.glob(srcdir + "/../src/libvirt.c") != []:
if not quiet: if not quiet:
print("Rebuilding API description for %s" % name) print("Rebuilding API description for %s" % name)
@ -2438,15 +2437,24 @@ class app:
if __name__ == "__main__": if __name__ == "__main__":
parser = argparse.ArgumentParser(description="XML API builder")
parser.add_argument("srcdir", type=str, help="path to docs source dir")
parser.add_argument("builddir", type=str, help="path to docs build dir")
parser.add_argument("-d", "--debug", type=str, help="path to source file")
args = parser.parse_args()
app = app() app = app()
if len(sys.argv) > 1:
if args.debug:
debug = 1 debug = 1
app.parse(sys.argv[1]) app.parse(args.debug)
else: else:
app.rebuild("libvirt") app.rebuild("libvirt", args.srcdir, args.builddir)
app.rebuild("libvirt-qemu") app.rebuild("libvirt-qemu", args.srcdir, args.builddir)
app.rebuild("libvirt-lxc") app.rebuild("libvirt-lxc", args.srcdir, args.builddir)
app.rebuild("libvirt-admin") app.rebuild("libvirt-admin", args.srcdir, args.builddir)
if warnings > 0: if warnings > 0:
sys.exit(2) sys.exit(2)
else: else:

View File

@ -277,7 +277,7 @@ subdir('vmware')
subdir('vz') subdir('vz')
driver_sources = [ driver_sources = files(
'driver.c', 'driver.c',
'libvirt.c', 'libvirt.c',
'libvirt-domain.c', 'libvirt-domain.c',
@ -291,7 +291,7 @@ driver_sources = [
'libvirt-secret.c', 'libvirt-secret.c',
'libvirt-storage.c', 'libvirt-storage.c',
'libvirt-stream.c', 'libvirt-stream.c',
] )
driver_headers = [ driver_headers = [
'driver-hypervisor.h', 'driver-hypervisor.h',
@ -428,9 +428,13 @@ libvirt_qemu_syms_flags = '@0@@1@'.format(
libvirt_qemu_syms_path, libvirt_qemu_syms_path,
) )
libvirt_qemu_sources = files(
'libvirt-qemu.c',
)
libvirt_qemu_lib = shared_library( libvirt_qemu_lib = shared_library(
'virt-qemu', 'virt-qemu',
'libvirt-qemu.c', libvirt_qemu_sources,
dependencies: [ dependencies: [
src_dep, src_dep,
], ],
@ -478,9 +482,13 @@ libvirt_lxc_syms_flags = '@0@@1@'.format(
libvirt_lxc_syms_path, libvirt_lxc_syms_path,
) )
libvirt_lxc_sources = files(
'libvirt-lxc.c',
)
libvirt_lxc_lib = shared_library( libvirt_lxc_lib = shared_library(
'virt-lxc', 'virt-lxc',
'libvirt-lxc.c', libvirt_lxc_sources,
dependencies: [ dependencies: [
apparmor_dep, apparmor_dep,
selinux_dep, selinux_dep,