Using Doxygen for API documentation

Version 9 (Trond Lossius, 2012-08-27 02:00 pm)

1 6 Trond Lossius
h1. Using Doxygen for API Documentation
2 1 Trond Lossius
3 1 Trond Lossius
"Doxygen":http://www.stack.nl/~dimitri/doxygen/ is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D. It is used for documenting parts of the source code for the various Jamoma projects, although not as much as we would like to...
4 1 Trond Lossius
5 4 Trond Lossius
h2. Setting up Doxygen
6 4 Trond Lossius
7 1 Trond Lossius
To use it, you will have to download and install:
8 1 Trond Lossius
9 1 Trond Lossius
* "Doxygen":http://www.stack.nl/~dimitri/doxygen/ - version  1.6.0 or later
10 1 Trond Lossius
* Graphviz
11 7 Trond Lossius
** "Graphviz for Mac OSX":http://www.ryandesign.com/graphviz/ - we currently use version 2.14.1. Instructions on how to set up Graphviz with Mountain Lion can be found below.
12 1 Trond Lossius
** "graphviz for "Windows":http://www.graphviz.org/Download_windows.php
13 1 Trond Lossius
14 1 Trond Lossius
h2. Generating Doxygen documentation
15 1 Trond Lossius
16 3 Trond Lossius
_This description was written using Mac, but hopefully it is similar on Windows._
17 1 Trond Lossius
18 1 Trond Lossius
# Open the Doxygen application
19 1 Trond Lossius
# From the *File* menu, choose *Open...* and inside your local clone of the GIT repository locate e.g. @/Modules/Foundations/documentation/Doxfile@
20 1 Trond Lossius
# All settings should be fine, so go to the *Run* tab and click the *Run doxygen* button. If you have generated documentation previously, you might want to throw out the @/Modules/Foundations/documentation/html/@ folder first.
21 1 Trond Lossius
22 1 Trond Lossius
h2. Using Doxygen documentation
23 5 Trond Lossius
24 5 Trond Lossius
* A number of articles on Doxygen can be found "here":http://www.stack.nl/~dimitri/doxygen/articles.html.
25 1 Trond Lossius
* Online Doxygen documentation of the Jamoma projects is available "here":http://www.jamoma.org/api-documentation/index.html.
26 7 Trond Lossius
27 7 Trond Lossius
h2. Setting up Graphviz with OSX Mountain Lion
28 7 Trond Lossius
29 7 Trond Lossius
# Open Terminal and type @which dot@
30 7 Trond Lossius
# If you get a reply to this, Graphviz is already installed.
31 7 Trond Lossius
# If not you can install it using either Homebrew or MacPorts.
32 7 Trond Lossius
## Homebrew:
33 7 Trond Lossius
### Install homebrew according to instructions "here":http://mxcl.github.com/homebrew/.
34 7 Trond Lossius
### Install Graphviz by running the terminal command @brew install graphviz@
35 7 Trond Lossius
## MacPorts:
36 7 Trond Lossius
### Install macPorts according to instructions "here":http://www.macports.org.
37 7 Trond Lossius
### Remember to run the command @sudo port selfupdate@
38 7 Trond Lossius
### Install Graphviz using the command @sudo port install graphviz@
39 7 Trond Lossius
# Once Graphviz is installed you'll need to tell Doxygen where to look for it:
40 7 Trond Lossius
## IN Terminal, type the command @which dot@
41 8 Trond Lossius
## In Doxygen, provide the path to Graphviz as illustrated below:
42 8 Trond Lossius
43 9 Trond Lossius
<img src="http://redmine.jamoma.org/attachments/177/Screen_Shot_2012-08-27_at_1.57.04_PM.png" width="80%25" />