|
Packit Service |
50c9f2 |
/******************************************************************************
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
* Copyright (C) 1997-2015 by Dimitri van Heesch.
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
* Permission to use, copy, modify, and distribute this software and its
|
|
Packit Service |
50c9f2 |
* documentation under the terms of the GNU General Public License is hereby
|
|
Packit Service |
50c9f2 |
* granted. No representations are made about the suitability of this software
|
|
Packit Service |
50c9f2 |
* for any purpose. It is provided "as is" without express or implied warranty.
|
|
Packit Service |
50c9f2 |
* See the GNU General Public License for more details.
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
* Documents produced by Doxygen are derivative works derived from the
|
|
Packit Service |
50c9f2 |
* input used in their production; they are not affected by this license.
|
|
Packit Service |
50c9f2 |
*
|
|
Packit Service |
50c9f2 |
*/
|
|
Packit Service |
50c9f2 |
/*!
|
|
Packit Service |
50c9f2 |
\mainpage
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
\if logo_on
|
|
Packit Service |
50c9f2 |
<center>
|
|
Packit Service |
50c9f2 |
\htmlonly
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Version: $(VERSION)
|
|
Packit Service |
50c9f2 |
\endhtmlonly
|
|
Packit Service |
50c9f2 |
</center>
|
|
Packit Service |
50c9f2 |
\endif
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Introduction
|
|
Packit Service |
50c9f2 |
Doxygen is the de facto standard tool for generating documentation from
|
|
Packit Service |
50c9f2 |
annotated C++ sources, but it also supports other popular programming
|
|
Packit Service |
50c9f2 |
languages such as C, Objective-C, C#, PHP, Java, Python, IDL
|
|
Packit Service |
50c9f2 |
(Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Doxygen can help you in three ways:
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
It can generate an on-line documentation browser (in HTML) and/or an
|
|
Packit Service |
50c9f2 |
off-line reference manual (in \LaTeX) from a set
|
|
Packit Service |
50c9f2 |
of documented source files.
|
|
Packit Service |
50c9f2 |
There is also support for generating output in RTF (MS-Word),
|
|
Packit Service |
50c9f2 |
PostScript, hyperlinked PDF, compressed HTML, and Unix man pages.
|
|
Packit Service |
50c9f2 |
The documentation is extracted directly from the sources, which
|
|
Packit Service |
50c9f2 |
makes it much easier to keep the documentation consistent with the
|
|
Packit Service |
50c9f2 |
source code.
|
|
Packit Service |
50c9f2 |
You can \ref extract_all "configure" doxygen to extract the code structure
|
|
Packit Service |
50c9f2 |
from undocumented source files. This is very useful to quickly
|
|
Packit Service |
50c9f2 |
find your way in large source distributions.
|
|
Packit Service |
50c9f2 |
Doxygen can also visualize the relations between the various elements
|
|
Packit Service |
50c9f2 |
by means of include dependency graphs, inheritance diagrams,
|
|
Packit Service |
50c9f2 |
and collaboration diagrams, which are all generated automatically.
|
|
Packit Service |
50c9f2 |
You can also use doxygen for creating normal documentation (as I did
|
|
Packit Service |
50c9f2 |
for the doxygen user manual and web-site).
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Doxygen is developed under Mac OS X and Linux, but is set-up to be highly
|
|
Packit Service |
50c9f2 |
portable. As a result, it runs on most other Unix flavors as well.
|
|
Packit Service |
50c9f2 |
Furthermore, executables for Windows are available.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
\n
|
|
Packit Service |
50c9f2 |
This manual is divided into three parts, each of which is divided into several sections.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
The first part forms a user manual:
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Section \ref install discusses how to
|
|
Packit Service |
50c9f2 |
download, compile and install
|
|
Packit Service |
50c9f2 |
doxygen for your platform.
|
|
Packit Service |
50c9f2 |
Section \ref starting tells you how to generate your first piece of
|
|
Packit Service |
50c9f2 |
documentation quickly.
|
|
Packit Service |
50c9f2 |
Section \ref docblocks demonstrates the various ways that code can
|
|
Packit Service |
50c9f2 |
be documented.
|
|
Packit Service |
50c9f2 |
Section \ref markdown show the Markdown formatting supported by doxygen.
|
|
Packit Service |
50c9f2 |
Section \ref lists shows how to create lists.
|
|
Packit Service |
50c9f2 |
Section \ref grouping shows how to group things together.
|
|
Packit Service |
50c9f2 |
Section \ref formulas shows how to insert formulas in the documentation.
|
|
Packit Service |
50c9f2 |
Section \ref diagrams describes the diagrams and graphs that doxygen can generate.
|
|
Packit Service |
50c9f2 |
Section \ref preprocessing explains how doxygen deals with macro definitions.
|
|
Packit Service |
50c9f2 |
Section \ref autolink shows how to put links to files, classes,
|
|
Packit Service |
50c9f2 |
and members in the documentation.
|
|
Packit Service |
50c9f2 |
Section \ref output shows how to generate the various output formats
|
|
Packit Service |
50c9f2 |
supported by doxygen.
|
|
Packit Service |
50c9f2 |
Section \ref searching shows various ways to search in the HTML documentation.
|
|
Packit Service |
50c9f2 |
Section \ref extsearch shows how use the external search and index tools
|
|
Packit Service |
50c9f2 |
Section \ref customize explains how you can customize the output generated
|
|
Packit Service |
50c9f2 |
by doxygen.
|
|
Packit Service |
50c9f2 |
Section \ref custcmd show how to define and use custom commands in your comments.
|
|
Packit Service |
50c9f2 |
Section \ref external explains how to let doxygen create links to externally generated documentation.
|
|
Packit Service |
50c9f2 |
Section \ref faq gives answers to frequently asked questions.
|
|
Packit Service |
50c9f2 |
Section \ref trouble tells you what to do when you have problems.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
The second part forms a reference manual:
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Section \ref features presents an overview of what doxygen can do.
|
|
Packit Service |
50c9f2 |
Section \ref doxygen_usage shows how to use the \c doxygen program.
|
|
Packit Service |
50c9f2 |
Section \ref doxywizard_usage shows how to use the \c doxywizard program.
|
|
Packit Service |
50c9f2 |
Section \ref config shows how to fine-tune doxygen, so it
|
|
Packit Service |
50c9f2 |
generates the documentation you want.
|
|
Packit Service |
50c9f2 |
Section \ref commands shows an overview of the special commands that can be
|
|
Packit Service |
50c9f2 |
used within the documentation.
|
|
Packit Service |
50c9f2 |
Section \ref htmlcmds shows an overview of the HTML commands that
|
|
Packit Service |
50c9f2 |
can be used within the documentation.
|
|
Packit Service |
50c9f2 |
Section \ref xmlcmds shows an overview of the C# style XML commands that
|
|
Packit Service |
50c9f2 |
can be used within the documentation.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
The third part provides information for developers:
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Section \ref arch gives a global overview of how doxygen is internally
|
|
Packit Service |
50c9f2 |
structured.
|
|
Packit Service |
50c9f2 |
Section \ref perlmod shows how to use the PerlMod output.
|
|
Packit Service |
50c9f2 |
Section \ref langhowto explains how to add support for new
|
|
Packit Service |
50c9f2 |
output languages.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
\nDoxygen license
|
|
Packit Service |
50c9f2 |
\addindex license
|
|
Packit Service |
50c9f2 |
\addindex GPL
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Copyright © 1997-2016 by
|
|
Packit Service |
50c9f2 |
Dimitri van Heesch.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Permission to use, copy, modify, and distribute this software and its
|
|
Packit Service |
50c9f2 |
documentation under the terms of the GNU General Public License is hereby
|
|
Packit Service |
50c9f2 |
granted. No representations are made about the suitability of this software
|
|
Packit Service |
50c9f2 |
for any purpose. It is provided "as is" without express or implied warranty.
|
|
Packit Service |
50c9f2 |
See the
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
GNU General Public License
|
|
Packit Service |
50c9f2 |
for more details.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Documents produced by doxygen are derivative works derived from the
|
|
Packit Service |
50c9f2 |
input used in their production; they are not affected by this license.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
User examples
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Doxygen supports a number of \ref output "output formats" where HTML is the
|
|
Packit Service |
50c9f2 |
most popular one. I've gathered
|
|
Packit Service |
50c9f2 |
some nice examples
|
|
Packit Service |
50c9f2 |
of real-life projects using doxygen.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
These are part of a larger
|
|
Packit Service |
50c9f2 |
list of projects
|
|
Packit Service |
50c9f2 |
that use doxygen.
|
|
Packit Service |
50c9f2 |
If you know other projects, let me
|
|
Packit Service |
50c9f2 |
know and I'll add them.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Future work
|
|
Packit Service |
50c9f2 |
Although doxygen is successfully used by large number of companies and
|
|
Packit Service |
50c9f2 |
open source projects already, there is always room for improvement.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
You can submit enhancement requests in
|
|
Packit Service |
50c9f2 |
the bug tracker.
|
|
Packit Service |
50c9f2 |
Make sure the severity of the bug report is set to "enhancement".
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
Acknowledgments
|
|
Packit Service |
50c9f2 |
\addindex acknowledgments
|
|
Packit Service |
50c9f2 |
Thanks go to:
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
\addindex Doc++
|
|
Packit Service |
50c9f2 |
Malte Zöckler and Roland Wunderling, authors of DOC++.
|
|
Packit Service |
50c9f2 |
The first version of doxygen borrowed some code of an old version of DOC++.
|
|
Packit Service |
50c9f2 |
Although I have rewritten practically all code since then, DOC++ has still
|
|
Packit Service |
50c9f2 |
given me a good start in writing doxygen.
|
|
Packit Service |
50c9f2 |
All people at Qt Software, for creating a beautiful GUI Toolkit
|
|
Packit Service |
50c9f2 |
(which is very useful as a Windows/Unix platform abstraction layer :-)
|
|
Packit Service |
50c9f2 |
My brother Frank
|
|
Packit Service |
50c9f2 |
for rendering the logos.
|
|
Packit Service |
50c9f2 |
Harm van der Heijden for adding HTML help support.
|
|
Packit Service |
50c9f2 |
Wouter Slegers of
|
|
Packit Service |
50c9f2 |
Your Creative Solutions
|
|
Packit Service |
50c9f2 |
for registering the www.doxygen.org domain.
|
|
Packit Service |
50c9f2 |
Parker Waechter for adding the RTF output generator.
|
|
Packit Service |
50c9f2 |
Joerg Baumann, for adding conditional documentation blocks,
|
|
Packit Service |
50c9f2 |
PDF links, and the configuration generator.
|
|
Packit Service |
50c9f2 |
Tim Mensch for adding the todo command.
|
|
Packit Service |
50c9f2 |
Christian Hammond for redesigning the web-site.
|
|
Packit Service |
50c9f2 |
Ken Wong for providing the HTML tree view code.
|
|
Packit Service |
50c9f2 |
Talin for adding support for C# style comments with XML markup.
|
|
Packit Service |
50c9f2 |
Petr Prikryl for coordinating the internationalization support.
|
|
Packit Service |
50c9f2 |
All language maintainers for providing translations into many languages.
|
|
Packit Service |
50c9f2 |
The band Porcupine Tree for
|
|
Packit Service |
50c9f2 |
providing hours of great music to listen to while coding.
|
|
Packit Service |
50c9f2 |
many, many others for suggestions, patches and bug reports.
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
\htmlonly
|
|
Packit Service |
50c9f2 |
Go to the next section.
|
|
Packit Service |
50c9f2 |
\endhtmlonly
|
|
Packit Service |
50c9f2 |
|
|
Packit Service |
50c9f2 |
*/
|
|
Packit Service |
50c9f2 |
|