doc: Auto-generate API methods and classes documentation
authorTiago Vignatti <tiago.vignatti@intel.com>
Fri, 9 Nov 2012 22:14:31 +0000 (20:14 -0200)
committerTiago Vignatti <tiago.vignatti@intel.com>
Mon, 12 Nov 2012 18:08:29 +0000 (16:08 -0200)
There's work to do still for giving a prettier style on the documentation, for
instance splitting paragraphs correctly and printing the detailed description
of the methods as well.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
doc/Wayland/Makefile.am
doc/Wayland/doxygen-to-publican.xsl

index 4a7f2cd..71ae9b8 100644 (file)
@@ -32,10 +32,20 @@ en-US/ProtocolInterfaces.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/proto
        $(AM_V_GEN)$(XSLTPROC) $(srcdir)/protocol-interfaces-to-docbook.xsl \
                $(top_srcdir)/protocol/wayland.xml > en-US/ProtocolInterfaces.xml
 
-en-US/WaylandClientAPI.xml: $(top_builddir)/doc/doxygen/xml/wayland-client_8h.xml $(srcdir)/doxygen-to-publican.xsl
+# WaylandClientAPI.xml is generated after combining all xml in one single file
+# with the exception of wayland-client_8h.xml that is omitted to not duplicate
+# the output methods.
+en-US/WaylandClientAPI.xml: $(top_builddir)/doc/doxygen/xml/index.xml $(srcdir)/doxygen-to-publican.xsl
        $(AM_V_GEN)$(MKDIR_P) en-US/images
+       $(AM_V_GEN)mv $(top_srcdir)/doc/doxygen/xml/wayland-client_8h.xml \
+               $(top_srcdir)/doc/doxygen/
+       $(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/doxygen/xml/combine.xslt \
+               $(top_srcdir)/doc/doxygen/xml/index.xml > \
+               $(top_srcdir)/doc/doxygen/xml/clientAPI.xml
+       $(AM_V_GEN)mv $(top_srcdir)/doc/doxygen/wayland-client_8h.xml \
+               $(top_srcdir)/doc/doxygen/xml
        $(AM_V_GEN)$(XSLTPROC) $(srcdir)/doxygen-to-publican.xsl \
-               $(top_builddir)/doc/doxygen/xml/wayland-client_8h.xml > en-US/WaylandClientAPI.xml
+               $(top_builddir)/doc/doxygen/xml/clientAPI.xml > en-US/WaylandClientAPI.xml
 
 # Copy the en_US source files into en-US destination
 # This is required for out-of-source-tree build as publican does not allow us
index bd1f5a4..3ddcbd3 100644 (file)
@@ -13,7 +13,7 @@
 
   <section id="sect-Library-Client">
     <title>Client API</title>
-    <para>Following is the Wayland library interface for clients
+    <para>Following is the Wayland library classes for clients
          (<emphasis>libwayland-client</emphasis>). Note that most of the
          procedures are related with IPC, which is the main responsibility of
          the library.
 
     <para>
     <variablelist>
+    <xsl:apply-templates select="/doxygen/compounddef" />
+    </variablelist>
+    </para>
+
+    <para>And methods for the respective classes.</para>
+
+    <para>
+    <variablelist>
     <xsl:apply-templates select="/doxygen/compounddef/sectiondef/memberdef" />
     </variablelist>
     </para>
   </section>
 </xsl:template>
 
-<xsl:template match="memberdef" >
-    <xsl:if test="@kind = 'function'">
-  <varlistentry>
 
-      <term>
-      <xsl:value-of select="name" />
-      </term>
-    <listitem>
-    <para>
-      <xsl:value-of select="briefdescription" />
-    </para>
-    </listitem>
-  </varlistentry>
-  </xsl:if>
+<!-- methods -->
+<xsl:template match="memberdef" >
+    <xsl:if test="@kind = 'function' and @static = 'no'">
+    <varlistentry>
+        <term>
+        <xsl:value-of select="name" />
+        - <xsl:value-of select="briefdescription" />
+        </term>
+        <listitem>
+            <para></para>
+        </listitem>
+    </varlistentry>
+    </xsl:if>
 </xsl:template>
 
+<!-- classes -->
+<xsl:template match="compounddef" >
+    <xsl:if test="@kind = 'class' ">
+    <varlistentry>
+        <term>
+            <xsl:value-of select="compoundname" />
+            <xsl:if test="briefdescription">
+                - <xsl:value-of select="briefdescription" />
+            </xsl:if>
+        </term>
+
+        <!-- TODO: the output text is not splitting paragraphs correctly -->
+        <listitem>
+            <para><xsl:value-of select="detaileddescription"/></para>
+        </listitem>
+    </varlistentry>
+    </xsl:if>
+</xsl:template>
 </xsl:stylesheet>