[libvirt] [PATCH] docs: apibuild: Fix VPATH build

Andrea Bolognani abologna at redhat.com
Fri Apr 22 15:20:06 UTC 2016


On Fri, 2016-04-22 at 16:21 +0200, Peter Krempa wrote:
> libvirt-common.h is generated into builddir/include/libvirt. apibuild.py
> only operated on srcdir/inlcude/libvirt. With VPATH build
> srcdir/docs/libvirt-libvirt-common.html would not get generated and make
> RPM failed.
> ---
> We still generate the html files and other stuff into the srcdir which is gross,
> but's that for a different fix.

/me nods in emphatic agreement

>  docs/Makefile.am | 2 +-
>  docs/apibuild.py | 7 ++++++-
>  2 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/docs/Makefile.am b/docs/Makefile.am
> index 3ca53a4..1b21b5c 100644
> --- a/docs/Makefile.am
> +++ b/docs/Makefile.am
> @@ -325,7 +325,7 @@ $(APIBUILD_STAMP): $(srcdir)/apibuild.py \
>  		$(top_srcdir)/src/util/virerror.c \
>  		$(top_srcdir)/src/util/virevent.c \
>  		$(top_srcdir)/src/util/virtypedparam.c
> -	$(AM_V_GEN)srcdir=$(srcdir) $(PYTHON) $(APIBUILD)
> +	$(AM_V_GEN)srcdir=$(srcdir) builddir=$(abs_builddir) $(PYTHON) $(APIBUILD)
>  	touch $@
> 
> 
> diff --git a/docs/apibuild.py b/docs/apibuild.py
> index 8882759..648036f 100755
> --- a/docs/apibuild.py
> +++ b/docs/apibuild.py
> @@ -2584,13 +2584,18 @@ def rebuild(name):
>          self.warning("rebuild() failed, unknown module %s") % name
>          return None
>      builder = None
> -    srcdir = os.environ["srcdir"]
> +    srcdir = os.path.abspath((os.environ["srcdir"]))
> +    builddir = os.path.abspath((os.environ["builddir"]))
> +    if srcdir == builddir:
> +        builddir = None
>      if glob.glob(srcdir + "/../src/libvirt.c") != [] :
>          if not quiet:
>              print "Rebuilding API description for %s" % name
>          dirs = [srcdir + "/../src",
>                  srcdir + "/../src/util",
>                  srcdir + "/../include/libvirt"]
> +        if builddir:
> +            dirs.append(builddir + "/../include/libvirt")
>          if glob.glob(srcdir + "/../include/libvirt/libvirt.h") == [] :
>              dirs.append("../include/libvirt")
>          builder = docBuilder(name, srcdir, dirs, [])

ACK

-- 
Andrea Bolognani
Software Engineer - Virtualization Team




More information about the libvir-list mailing list