From 80098da94fee96888bf09e2d129c9fde9b3a8e75 Mon Sep 17 00:00:00 2001 From: Tony Crisci Date: Tue, 18 Mar 2014 18:05:46 -0400 Subject: [PATCH] Add gtk-doc support Installation now requires gtk-doc. Reference documentation builds in doc/reference. The actual documentation is a work in progress. --- Makefile.am | 4 +- autogen.sh | 7 +++ configure.ac | 24 ++++++++- doc/Makefile.am | 1 + doc/reference/Makefile.am | 81 +++++++++++++++++++++++++++++++ doc/reference/i3ipc-glib-docs.xml | 40 +++++++++++++++ doc/reference/version.xml.in | 1 + 7 files changed, 155 insertions(+), 3 deletions(-) create mode 100644 doc/Makefile.am create mode 100644 doc/reference/Makefile.am create mode 100644 doc/reference/i3ipc-glib-docs.xml create mode 100644 doc/reference/version.xml.in diff --git a/Makefile.am b/Makefile.am index 849bc49..4db705e 100644 --- a/Makefile.am +++ b/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 diff --git a/autogen.sh b/autogen.sh index 1ce7496..791651c 100755 --- a/autogen.sh +++ b/autogen.sh @@ -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 ***" @@ -32,6 +38,7 @@ fi rm -rf autom4te.cache +gtkdocize || exit $? autoreconf --force --install --verbose || exit $? cd "$olddir" diff --git a/configure.ac b/configure.ac index c2d1b22..e9ea2d4 100644 --- a/configure.ac +++ b/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]) @@ -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 diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..f3ddc22 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = reference diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am new file mode 100644 index 0000000..e8a9ac6 --- /dev/null +++ b/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 diff --git a/doc/reference/i3ipc-glib-docs.xml b/doc/reference/i3ipc-glib-docs.xml new file mode 100644 index 0000000..9453813 --- /dev/null +++ b/doc/reference/i3ipc-glib-docs.xml @@ -0,0 +1,40 @@ + + + +]> + + + i3ipc-glib Reference Manual + + for i3ipc-glib &version; + The latest version of this documentation can be found on-line at + http://dubstepdish.com/i3ipc-glib/. + + + + + Data Types + + + + + + + + Object Hierarchy + + + + API Index + + + + Index of deprecated API + + + + + diff --git a/doc/reference/version.xml.in b/doc/reference/version.xml.in new file mode 100644 index 0000000..340287b --- /dev/null +++ b/doc/reference/version.xml.in @@ -0,0 +1 @@ +@I3IPC_VERSION@