Documentation
| Appendix G. Wrapping C Libraries with gmmproc |

## Documentation

In general, gtkmm-style projects use Doxygen, which reads specially formatted C++ comments and generates HTML documentation. You may write these doxygen comments directly in the header files.

### Reusing C documentation

You might wish to reuse documentation that exists for the C library that you are wrapping. GTK-style C libraries typically use gtk-doc and therefore have source code comments formatted for gtk-doc and some extra documentation in .tmpl files. The docextract_to_xml.py script, from pygobject's codegen directory, can read these files and generate an .xml file that gmmproc can use to generate doxygen comments. gmmproc will even try to transform the documentation to make it more appropriate for a C++ API.

For instance,

    ./docextract_to_xml.py -s /gnome/head/cvs/gtk+/gtk/ -s /gnome/head/cvs/gtk+/docs/reference/gtk/tmpl/ > gtk_docs.xml

Because this automatic transformation is not always appropriate, you might want to provide hand-written text for a particular method. You can do this by copying the XML node for the function from your `something_docs.xml` file to the `something_docs_override.xml` file and changing the contents.

### Documentation build structure

If you copied the skeleton source tree in mm-common and substituted the placeholder text, then you will already have suitable `Makefile.am` and `Doxyfile.in` files. With the mm-common build setup, the list of Doxygen input files is not defined in the Doxygen configuration file, but passed along from make to the standard input of doxygen. The input file list is defined by the `doc_input` variable in the `Makefile.am` file.

Problems in the C API. |  | Appendix H. Optional API