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