Skip to content

Commit

Permalink
Add gtk-doc support
Browse files Browse the repository at this point in the history
Installation now requires gtk-doc. Reference documentation builds in
doc/reference. The actual documentation is a work in progress.
  • Loading branch information
acrisci committed Mar 18, 2014
1 parent 3e450cf commit 80098da
Show file tree
Hide file tree
Showing 7 changed files with 155 additions and 3 deletions.
4 changes: 2 additions & 2 deletions Makefile.am
@@ -1,3 +1,3 @@
ACLOCAL_AMFLAGS = -I build/autotools
DISTCHECK_CONFIGURE_FLAGS = --enable-introspection
SUBDIRS=i3ipc-glib
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-introspection
SUBDIRS=i3ipc-glib doc
7 changes: 7 additions & 0 deletions autogen.sh
Expand Up @@ -16,6 +16,12 @@ test $TEST_TYPE $FILE || {
exit 1
}

GTKDOCIZE=`which gtkdocize`
if test -z $GTKDOCIZE; then
echo "*** No GTK-Doc found, please install it ***"
exit 1
fi

AUTORECONF=`which autoreconf`
if test -z $AUTORECONF; then
echo "*** No autoreconf found, please install it ***"
Expand All @@ -32,6 +38,7 @@ fi

rm -rf autom4te.cache

gtkdocize || exit $?
autoreconf --force --install --verbose || exit $?

cd "$olddir"
Expand Down
24 changes: 23 additions & 1 deletion configure.ac
@@ -1,6 +1,12 @@
m4_define([i3ipc_major_version], [0])
m4_define([i3ipc_minor_version], [1])
m4_define([i3ipc_micro_version], [2])

m4_define([i3ipc_version], [i3ipc_major_version.i3ipc_minor_version.i3ipc_micro_version])

AC_PREREQ(2.69)

AC_INIT([i3-ipc], [0.1.2], [tony@dubstepdish.com])
AC_INIT([i3ipc], [i3ipc_version], [tony@dubstepdish.com])

AC_CONFIG_AUX_DIR([build])
AC_CONFIG_MACRO_DIR([build/autotools])
Expand Down Expand Up @@ -35,12 +41,28 @@ AM_PROG_AR
AM_SILENT_RULES([yes])
LT_INIT

# Versioning
I3IPC_MAJOR_VERSION=i3ipc_major_version
I3IPC_MINOR_VERSION=i3ipc_minor_version
I3IPC_MICRO_VERSION=i3ipc_micro_version
I3IPC_VERSION=i3ipc_version
AC_SUBST(I3IPC_MAJOR_VERSION)
AC_SUBST(I3IPC_MINOR_VERSION)
AC_SUBST(I3IPC_MICRO_VERSION)
AC_SUBST(I3IPC_VERSION)

GOBJECT_INTROSPECTION_CHECK([1.32.0])

# Check for gtk-doc
GTK_DOC_CHECK([1.14],[--flavour no-tmpl])

AC_CONFIG_FILES([
Makefile
i3ipc-glib/Makefile
i3ipc-glib/i3ipc-glib.pc
doc/Makefile
doc/reference/Makefile
doc/reference/version.xml
])

AC_OUTPUT
1 change: 1 addition & 0 deletions doc/Makefile.am
@@ -0,0 +1 @@
SUBDIRS = reference
81 changes: 81 additions & 0 deletions doc/reference/Makefile.am
@@ -0,0 +1,81 @@
# 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 = i3ipc-glib

# The top-level XML 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 = ../../i3ipc-glib

# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS =

# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS = --deprecated-guards="I3IPC_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=i3ipc

# 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=$(GLIB_PREFIX)/share/gtk-doc/html/gio

# 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)/i3ipc-glib/*.h $(top_builddir)/i3ipc-glib/*.h
CFILE_GLOB = $(top_srcdir)/i3ipc-glib/*.c

# Header files to ignore when scanning.
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h
IGNORE_HFILES = \
i3ipc-con-private.h \
i3ipc-enum-types.h \
i3ipc-glib.h

EXTRA_HFILES =

# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES =

# 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 = \
version.xml

# 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 =

# 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)

AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) $(gobject_CFLAGS)
GTKDOC_LIBS = $(top_builddir)/i3ipc-glib/libi3ipc-glib-1.0.la $(gobject_LIBS)

# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make

EXTRA_DIST += version.xml.in
40 changes: 40 additions & 0 deletions doc/reference/i3ipc-glib-docs.xml
@@ -0,0 +1,40 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY version SYSTEM "version.xml">
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
]>
<book id="index">
<bookinfo>
<title>i3ipc-glib Reference Manual</title>
<releaseinfo>
for i3ipc-glib &version;
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://dubstepdish.com/i3ipc-glib/index.html">http://dubstepdish.com/i3ipc-glib/</ulink>.
</releaseinfo>
</bookinfo>

<chapter>
<title>Data Types</title>
<xi:include href="xml/i3ipc-con.xml"/>
<xi:include href="xml/i3ipc-connection.xml"/>
<xi:include href="xml/i3ipc-event-types.xml"/>
<xi:include href="xml/i3ipc-reply-types.xml"/>

</chapter>
<chapter id="object-tree">
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
</chapter>
<index id="api-index-full">
<title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<index id="deprecated-api-index" role="deprecated">
<title>Index of deprecated API</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
</index>

<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
</book>
1 change: 1 addition & 0 deletions doc/reference/version.xml.in
@@ -0,0 +1 @@
@I3IPC_VERSION@

0 comments on commit 80098da

Please sign in to comment.