resurrect gtk-doc machinery

Our auto-generated documentation has been a bit neglected. This patch replaces
the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
plugins, elements and libraries.

This patch also re-enables documentation generation.

Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
This commit is contained in:
Víctor Manuel Jáquez Leal 2016-01-29 15:39:09 +01:00
parent 4952063347
commit d675816ed0
11 changed files with 111 additions and 177 deletions

View file

@ -1,6 +1,6 @@
ACLOCAL_AMFLAGS = -I m4 -I common/m4 ${ACLOCAL_FLAGS}
SUBDIRS = gst-libs gst tests common
SUBDIRS = gst-libs gst tests common docs
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc

View file

@ -1004,8 +1004,9 @@ AC_CONFIG_FILES([
common/Makefile
common/m4/Makefile
docs/Makefile
docs/reference/Makefile
docs/reference/plugins/plugins-docs.xml
docs/version.entities
docs/plugins/Makefile
docs/plugins/gstreamer-vaapi-plugins-docs.xml
gst-libs/Makefile
gst-libs/gst/Makefile
gst-libs/gst/base/Makefile

View file

@ -1,9 +1,19 @@
SUBDIRS =
if ENABLE_GTK_DOC
SUBDIRS += reference
if ENABLE_PLUGIN_DOCS
PLUGIN_DOCS_DIRS = plugins
else
PLUGIN_DOCS_DIRS =
endif
else
PLUGIN_DOCS_DIRS = plugins
endif
DIST_SUBDIRS = reference
SUBDIRS = $(PLUGIN_DOCS_DIRS)
DIST_SUBDIRS = plugins
EXTRA_DIST = version.entities.in
upload:
@if test "x$(SUBDIRS)" != x; then for a in $(SUBDIRS); do cd $$a; make upload; cd ..; done; fi
-include $(top_srcdir)/git.mk

90
docs/plugins/Makefile.am Normal file
View file

@ -0,0 +1,90 @@
GST_DOC_SCANOBJ = $(top_srcdir)/common/gstdoc-scangobj
## Process this file with automake to produce Makefile.in
# The name of the module, e.g. 'glib'.
MODULE=gstreamer-vaapi
DOC_MODULE=$(MODULE)-plugins
# for upload-doc.mak
DOC=$(MODULE)-plugins
FORMATS=html
html: html-build.stamp
include $(top_srcdir)/common/upload-doc.mak
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml
# The directory containing the source code. Relative to $(srcdir).
# gtk-doc will search all .c & .h files beneath here for inline comments
# documenting the functions and macros.
DOC_SOURCE_DIR = $(top_srcdir)/gst
# Extra options to supply to gtkdoc-scan.
SCAN_OPTIONS = --deprecated-guards="GST_VAAPI_DISABLE_DEPRECATED"
# Extra options to supply to gtkdoc-mkdb.
MKDB_OPTIONS = --sgml-mode --source-suffixes=c,h,cc,m
# Extra options to supply to gtkdoc-fixref.
FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html \
--extra-dir=$(GST_PREFIX)/share/gtk-doc/html \
--extra-dir=$(GSTPB_PREFIX)/share/gtk-doc/html
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB = $(top_srcdir)/gst/*/*.h
CFILE_GLOB = $(top_srcdir)/gst/*/*.c
# Header files to ignore when scanning.
IGNORE_HFILES =
EXTRA_HFILES =
# we add all .h files of elements that have signals/args we want
# sadly this also pulls in the private methods - maybe we should
# move those around in the source ?
#
# also, we should add some stuff here conditionally based on whether
# or not the plugin will actually build
# but I'm not sure about that - it might be this Just Works given that
# the registry won't have the element
# -> it just works (TM) (ensonic)
# FIXME: not ported yet
# $(top_srcdir)/ext/gnomevfs/gstgnomevfssink.c
# example code that needs to be converted to xml and placed in xml/
EXAMPLE_CFILES =
# Images to copy into HTML directory.
HTML_IMAGES =
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
content_files =
# Other files to distribute.
extra_files =
# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
# contains GtkObjects/GObjects and you want to document signals and properties.
GTKDOC_CFLAGS = -DGST_USE_UNSTABLE_API $(GST_PLUGINS_BAD_CFLAGS) $(GST_BASE_CFLAGS) -I$(top_builddir) -I$(top_builddir)/gst-libs/
GTKDOC_LIBS = $(top_builddir)/gst-libs/gst/vaapi/libgstvaapi.la $(top_builddir)/gst/vaapi/libgstvaapi.la $(GST_BASE_LIBS)
# If you need to override some of the declarations, place them in this file
# and uncomment this line.
#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
DOC_OVERRIDES =
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/common/gtk-doc-plugins.mak
SUBDIRS =
# Extra clean files so that maintainer-clean removes *everything*
MAINTAINERCLEANFILES = \
gstreamer-vaapi-plugins.* \
*.stamp inspect \
$(NULL)
-include $(top_srcdir)/git.mk

View file

@ -10,7 +10,7 @@
</bookinfo>
<chapter>
<title>gst-plugins-vaapi Plugins</title>
<title>gstreamer-vaapi Plugins</title>
<xi:include href="xml/gstvaapidecode.xml"/>
<xi:include href="xml/gstvaapipostproc.xml"/>
<xi:include href="xml/gstvaapisink.xml"/>

View file

@ -1,3 +0,0 @@
SUBDIRS = plugins
-include $(top_srcdir)/git.mk

View file

@ -1,116 +0,0 @@
## Process this file with automake to produce Makefile.in
# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
# of using the various options.
# The name of the module, e.g. 'glib'.
DOC_MODULE = plugins
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.xml
# The directory containing the source code. Relative to $(srcdir).
# gtk-doc will search all .c & .h files beneath here for inline comments
# documenting the functions and macros.
# e.g. DOC_SOURCE_DIR=../../../gtk
DOC_SOURCE_DIR = $(top_srcdir)/gst
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS = --type-init-func="gst_init(NULL, NULL)"
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS = --deprecated-guards="GST_VAAPI_DISABLE_DEPRECATED"
# Extra options to supply to gtkdoc-mkdb.
# e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml
MKDB_OPTIONS = --sgml-mode --output-format=xml --name-space=$(DOC_MODULE)
# Extra options to supply to gtkdoc-mktmpl
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS =
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS = \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gobject \
--extra-dir=$(CAIRO_PREFIX)/share/gtk-doc/html/cairo \
--extra-dir=$(PANGO_PREFIX)/share/gtk-doc/html/pango
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB = $(top_srcdir)/gst/*/*.h
CFILE_GLOB = $(top_srcdir)/gst/*/*.c
# Header files to ignore when scanning.
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
IGNORE_HFILES = \
$(NULL)
EXTRA_HFILES = \
$(NULL)
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES = \
$(NULL)
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
content_files = \
$(NULL)
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# e.g. expand_content_files=running.sgml
expand_content_files = \
$(NULL)
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
# e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
INCLUDES = \
-I$(top_srcdir) \
-I$(top_srcdir)/gst-libs \
-I$(top_srcdir)/gst-libs/gst/vaapi \
$(GLIB_CFLAGS) \
$(GST_CFLAGS) \
$(NULL)
gtkdoc_vaapi_libs = \
$(top_builddir)/gst-libs/gst/vaapi/libgstvaapi.la \
$(NULL)
if USE_X11
gtkdoc_vaapi_libs += \
$(top_builddir)/gst-libs/gst/vaapi/libgstvaapi-x11.la \
$(NULL)
endif
GTKDOC_LIBS = \
$(gtkdoc_vaapi_libs) \
$(top_builddir)/gst/vaapi/libgstvaapi.la \
$(GLIB_LIBS) \
$(GST_LIBS) \
$(NULL)
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += \
$(DOC_MODULE)-docs.xml.in \
$(NULL)
-include $(top_srcdir)/git.mk

View file

@ -1,41 +0,0 @@
<SECTION>
<FILE>gstvaapisink</FILE>
<TITLE>GstVaapiSink</TITLE>
GstVaapiSink
<SUBSECTION Standard>
GST_VAAPISINK
GST_IS_VAAPISINK
GST_TYPE_VAAPISINK
gst_vaapisink_get_type
GST_VAAPISINK_CLASS
GST_IS_VAAPISINK_CLASS
GST_VAAPISINK_GET_CLASS
</SECTION>
<SECTION>
<FILE>gstvaapidecode</FILE>
<TITLE>GstVaapiDecode</TITLE>
GstVaapiDecode
<SUBSECTION Standard>
GST_VAAPIDECODE
GST_IS_VAAPIDECODE
GST_TYPE_VAAPIDECODE
gst_vaapidecode_get_type
GST_VAAPIDECODE_CLASS
GST_IS_VAAPIDECODE_CLASS
GST_VAAPIDECODE_GET_CLASS
</SECTION>
<SECTION>
<FILE>gstvaapipostproc</FILE>
<TITLE>GstVaapiPostproc</TITLE>
GstVaapiPostproc
<SUBSECTION Standard>
GST_VAAPIPOSTPROC
GST_IS_VAAPIPOSTPROC
GST_TYPE_VAAPIPOSTPROC
gst_vaapipostproc_get_type
GST_VAAPIPOSTPROC_CLASS
GST_IS_VAAPIPOSTPROC_CLASS
GST_VAAPIPOSTPROC_GET_CLASS
</SECTION>

View file

@ -1,9 +0,0 @@
#include <gst/gst.h>
#include <gst/vaapi/gstvaapidecode.h>
#include <gst/vaapi/gstvaapipostproc.h>
#include <gst/vaapi/gstvaapisink.h>
gst_vaapidecode_get_type
gst_vaapipostproc_get_type
gst_vaapisink_get_type

2
docs/version.entities.in Normal file
View file

@ -0,0 +1,2 @@
<!ENTITY GST_API_VERSION "@GST_API_VERSION@">
<!ENTITY GST_VERSION "@VERSION@">