diff --git a/Makefile.am b/Makefile.am index 733050f6db..5f1e34875b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ # Point to our macro directory and pick up user flags from the environment ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} -SUBDIRS = data js src tests po man files +SUBDIRS = data js src tests po man files docs EXTRA_DIST = \ .project \ diff --git a/configure.ac b/configure.ac index 86e02425e5..f89081400c 100644 --- a/configure.ac +++ b/configure.ac @@ -221,10 +221,17 @@ AC_SUBST(CINNAMON_SYSTEM_CA_FILE,["$with_ca_certificates"]) BROWSER_PLUGIN_DIR="${BROWSER_PLUGIN_DIR:-"\${libdir}/mozilla/plugins"}" AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to]) +GTK_DOC_CHECK([1.15], [--flavour no-tmpl]) AC_CONFIG_FILES([ Makefile data/Makefile data/icons/Makefile + docs/Makefile + docs/reference/Makefile + docs/reference/cinnamon/Makefile + docs/reference/cinnamon/cinnamon-docs.sgml + docs/reference/st/Makefile + docs/reference/st/st-docs.sgml js/Makefile js/misc/config.js src/Makefile diff --git a/debian/cinnamon-doc.install b/debian/cinnamon-doc.install new file mode 100644 index 0000000000..e0ba7d7773 --- /dev/null +++ b/debian/cinnamon-doc.install @@ -0,0 +1 @@ +/usr/share/gtk-doc diff --git a/debian/control b/debian/control index 503c98a0d5..97c618b4a5 100644 --- a/debian/control +++ b/debian/control @@ -38,7 +38,8 @@ Build-Depends: debhelper (>= 8), libxss-dev, libpulse-dev, libpolkit-agent-1-dev (>= 0.100), - libjson-glib-dev (>= 0.13.2) + libjson-glib-dev (>= 0.13.2), + gtk-doc-tools Standards-Version: 3.9.1 Homepage: http://cinnamon.linuxmint.com @@ -121,3 +122,12 @@ Description: Cinnamon desktop (Common data files) Cinnamon is a modern Linux desktop which provides advanced innovative features and a traditional user experience. It's easy to use, powerful and flexible. . This package contains the architecture independent files needed by Cinnamon + +Package: cinnamon-doc +Section: doc +Architecture: all +Depends: ${misc:Depends}, devhelp +Description: Cinnamon documentation + Cinnamon is a modern Linux desktop which provides advanced innovative features and a traditional user experience. It's easy to use, powerful and flexible. + . + This package contains the code documentation for various Cinnamon components. diff --git a/debian/rules b/debian/rules index fc7307eeb4..7b6e9b075d 100755 --- a/debian/rules +++ b/debian/rules @@ -29,7 +29,8 @@ override_dh_autoreconf: override_dh_auto_configure: dh_auto_configure -- --enable-compile-warnings=yes \ - --disable-schemas-install + --disable-schemas-install\ + --enable-gtk-doc # Disable checks since they are not functional for the moment override_dh_auto_test: diff --git a/docs/Makefile.am b/docs/Makefile.am new file mode 100644 index 0000000000..f3ddc22ddc --- /dev/null +++ b/docs/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = reference diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am new file mode 100644 index 0000000000..1185c640c4 --- /dev/null +++ b/docs/reference/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = cinnamon st diff --git a/docs/reference/cinnamon/Makefile.am b/docs/reference/cinnamon/Makefile.am new file mode 100644 index 0000000000..cda9434f41 --- /dev/null +++ b/docs/reference/cinnamon/Makefile.am @@ -0,0 +1,114 @@ +## 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=cinnamon + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +#DOC_MODULE_VERSION=2 + + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# Directories containing the source code +# gtk-doc will search all .c and .h files beneath these paths +# for inline comments documenting functions and macros. +DOC_SOURCE_DIR=$(top_srcdir)/src + +# 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=--rebuild-types + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml +MKDB_OPTIONS=--xml-mode --output-format=xml + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS= + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_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= + +# 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)/src/*.h +CFILE_GLOB=$(top_srcdir)/src/*.c + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +EXTRA_HFILES= + +# Header files or dirs to ignore when scanning. Use base file/dir names +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code +IGNORE_HFILES= \ + calendar-server \ + gvc \ + hotplug-sniffer \ + st \ + tray \ + gactionmuxer.h \ + gactionobservable.h \ + gactionobserver.h \ + cinnamon-network-agent.h \ + cinnamon-recorder-src.h + +if !BUILD_RECORDER +IGNORE_HFILES += cinnamon-recorder.h +endif + +# Images to copy into HTML directory. +# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png +HTML_IMAGES= + +# 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. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS=$(GNOME_SHELL_CFLAGS) +GTKDOC_LIBS=$(GNOME_SHELL_LIBS) $(top_builddir)/src/libcinnamon.la + +# 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 += + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +DISTCLEANFILES = $(DOC_MODULES).types + +# Comment this out if you want 'make check' to test you doc status +# and run some sanity checks +if ENABLE_GTK_DOC +TESTS_ENVIRONMENT = cd $(srcdir) && \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) +#TESTS = $(GTKDOC_CHECK) +endif + +-include $(top_srcdir)/git.mk diff --git a/docs/reference/cinnamon/cinnamon-docs.sgml.in b/docs/reference/cinnamon/cinnamon-docs.sgml.in new file mode 100644 index 0000000000..4b94f8a380 --- /dev/null +++ b/docs/reference/cinnamon/cinnamon-docs.sgml.in @@ -0,0 +1,62 @@ + + +]> + + + Cinnamon Reference Manual + + for Cinnamon @VERSION@. + + + + + Actors + + + + + + Application tracking + + + + + Search + + + + Tray Icons + + + + + + + Recorder + + + + Integration helpers and utilities + + + + + + + Object Hierarchy + + + + API Index + + + + Index of deprecated API + + + + + diff --git a/docs/reference/st/Makefile.am b/docs/reference/st/Makefile.am new file mode 100644 index 0000000000..9a5efd045c --- /dev/null +++ b/docs/reference/st/Makefile.am @@ -0,0 +1,104 @@ +## 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=st + +# Uncomment for versioned docs and specify the version of the module, e.g. '2'. +#DOC_MODULE_VERSION=2 + + +# The top-level SGML file. You can change this if you want to. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# Directories containing the source code +# gtk-doc will search all .c and .h files beneath these paths +# for inline comments documenting functions and macros. +DOC_SOURCE_DIR=$(top_srcdir)/src/st + +# 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=--rebuild-types --rebuild-sections + +# Extra options to supply to gtkdoc-mkdb. +# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml +MKDB_OPTIONS=--xml-mode --output-format=xml + +# Extra options to supply to gtkdoc-mktmpl +# e.g. MKTMPL_OPTIONS=--only-section-tmpl +MKTMPL_OPTIONS= + +# Extra options to supply to gtkdoc-mkhtml +MKHTML_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= + +# 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)/src/st/*.h +CFILE_GLOB=$(top_srcdir)/src/st/*.c + +# Extra header to include when scanning, which are not under DOC_SOURCE_DIR +# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h +EXTRA_HFILES= + +# Header files or dirs to ignore when scanning. Use base file/dir names +# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code +IGNORE_HFILES=st-private.h st-theme-node-private.h + +# 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= + +# 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. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) +# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) +GTKDOC_CFLAGS= +GTKDOC_LIBS=$(top_builddir)/src/libst-1.0.la + +# 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 += + +# Files not to distribute +# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types +# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt +DISTCLEANFILES = $(DOC_MODULE).types $(DOC_MODULE)-sections.txt + +# Comment this out if you want 'make check' to test you doc status +# and run some sanity checks +if ENABLE_GTK_DOC +TESTS_ENVIRONMENT = cd $(srcdir) && \ + DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ + SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) +#TESTS = $(GTKDOC_CHECK) +endif + +-include $(top_srcdir)/git.mk diff --git a/docs/reference/st/st-docs.sgml.in b/docs/reference/st/st-docs.sgml.in new file mode 100644 index 0000000000..22d1db444c --- /dev/null +++ b/docs/reference/st/st-docs.sgml.in @@ -0,0 +1,64 @@ + + +]> + + + St Reference Manual + + for St @VERSION@. + + + + + + API reference + + Abstract classes and Interfaces + + + + + + Widgets + + + + + + + + Containers + + + + + + + + Styling + + + + + + + + + Object Hierarchy + + + + API Index + + + + Index of deprecated API + + + + +