Doxygen is a documentation system for C, C++, Java, and IDL. It can
generate an online class browser (in HTML) and an offline reference
manual (in LaTeX) from a set of documented source files. The
documentation is extracted directly from the sources. Doxygen is
developed on a Linux platform, but it runs on most other UNIX flavors
as well. An executable for Windows 95/NT is also available.

License

GPL-2.0+

Changelog

* Mon Jun 04 2012 pgajdos@suse.com
- 1.8.1 generates man page names uncondidionally lowercase which
causes problem for lapack build for example; reverting one hunk
of fix for
https://bugzilla.gnome.org/show_bug.cgi?id=674563
as workaround
* no-lowercase-man-names.patch
* Mon May 21 2012 pgajdos@suse.com
- updated to 1.8.1:
* Included a couple of performance improvements.
* Changed the way indexes (Class,File,Namespace,Groups) are rendered.
* Changed the way member attributes (like protected, virtual, and
static) are rendered in the HTML output
* more info at http://www.stack.nl/~dimitri/doxygen/changelog.html
* Mon Apr 16 2012 pgajdos@suse.com
- updated to 1.8.0svn20120416:
* fixed crash [bnc#755402]
* Mon Feb 27 2012 pgajdos@suse.com
- updated to 1.8.0:
* Auto list items can now consist of multiple paragraphs.
* When UML_LOOK is enabled, relations shown on the edge of a
graph are not shown as attributes.
* Updated the manual and improved the look.
* Latex: made the margins of latex page layout smaller using the
geometry package.
* etc., see http://www.stack.nl/~dimitri/doxygen/changelog.html
* Mon Dec 12 2011 pgajdos@suse.com
- updated to 1.7.6.1:
* Doxygen now reports its cache usage (for the symbol and the
lookup cache) at the end of a run (if QUIET=NO), and
recommends settings for SYMBOL_CACHE_SIZE and
LOOKUP_CACHE_SIZE for your project if either cache is too
small.
* Added new option LOOKUP_CACHE_SIZE to control the internal
cache doxygen uses to find symbols given their name and
a context.
* Python: added support for @staticmethod.
* Python: scopes are now shown with . instead of ::
* id 665313: Space before @if was not preserved, causing
problems with inline @if .. @endif constructs.
* id 665583: Fixed XHTML validity problem when using mscgen
graphs.
* id 665641: Fixed XHTML validity problem when
GENERATE_TREEVIEW was disabled.
* id 665720: Included patch to fix hang issue when non-empty
INCLUDE_PATH was used.
* id 665778: Fixed parse issue when a comma appeared as part
of an enum's value.
* Mon Dec 05 2011 pgajdos@suse.com
- updated to 1.7.6:
* To improve the performance of loading the navigation tree,
the data is now split into multiple javascript files which
are loaded dynamically.
* The selected member is now briefly highlighted in the HTML
output (when GENERATE_TREEVIEW is enabled).
* The navigation tree (GENERATE_TREEVIEW) now shows the same
information as the index.
* The navindex section of layout now also controls what is
shown in the navigation tree.
* Improved HTML output support for IE9.
* Included redesigned VHDL parser (thanks to Martin Kreis
for the patch)
* When a class/structs has many (>15) members of the same type,
only the first 10 are shown in the UML diagram.
* Made the output of the javascript based search engine more
compact.
* Update of the French translation.
* id 607305: Added support for PHP heredoc and nowdoc constructs.
* Added support for cross-referencing in case of operator->
overloading. This includes support for std::auto_ptr,
std::smart_ptr,std::unique_ptr and std::weak_ptr when
BUILTIN_STL_SUPPORT is enabled.
* bugfixes
* Fri Sep 30 2011 dmueller@suse.de
- remove arm specific patch that broke building on arm
* Sun Sep 18 2011 jengelh@medozas.de
- Remove redundant tags/sections from specfile
(cf. packaging guidelines)
- Use %_smp_mflags for parallel build
* Mon Aug 22 2011 pgajdos@novell.com
- update to 1.7.5.1:
* A bug that could cause doxygen to crash on large projects was
fixed.
* Mon Aug 15 2011 pgajdos@novell.com
- update to 1.7.5:
* id 641904: Function in the call graphs are now shown based on first
appearance rather then alphabetical order.
* id 616213: When customizing the HTML header $title now only generates
the title excluding the project name (which can still be
added using $projectname)
* Improved the look of the class index: all items now have equal spacing.
* New option INTERACTIVE_SVG which when set to YES in combination with
DOT_IMAGE_FORMAT=svg will make doxygen generate interactive SVG
diagrams that support zooming and panning via the mouse (only for
large graphs).
* Added support for the Tcl programming language (thanks to Rene Zaumseil
and Samuel Bentley for the patch).
* Added @copyright command.
* added option MATHJAX_EXTENSIONS to provide additional extensions for
MathJax (thanks to David Munger for the patch).
* added option INLINE_SIMPLE_STRUCTS which when enabled shows the fields
of simple classes and structs (with only public data fields) as a table
and inline in context (file/group/namespace/class)
provided this context is documented.
* When using the server based search engine (SEARCHENGINE=YES and
SERVER_BASED_SEARCH=YES) doxygen now advertises a opensearch provider
for your project, that allows integrating the search directly in the
search field of the browser (thanks to Phil Lello for the patch).
* id 503239: Added new option CITE_BIB_FILES and LATEX_BIB_STYLE and a new
command \cite, allowing you to make references to literature (as defined
in one or more .bib files). This also works for output formats other
than LaTeX. The tool bibtex is required for this to work though. Thanks
to David Munger for the initial patch upon which this feature is based.
* PHP namespaces are now shown as A\B in the output.
* Added new \snippet command that can be used to include marked sections
from a source file. See http://www.doxygen.org/commands.html#cmdsnippet
for more info.
* Added translation support for Armenian, thank to Armen Tangamyan. and
included translation updates for a number of languages.
* Many bug fixes, for details see
http://www.stack.nl/~dimitri/doxygen/changelog.html.
* Tue Mar 29 2011 pascal.bleser@opensuse.org
- update to 1.7.4:
* adds an option that allows embedding of the class documentation inside the
documentation of a group
* doxygen -w html now reads the default Doxyfile even if not specified
explicitly
* doxygen -w html now produces a template header and footer that can be used
independent of the configuration options used.
* new option INLINE_GROUPED_CLASSES that when enabled shows grouped classes
inside the group documentation, instead of on a separate page.
* included updates for the Italian and Russian translation.
* #640875: added option HTML_EXTRA_FILES which makes it easier to copy
additional files to the HTML output and also add them to the index files
* #642579: Included patch that adds new LATEX_FOOTER option to customize the
end of refman.tex in the LaTeX output
* #566921: %A::B now prevents a link for A::B, instead of only for A and
generating a warning that ::B cannot be linked.
* #634415: Fixed problem parsing an array of character literals.
* #635537: Links to file members were not made when found in tag files.
* #638655: Double quote in page or group title broke treeview.
* #638856: Fixed problem autolinking to struct field using #S::a
* #639272: using @dot...@endot produced an image referenced with absolute
path.
* #640463: Fixed problem parsing PHP "use" statement when the argument did
not have a namespace scope.
* #640646: Long error messages could cause memory corruption.
* #640754: Comment with XML style list of type table was not rendered
properly.
* #640828: Internal section marked with @internal was not shown as such
anymore in the XML output.
* #640847: PHP: Fixed parse problem referring to class in global namespace.
* #640924: Included patch to make the custom header and footer independent of
the chosen config options.
* #640927: Included fix to prevent a warning in the server side PHP search
script.
* #641026: Included patch to fix broken hyperlink to page entry in xreflists.
* #641188: Header of \page was wrong in Man page output.
* #641336: #include's to other directories were not always linked.
* #641673: Using "use Foo\Foo;" in PHP could cause doxygen to hang.
* #641814: In some cases the HTML output could contain an extra </p>.
* #642030: Tooltips with HTML entities could be wrongly truncated.
* #642475: Include graphs could be incomplete.
* #643056: Fixed problem with macro expansion.
* #643279: Fixed potential crash when generating a warning for void f(int %x)
style parameter, which is valid in C++/CLI.
* #643655: Fixed argument matching issue when one of match candidates was a
typedef of a method pointer.
* doxygen -w html now ignores the values for HTML_HEADER and HTML_FOOTER
found in the config file.
* importing a group via a tag file could overrule a local group with the same
name even when EXTERNAL_GROUPS was disabled.
* Tue Jan 04 2011 pascal.bleser@opensuse.org
- update to 1.7.3:
* adds support for including SVG images generated by the dot tool
* the way the tree view looks and works has been redesigned: it is now
dynamically loaded on a page instead of using HTML frames
* each HTML page now (optionally) has a header with project name, synopsis,
and logo
* Fri Nov 12 2010 mseben@gmail.com
- changed modify_footer.patch: drop suse specific HTML_FOOTER_DESCRIPTION
option functionality, each package could use now HTML_TIMESTAMP to
avoid putting timestamp in to generated html files
* Mon Oct 11 2010 pgajdos@novell.com
- updated to 1.7.2:
* Changed the default font of the LaTeX output to helvetica.
* Changed the way parameters and return values are represented
in the LaTeX and RTF output. They are now listed using tables.
* added support for Apple's block object extension for C/Obj-C/C++.
* added support for detecting Python constructors and destructors.
* id 624575: Added \endinternal command that can be used to force
the end of a section started with \internal.
* id 552605: Added parsing support for PHP 5.3+ style namespaces.
* id 582532: added \mscfile command which can be used to insert a
message sequence chart given a .msc file. Also added a new
config option MSCFILE_DIRS to provide directories were msc
files are searched (Thanks to Adrien for the patch).
* Added support for type specifiers for documenting PHP
parameters, format: "@param type $paramname docs"
* Added support for rendering formulas in the HTML output using
MathJax instead of using prerendered bitmaps. For this purpose
the options USE_MATHJAX and MATHJAX_RELPATH were added.
* Many bugfixes.
* For details see http://www.stack.nl/~dimitri/doxygen/changelog.html.
* Sun Aug 29 2010 cristian.rodriguez@opensuse.org
- set HTML_TIMESTAMP default to off, so all packages that
generate documentation during build dont get republished
just due to a timestamp change.
* Mon Aug 02 2010 coolo@novell.com
- unfuzzy patches to build on >= 11.3
* Fri Jun 25 2010 pascal.bleser@opensuse.org
- update to 1.7.1:
* Changes:
+ id 621695: Made warning and error messages appear with lower case "warning:" and "error:" prefix to make it easier to use the messages from Visual Studio
* New features:
+ id 621908: added new config option FORMULA_TRANSPARENT which allows selecting between transparent (YES) or non-transparent (NO) PNGs for formulas in the HTML output.
+ update for Turkish translation
* Bug fixes:
+ id 533821: Inheritance relation for a C# class deriving from a generic class was not handled correctly
+ id 554638: Changing DOT_IMAGE_FORMAT did not cause the graphs to be regenerated
+ id 576533: A field of the form "enum E *p" was ignore
+ id 597016: Hide scope name was not working properly for todo items inside class members, where the class was inside a namespace
+ id 617761: In dot graphs now also @ref worked (previously only \ref was supported)
+ id 621733: Removed bogus warning about undocument return type for define when WARN_NO_PARAMDOC was enabled
+ id 621780: Fixed parsing support for a function that returns a struct definition
+ id 621785: Doxygen could hang when using \copydoc in a function with \param
+ id 621805: Using //!< after a #define no longer worked
+ id 621854,622219,622593: html help compiler (and also the Qt help compiler) was called before all dot images were generated.
+ id 621984: Using a auto-list in combination with \subpage cause the items to be inlined
+ id 622018: Fixed problem parsing a @param command where the text part started with a formula
+ id 622019: Added some instructions how to document Fortran code
+ id 622041: Using \var multiple times in a comment block did not work properly
+ id 622413: Tooltips could get wrongly truncated when multi-byte UTF-8 characters were used
+ id 622471: Argument matching failed for typedef in another namespace
+ Fixed crash situation while handling commands inside a @ref section
+ Treeview icons were missing in the HTML output when setting GENERATE_TREEVIEW to NO and USE_INLINE_TREES to YES
* Tue Jun 15 2010 pascal.bleser@opensuse.org
- update to 1.7.0:
* the look of the HTML output was changed
* the color of HTML output can now be changed easily
* several performance enhancements were included:
+ ability to run multiple instances of dot in parallel for
faster graph generation
* many bugs have been fixed
* Sun Feb 21 2010 Nico.Laus.2001@gmx.de
- update to 1.6.3:
- New features
* id 608480: Using \dir without argument will create directory
documentation for the directory in which the \dir command
was found.
- Bug fixes (ids refer to the bugzilla database)
* id 590161: perlmod output was wrong when using paragraph
commands.
* id 600525: Included patch for VHDL.
* id 605698: Replaced size attribute of hr tag by class attribute
in the HTML output.
* id 606030,606192,607563: Using \dot produced "Error opening
map file" or could even crash doxygen.
* id 606104: Grouped members with todo-like items were shown
with "GlobalScope" prefix.
* id 606156: Fixed RTF rendering problem with group index.
* id 606206,610133: Added missing line break in LaTeX output.
* id 606330, 608056: The title of pages whose label had an
underscore was not shown
* id 606717: Include guard not starting with #ifndef SOME_GUARD_H
were not recognised as such.
* id 606718: Setting SEARCHENGINE to YES and GENERATE_HTML to NO
caused error that search results directory could not be created.
* id 606772,608493: typedef'ed enums or struct with the same as
the typedef did no longer show up.
* id 607088,607946: Related pages (manual and automatic like the
todo page) caused broken links when SHORT_NAMES was enabled.
* id 607432,608002: Automatically generated related pages (like
the todo page) caused broken links when CREATE_SUBDIR was
enabled.
* id 607736: comments after #if could cause next function call
not to be cross-referenced.
* id 607743: \internal inside a conditional section caused
warning.
* id 608016: Using \internal inside a \section did not end at the
next \section as documented.
* id 608018: \internal command produced message with .: in the
LaTeX output.
* id 608072: HTML Tables with custom attributes were not rendered
properly.
* id 608227: Man pages with underscore got double underscore in
the name.
* id 608590: Buffer overflow when using non-ascii characters as
class name.
* id 608921: Macro definition had effect even if the definition
was not actually included.
* id 609504: config.h and config.l where missing from the SVN
repository.
* id 609624: Todo items were merged for overloaded functions.
* id 609709: C# enum values with @todo items were missing from
the todo list.
* id 610437: Removed bogus warning when using <br/> tag.
* Fixed parsing problem for function pointer type starting with
"typedef enum".
* Preprocessor did not take EXCLUDE_PATTERNS into account, which
could cause parse issues when importing a .tlb file.
* Wed Dec 30 2009 pascal.bleser@opensuse.org
- update to 1.6.2:
* two new methods of searching through the HTML documentation:
were added:
+ via a PHP based Web server
+ via an Eclipse help plugin
* the \addindex command now also works for the HTML indices
* rendering of LaTeX formulas in the HTML output has been
improved (especially for non-white backgrounds)
* smaller improvements
* large number of bugfixes
* Mon Sep 07 2009 pascal.bleser@opensuse.org
- update to 1.6.1:
* fixed file handle leak when parsing include files; also fixed
the logic that determines whether or not an include file need
to be parsed
* search result pages were not using UTF-8 character encoding
* search results pointing to external references were not linked
correctly
* multiline second argument of \ref caused unexpected " warning
* feeding invalid XML could crash doxygen's DBus XML parser
* include patch to fix problem with building rpms
* SHOW_USED_FILES now works again
* xrefitems (like @todo) did not appear in the list when found
in comments marked with @enum or @name.
* Fri Aug 21 2009 nico.laus.2001@gmx.de
- updated to version 1.6.0
- Changes
* id 580924, 541234: Replaced the PHP based search engine by a
Javascript/DHTML based one. As a result the search feature no longer
requires a HTTP server with PHP enabled to be usable. Searching is limited
to symbols though, but it is now possible to filter on symbol type.
* id 519886: Make the HTML output XHTML 1.0 compliant.
* id 579950: Objective-C categories are now merged with their base class,
unless there is no base class.
* Member groups with the same header within the same scope are now merged.
This also works for Objective-C categories.
* Changed the LaTeX style sheet such that more of the markup is configurable.
Please update your style sheet if you use a custom one.
* id 584844: Treat \details inside a brief description as a new paragraph
command.
* Split GENERATE_TREEVIEW into two separate options: GENERATE_TREEVIEW and
USE_INLINE_TREES.
* Removed the dependencies on libpng and libz, doxygen now generates gifs
again for internal class diagrams (like it did 7 years ago ;-)
- New features
* Added option SORT_MEMBERS_CTORS_1ST, which when enabled places the
constructors and destructors first in an otherwise sorted list.
* id 581518: Applied patch by Tobias Hunger that adds support for
documenting DBus XML interface descriptions.
* Included QtHelp patch by Karsten Heimrich which adds missing reference
and keyword for methods.
* Included updates for the Korean and Polish translation.
- Bug fixes (ids refer to the gnome bugzilla database)
* id 131989: Fixed preprocessor handling for C# code.
* id 133418: -- was not rendered correctly for LaTeX output
* id 157485: Missing link in todo page.
* id 318061: Two template functions that only differed in the number of
template arguments were seen as the same function.
* id 443939: HIDE_UNDOC_CLASSES did not work properly.
* id 509348: Fixed problem with syncing the information of declaration and
definition in the presence of an extra forward declaration in the source
code.
* id 522193: For C# enum values were merged together if the same enum name
was used in different scopes.
* id 523167: Included patch to handle PROGRAM statement in Fortran as
subroutines/functions.
* id 554636: Remove spacing around brackets for Obj-C protocols.
* id 557026: Included patch for fixing wrongly labeled items in docsets.
* id 560512: Improved parser to better disambiguate nested templates ending
with >> from the bitshift right operator.
* id 570238: Fixed matching problem for method in nested class, where the
outer class is a template.
* id 581746: Segfault/realloc error when a very long path was used.
* id 582469: documented #define with guard caused wrong documentation.
* id 582276: Doxywizard could crash on exit in some cases.
* id 582676: Regression: a struct ivar in ObjC class screws up method
identification.
* id 583213: Included patch that avoids trailing spaces in the generated
Doxyfile template.
* id 584192: Included VHDL patch by Martin Klein
* id 585543: Fixed case where matching declaration and definition did not
work correctly.
* id 585260: The "more..." link for files was broken, since the anchor was
not generated.
* id 586925: Fixed parsing problem when an unpaired apostrophe appeared in
a Python comment.
* id 588291: Included fix for doxywizard makefile.
* id 588587: Added missing virtual destructor to CompAccept base class.
* id 588968: Fixed segmentation fault for specific case in PHP code.
* Fixed some issues building for Windows.
* id 589514: Fixed problem handling strings like a"\b" within a comment.
* id 589616: Fixed problem matching explicitly scoped parameter in a
template class.
* id 590712: A namespaced with name "internal" (C++/CLI keyword) could
confuse doxygen's C++ parser.
* id 591749: @optional/@required attributes for Objective-C were missing
from the XML output.
* Mon Jul 20 2009 nico.laus.2001@gmx.de
- integrated patch from http://blog.dixo.net/2009/05/20/using-doxygen-help-in-qtcreator/
that allows doxygen-created .qch files to be used with the tooltips shown
in Qt Creator
* Mon Jun 22 2009 mseben@suse.cz
- Changed default behavior ! :
added modify_footer.patch (bnc#489947), which disable text
in footer by default, you could enable this text with option
HTML_FOOTER_DESCRIPTION = YES, this feature was added due to
increasing efficiency of build buildservice
* Mon May 04 2009 mseben@suse.cz
- updated to version 1.5.9
- New features
* Added new option LATEX_SOURCE_CODE, which when enabled adds
source code also to the latex output
* Included updates for the Finnish, Romanian, Korean, German,
Japanese, and Hongarian translation.
* Added translation support for Esperanto.
* Added class attribute to the \todo and \bug HTML
code so they can be customized via CSS.
* Added support for Ã† and Ã¦ characters.
- Bug fixes (ids refer to the gnome bugzilla database)
* id 395169: Some links via tagfiles were not correct in
combination with CREATE_SUBDIRS=YES
* id 539080: Having the same comment for the declaration and
definition of a function could result in duplicate documentation
in case the indentation level was different.
* id 566713: Dot font was not removed even though DOT_CLEANUP was YES.
* id 566925: Fixed problem resolving symbolic links.
* id 567044: Fully qualified name was not shown correctly for
nested classes.
* id 567375: Fixed parse problem for typedefs with redundant braces.
* id 567535: Fixed problem when parsing operator%= for CLI/C++ code.
* id 567777: Fixed problem with latex output when using enums.
* id 567990: Doxygen could crash when there was a symlink in project.
* id 568237: Non-ascii values entered where not saved according
to the INPUT_ENCODING.
* id 568505: Fixed build problem for old Linux distributions.
* id 569478: Fixed line continuation issue with the Fortran parser.
* id 570960: C++ class defined in a .mm file was sometimes parsed
as Objective-C code.
* id 571013: In the wizard, editing a text field in the middle of
the text in the expert tab caused the cursor to jump to the end
of the line.
* id 571096: Fixed Objective-C parsing problem when multiple
protocol forward declarations are put on one line.
* id 571990: Fixed compiler issue with portable_iconv by moving
the function to a C file.
* id 572560: Fixed parse issue when a #define is inside an enum.
* id 572740: Fixed problem parsing C++ comments using line continuation.
* id 573057: Included update for Swedish translator and changed
the language code from SE to SV to comply with ISO 639.
* id 578382: When referring to a static variable or function
doxygen will now look at the file context in case of ambiguity.