Doxygen

From WxWiki
Revision as of 20:51, 3 June 2008 by Cmb (talk | contribs) (Adjusted header levels. Corrected some grammar.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Overview

  • Free.
  • Executables for at least Linux and MSW.
  • Uses a formatted C or C++ comment before an object to document it.
  • An example of Doxygen source code documentation output for a wxWidgets application can be viewed at the Plucker Desktop Source
  • Find more details see the Doxygen Website.
  • Doxygen has been chosen to generate wxWidgets documentation. See Development: Documentation.

wxWidgets Specific Tips

Compiler Directive List

Doxygen parsing obeys #ifdef and #if compiler directives when deciding what to parse. Therefore, you need to include a __WXGTK__ in the PREDEFINED tag if you want to document anything you put inside a __WXGTK__ #ifdef.

Tips

Shared Configuration Settings

If you are generating multiple versions of the documentation via multiple configuration files, it is much easier to maintain the common items, such as the compiler directive list, into a single file. You don't have to keep updating all config files. To do this put a

@INCLUDE="sharedsettingsfile"

at the bottom of each of your files for the different versions.

The second entry of a key (since shared settings were included at the bottom) will override the first value.

Custom Commands

You can make your own commands (they are called aliases in Doxygen). For example you can tell Doxygen that \licence should be parsed as a paragraph starting with License: then whatever follows the \license command.

Grouping

Grouping can be done in two ways:

  1. Use an \ingroup command if it's a single item
  2. Use an open brace command around the start of the group, and closing brace command at the end.

Only Having To Rewrite Virtual Docs Once

The INHERIT_DOCS key is very helpful if you have your own base class and you have things that inherit from it. For example, the pure virtuals are only documented in MyBaseClass class header, but MyDerivedClass will inherit them automatically.