|
Packit |
1c1d7e |
/******************************************************************************
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Copyright (C) 1997-2015 by Dimitri van Heesch.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Permission to use, copy, modify, and distribute this software and its
|
|
Packit |
1c1d7e |
* documentation under the terms of the GNU General Public License is hereby
|
|
Packit |
1c1d7e |
* granted. No representations are made about the suitability of this software
|
|
Packit |
1c1d7e |
* for any purpose. It is provided "as is" without express or implied warranty.
|
|
Packit |
1c1d7e |
* See the GNU General Public License for more details.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Documents produced by Doxygen are derivative works derived from the
|
|
Packit |
1c1d7e |
* input used in their production; they are not affected by this license.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
/*! \page features Features
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
\addindex features
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
Requires very little overhead from the writer of the documentation.
|
|
Packit |
1c1d7e |
Plain text will do, Markdown is support, and for more fancy or
|
|
Packit |
1c1d7e |
structured output HTML tags and/or some of doxygen's special commands
|
|
Packit |
1c1d7e |
can be used.
|
|
Packit |
1c1d7e |
Cross platform: works on Windows and many Unix flavors (including Linux and
|
|
Packit |
1c1d7e |
MacOSX).
|
|
Packit |
1c1d7e |
Indexes, organizes and generates browsable and cross-referenced
|
|
Packit |
1c1d7e |
output even from undocumented code.
|
|
Packit |
1c1d7e |
Generates structured XML output for parsed sources, which can be
|
|
Packit |
1c1d7e |
used by external tools.
|
|
Packit |
1c1d7e |
Supports C/C++, Java, (Corba and Microsoft) Java, Python, VHDL, PHP
|
|
Packit |
1c1d7e |
IDL, C#, Fortran, TCL, Objective-C 2.0, and to some extent D sources.
|
|
Packit |
1c1d7e |
Supports documentation of files, namespaces, packages, classes,
|
|
Packit |
1c1d7e |
structs, unions, templates, variables, functions, typedefs, enums and
|
|
Packit |
1c1d7e |
defines.
|
|
Packit |
1c1d7e |
JavaDoc (1.1), qdoc3 (partially), and ECMA-334 (C# spec.) compatible.
|
|
Packit |
1c1d7e |
Comes with a GUI frontend (Doxywizard) to ease editing the options and
|
|
Packit |
1c1d7e |
run doxygen. The GUI is available on Windows, Linux, and MacOSX.
|
|
Packit |
1c1d7e |
Automatically generates class and collaboration diagrams in HTML (as clickable
|
|
Packit |
1c1d7e |
image maps) and \LaTeX (as Encapsulated PostScript images).
|
|
Packit |
1c1d7e |
Uses the `dot` tool of the Graphviz tool kit to generate
|
|
Packit |
1c1d7e |
include dependency graphs, collaboration diagrams, call graphs, directory structure
|
|
Packit |
1c1d7e |
graphs, and graphical class hierarchy graphs.
|
|
Packit |
1c1d7e |
Allows grouping of entities in modules and creating a hierarchy of modules.
|
|
Packit |
1c1d7e |
Flexible comment placement: Allows you to put documentation in the
|
|
Packit |
1c1d7e |
header file (before the
|
|
Packit |
1c1d7e |
declaration of an entity), source file (before the definition of an entity)
|
|
Packit |
1c1d7e |
or in a separate file.
|
|
Packit |
1c1d7e |
Generates a list of all members of a class (including any inherited
|
|
Packit |
1c1d7e |
members) along with their protection level.
|
|
Packit |
1c1d7e |
Outputs documentation in on-line format (XHTML and UNIX man page) and
|
|
Packit |
1c1d7e |
off-line format (\LaTeX and RTF) simultaneously
|
|
Packit |
1c1d7e |
(any of these can be disabled if desired). All formats are optimized for
|
|
Packit |
1c1d7e |
ease of reading.
|
|
Packit |
1c1d7e |
Furthermore, compressed HTML can be generated from HTML output using
|
|
Packit |
1c1d7e |
Microsoft's HTML Help Workshop (Windows only) and PDF can be generated
|
|
Packit |
1c1d7e |
from the \LaTeX output.
|
|
Packit |
1c1d7e |
Support for various third party help formats including HTML Help,
|
|
Packit |
1c1d7e |
docsets, Qt-Help, and eclipse help.
|
|
Packit |
1c1d7e |
Includes a full C preprocessor to allow proper parsing of conditional
|
|
Packit |
1c1d7e |
code fragments and to allow expansion of all or part of macros definitions.
|
|
Packit |
1c1d7e |
Automatically detects public, protected and private sections, as well as
|
|
Packit |
1c1d7e |
the Qt specific signal and slots sections. Extraction of private class
|
|
Packit |
1c1d7e |
members is optional.
|
|
Packit |
1c1d7e |
Automatically generates references to documented classes, files, namespaces
|
|
Packit |
1c1d7e |
and members. Documentation of global functions, global variables,
|
|
Packit |
1c1d7e |
typedefs, defines and enumerations is also supported.
|
|
Packit |
1c1d7e |
References to base/super classes and inherited/overridden members are
|
|
Packit |
1c1d7e |
generated automatically.
|
|
Packit |
1c1d7e |
Includes a fast, rank based search engine to search for strings or words
|
|
Packit |
1c1d7e |
in the class and member documentation (PHP based).
|
|
Packit |
1c1d7e |
Includes an Javascript based live search feature to search for symbols
|
|
Packit |
1c1d7e |
as you type (for small to medium sized projects).
|
|
Packit |
1c1d7e |
You can type normal HTML tags in your documentation. Doxygen will convert
|
|
Packit |
1c1d7e |
them to their equivalent \LaTeX, RTF, and man-page
|
|
Packit |
1c1d7e |
counterparts automatically.
|
|
Packit |
1c1d7e |
Allows references to documentation generated for other (doxygen documented)
|
|
Packit |
1c1d7e |
projects (or another part of the same project) in a location independent way.
|
|
Packit |
1c1d7e |
Allows inclusion of source code examples that are automatically
|
|
Packit |
1c1d7e |
cross-referenced with the documentation.
|
|
Packit |
1c1d7e |
Inclusion of undocumented classes is also supported, allowing to quickly
|
|
Packit |
1c1d7e |
learn the structure and interfaces of a (large) piece of code without
|
|
Packit |
1c1d7e |
looking into the implementation details.
|
|
Packit |
1c1d7e |
Allows automatic cross-referencing of (documented) entities with their
|
|
Packit |
1c1d7e |
definition in the source code.
|
|
Packit |
1c1d7e |
All source code fragments are syntax highlighted for ease of reading.
|
|
Packit |
1c1d7e |
Allows inclusion of function/member/class definitions in the documentation.
|
|
Packit |
1c1d7e |
All options are read from an easy to edit and (optionally) annotated
|
|
Packit |
1c1d7e |
configuration file.
|
|
Packit |
1c1d7e |
Documentation and search engine can be transferred to another
|
|
Packit |
1c1d7e |
location or machine without regenerating the documentation.
|
|
Packit |
1c1d7e |
Supports many different character encodings and uses UTF-8 internally and
|
|
Packit |
1c1d7e |
for the generated output.
|
|
Packit |
1c1d7e |
Doxygen can generate a layout which you can use and edit to change the
|
|
Packit |
1c1d7e |
layout of each page.
|
|
Packit |
1c1d7e |
There more than a 100 configurable options to fine-tune the output.
|
|
Packit |
1c1d7e |
Can cope with large projects easily.
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
Although doxygen can now be used in any project written in a language that is
|
|
Packit |
1c1d7e |
supported by doxygen, initially it was specifically designed to be used for projects
|
|
Packit |
1c1d7e |
that make use of Qt Software's
|
|
Packit |
1c1d7e |
Qt toolkit. I have tried to
|
|
Packit |
1c1d7e |
make doxygen `Qt-compatible'. That is: Doxygen can read the documentation contained in
|
|
Packit |
1c1d7e |
the Qt source code and create a class browser that looks quite similar to the
|
|
Packit |
1c1d7e |
one that is generated by Qt Software. Doxygen understands the C++ extensions
|
|
Packit |
1c1d7e |
used by Qt such as signals and slots and many of the markup commands used in the Qt sources.
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
Doxygen can also automatically generate links to existing documentation
|
|
Packit |
1c1d7e |
that was generated with doxygen or with Qt's non-public class browser
|
|
Packit |
1c1d7e |
generator. For a Qt based project this means that whenever you refer to
|
|
Packit |
1c1d7e |
members or classes belonging to the Qt toolkit, a link will be generated to
|
|
Packit |
1c1d7e |
the Qt documentation. This is done independent of where this documentation
|
|
Packit |
1c1d7e |
is located!
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
\htmlonly
|
|
Packit |
1c1d7e |
Go to the next section or return to the
|
|
Packit |
1c1d7e |
index.
|
|
Packit |
1c1d7e |
\endhtmlonly
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
*/
|