A configuration file is a free-form ASCII text file with a structure that is similar to that of a Makefile. It is parsed by a recursive-descent parser that is built into doxygen.
The file may contain tabs and newlines for formatting purposes. The statements in the file are case-sensitive. Comments may be placed anywhere within the file (except within quotes). Comments begin with the # character and end at the end of the line.
The file essentially consists of a list of assignment statements. Each statement consists of a TAG_NAME
written in capitals, followed by the =
character and one or more values. Values are sequences of non-blanks. If the value should contain one or more blanks it must be surrounded by quotes ("..."). Multiple lines can be concatenated by inserting a backslash (\) as the last character of a line. Environment variables can expanded using the pattern $(ENV_VARIABLE_NAME).
The configuration options can be divided into several categories. Below is an alphabetical index of the tags that are recognized followed by the descriptions of the tags grouped by category.
PROJECT_NAME
PROJECT_NAME
tag is a single word (or a sequence of words surrounded by double-quotes) that should identify the project for which the documentation is generated. This name is used in the title of most generated pages and in a few other places.
PROJECT_NUMBER
PROJECT_NUMBER
tag can be used to enter a project or revision number. This could be handy for archiving the generated documentation or if some version control system is used.
OUTPUT_DIRECTORY
OUTPUT_DIRECTORY
tag is used to specify the (relative or absolute) path into which the generated HTML and Latex documentation will be written. If a relative path is entered, it will be relative to the location where doxygen was started. If left blank the current directory will be used.
OUTPUT_LANGUAGE
OUTPUT_LANGUAGE
tag is used to specify the language in which all documentation generated by doxygen is written. Doxygen will use this information to generate all constant output in the proper language. The default language is English, other supported languages are: Dutch, French, Italian, Czech, Swedish, German and Japanese.
QUIET
QUIET
tag can be used to turn on/off the messages that are generated to standard output by doxygen. Possible values are YES
and NO,
where YES
implies that the messages are off. If left blank NO
is used.
WARNINGS
WARNINGS
tag can be used to turn on/off the warning messages that are generated to standard error by doxygen. Possible values are YES
and NO,
where YES
implies that the warnings are on. If left blank NO
is used.
Tip: Turn warnings on while writing the documentation.
DISABLE_INDEX
EXTRACT_ALL
EXTRACT_ALL
tag is set to YES
all classes and functions will be included in the documentation, even if no documentation was available.
WARNINGS
is set to YES
EXTRACT_PRIVATE
EXTRACT_PRIVATE
tag is set to YES
all documentation for private members will be extracted as well.
HIDE_UNDOC_MEMBERS
HIDE_UNDOC_MEMBERS
tag is set to YES,
Doxygen will hide all undocumented members inside documented classes or files. If set to NO
(the default) these members will be included in the various overviews, but no documentation section is generated.
HIDE_UNDOC_CLASSES
HIDE_UNDOC_CLASSESS
tag is set to YES,
Doxygen will hide all undocumented classes. If set to NO
(the default) these classes will be included in the various overviews.
BRIEF_MEMBER_DESC
BRIEF_MEMBER_DESC
tag is set to YES
(the default) Doxygen will include brief member descriptions after the members that are listed in the file and class documentation (similar to JavaDoc). Set to NO to disable this.
INTERNAL_DOCS
INTERNAL_DOCS
tag determines if documentation that is typed after a \internal command is included. If the tag is set to NO
(the default) then the documentation will be excluded. Set it to YES
to include the internal documentation.
REPEAT_BRIEF
REPEAT_BRIEF
tag is set to YES
(the default) Doxygen will prepend the brief description of a member or function before the detailed description
HIDE_UNDOC_MEMBERS
and BRIEF_MEMBER_DESC
are set to NO,
the brief descriptions will be completely suppressed.
FULL_PATH_NAMES
FULL_PATH_NAMES
tag is set to YES
Doxygen will prepend the full path before files name in the file list and in the header files. If set to NO the shortest path that makes the file name unique will be used
STRIP_FROM_PATH
FULL_PATH_NAMES
tag is set to YES
then the STRIP_FROM_PATH
tag can be used to strip a user defined part of the path. Stripping is only done if one of the specified strings matches the left-hand part of the path.
CLASS_DIAGRAMS
CLASS_DIAGRAMS
tag is set to YES
(the default) Doxygen will generate a class diagram (in Html and NO
turns the diagrams off.
SOURCE_BROWSER
SOURCE_BROWSER
tag is set to YES
than the body of a member or function will be appended as a block of code to the documentation of. that member or function.
CASE_SENSE_NAMES
CASE_SENSE_NAMES
tag is set to NO
(the default) then Doxygen will only generate file names in lower case letters. If set to YES
upper case letters are also allowed. This is useful if you have classes or files whose names only differ in case and if your file system supports case sensitive file names.
VERBATIM_HEADERS
VERBATIM_HEADERS
tag is set the YES
(the default) then Doxygen will generate a verbatim copy of the header file for each class for which an include is specified. Set to NO to disable this.
JAVADOC_AUTOBRIEF
JAVADOC_NO_AUTOBRIEF
is set to YES
(the default) then Doxygen will interpret the first line (until the first dot) of a JavaDoc-style comment as the brief description. If set to NO, the Javadoc-style will behave just like the Qt-style comments.
INHERIT_DOCS
INHERIT_DOCS
tag is set to YES
(the default) then an undocumented member inherits the documentation from any documented member that it reimplements.
INLINE_INFO
INLINE_INFO
tag is set to YES
(the default) then a tag [inline] is inserted in the documentation for inline members.
INPUT
INPUT
tag is used to specify the files and/or directories that contain documented source files. You may enter file names like myfile.cpp
or directories like /usr/src/myproject.
Separate the files or directories with spaces.Note: This tag (and only this tag) is required.
FILE_PATTERNS
INPUT
tag contains directories, you can use the FILE_PATTERNS
tag to specify one or more wildcard patterns (like *.cpp
and *.h
) to filter out the source-files in the directories. If left blank all files are included (i.e. wildcard *
).
RECURSIVE
RECURSIVE
tag can be used to specify whether or not subdirectories should be searched for input files as well. Possible values are YES
and NO.
If left blank NO
is used.
EXCLUDE
EXCLUDE
tag can be used to specify files and/or directories that should excluded from the INPUT
source files. This way you can easily exclude a subdirectory from a directory tree whose root is specified with the INPUT
tag.
EXCLUDE_PATTERNS
EXCLUDE_PATTERNS
tag to specify one or more wildcard patterns to exclude certain files from those directories.
EXAMPLE_PATH
EXAMPLE_PATH
tag can be used to specify one or more files or directories that contain example code fragments that are included (see the \include command in section \include).
EXAMPLE_PATTERNS
EXAMPLE_PATH
tag contains directories, you can use the EXAMPLE_PATTERNS
tag to specify one or more wildcard pattern (like *.cpp and *.h) to filter out the source-files in the directories. If left blank all files are included.
IMAGE_PATH
IMAGE_PATH
tag can be used to specify one or more files or directories that contain images that are to be included in the documentation (see the \image command).
IMAGE_PATTERNS
IMAGE_PATH
tag contains directories, you can use the IMAGE_PATTERNS
tag to specify one or more wildcard pattern (like *.gif and *.eps) to filter out the image files in the directories. If left blank all files are included.
INPUT_FILTER
INPUT_FILTER
tag can be used to specify a program that doxygen should invoke to filter for each input file. Doxygen will invoke the filter program by executing (via popen()) the command: <filter> <input-file>
where <filter> is the value of the INPUT_FILTER
tag, and <input-file> is the name of an input file. Doxygen will then use the output that the filter program writes to standard output.
GENERATE_HTML
GENERATE_HTML
tag is set to YES
(the default) Doxygen will generate HTML output
HTML_OUTPUT
HTML_OUTPUT
tag is used to specify where the HTML docs will be put. If a relative path is entered the value of OUTPUT_DIRECTORY
will be put in front of it. If left blank `html' will be used as the default path.
HTML_HEADER
HTML_HEADER
tag can be used to specify a user defined HTML header file for each generated HTML page. To get valid HTML the header file should contain at least a <HTML>
and a <BODY>
tag. Example: <HTML> <HEAD> <TITLE>My title</TITLE> <LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> </HEAD> <BODY BGCOLOR="#FFFFFF">
The following commands have a special meaning inside the header: $title
, $datetime
, $date
, $doxygenversion
. Doxygen will replace them by respectively the title of the page, the current date and time, only the current date, or the version number of doxygen.
HTML_FOOTER
HTML_FOOTER
tag can be used to specify a user defined HTML footer for each generated HTML page. To get valid HTML the header file should contain at least a </BODY>
and a </HTML>
tag. Example: </BODY> </HTML>
The following commands have a special meaning inside the footer: $title
, $datetime
, $date
. Doxygen will replace them by respectively the title of the page, the current date and time, or only the current date.
HTML_STYLESHEET
HTML_STYLESHEET
tag can be used to specify a user defined cascading style sheet that is used by each HTML page. It can be used to fine-tune the look of the HTML output. If the tag is left blank doxygen will generate a default style sheet. Here is the default style sheet that doxygen normally generates:
H1 { text-align: center } A.el { text-decoration: none; font-weight: bold } DL.el { margin-left: -1cm } DIV.fragment { width: 100%; border: none; background-color: #eeeeee } DIV.in { margin-left: 16 } DIV.ah { background-color: black; margin-bottom: 3; margin-top: 3 } A.gl:link { color: #ffffff } A.gl:visited { color: #ffffff } A.gl { text-decoration: none; font-weight: bold; background-color: #ff8080 } TD.md { background-color: #f2f2ff }
HTML_ALIGN_MEMBERS
If the HTML_ALIGN_MEMBERS
tag is set to YES,
the members of classes, files or namespaces will be aligned in HTML using tables. If set to NO a bullet list will be used.
Note: Setting this tag to NO will become obsolete in the future, since I only intent to support and test the aligned representation.
GENERATE_HTMLHELP
If the GENERATE_HTMLHELP
tag is set to YES
then doxygen generates three additional HTML index files: index.hhp,
index.hhc,
and index.hhk.
The index.hhp
is a project file that can be read by
Microsoft HTML help workshop on Windows.
The HTML workshop contains a compiler that can convert all HTML output generated by doxygen into a single compressed HTML file (.chm). Compressed HTML files are now used as the Windows 98 help format, and will replace the old windows help format (.hlp) on all Windows platforms in the future. Compressed HTML files also contain an index, a table of contents, and you can search for words in the documentation (which basically renders doxysearch
obsolete on Windows). The HTML workshop also contains a viewer for compressed HTML files.
ALPHABETICAL_INDEX
If the ALPHABETICAL_INDEX
tag is set to YES,
an alphabetical index of all compounds will be generated. Enable this if the project contains a lot of classes, structs, unions or interfaces.
COLS_IN_ALPHA_INDEX
If the alphabetical index is enabled (see ALPHABETICAL_INDEX)
then the COLS_IN_ALPHA_INDEX
tag can be used to specify the number of columns in which this list will be split (can be a number in the range [1..20])
GENERATE_LATEX
GENERATE_LATEX
tag is set to YES
(the default) Doxygen will generate Latex output.
LATEX_OUTPUT
LATEX_OUTPUT
tag is used to specify where the OUTPUT_DIRECTORY
will be put in front of it. If left blank `latex' will be used as the default path.
COMPACT_LATEX
COMPACT_LATEX
tag is set to YES
Doxygen generates more compact PAPER_TYPE
a4
(210 x 297 mm). a4wide
(same as a4, but including the a4wide package). letter
(8.5 x 11 inches). legal
(8.5 x 14 inches). executive
(7.25 x 10.5 inches) EXTRA_PACKAGES
EXTRA_PACKAGES
tag can be used to specify one or more EXTRA_PACKAGES = times
LATEX_HEADER
LATEX_HEADER
tag can be used to specify a personal
\documentclass[a4paper]{book} \usepackage{a4wide} \usepackage{makeidx} \usepackage{fancyheadings} \usepackage{epsfig} \usepackage{float} \usepackage{doxygen} \makeindex \setcounter{tocdepth}{1} \setlength{\footrulewidth}{0.4pt} \begin{document} \title{Reference Manual} \author{Generated by Doxygen} \date{Thu Sep 30 19:58:32 1999} \maketitle \pagenumbering{roman} \clearemptydoublepage \tableofcontents \clearemptydoublepage \pagenumbering{arabic}
GENERATE_MAN
GENERATE_MAN
tag is set to YES
(the default) Doxygen will generate man pages for classes and files.
MAN_OUTPUT
MAN_OUTPUT
tag is used to specify where the man pages will be put. If a relative path is entered the value of OUTPUT_DIRECTORY
will be put in front of it. If left blank `man' will be used as the default path. A directory man3 will be created inside the directory specified by MAN_OUTPUT.
MAN_EXTENSION
MAN_EXTENSION
tag determines the extension that is added to the generated man pages (default is the subroutine's section .3)
ENABLE_PREPROCESSING
ENABLE_PREPROCESSING
tag is set to YES
(the default) Doxygen will evaluate all C-preprocessor directives found in the sources and include files.
MACRO_EXPANSION
MACRO_EXPANSION
tag is set to YES
Doxygen will expand all macro names in the source code. If set to NO
(the default) only conditional compilation will be performed.
SEARCH_INCLUDES
SEARCH_INCLUDES
tag is set to YES
(the default) the includes files in the INCLUDE_PATH
(see below) will be search if a #include is found.
INCLUDE_PATH
INCLUDE_PATH
tag can be used to specify one or more directories that contain include files that are not input files but should be processed by the preprocessor.
PREDEFINED
PREDEFINED
tag can be used to specify one or more macro names that are defined before the preprocessor is started (similar to the -D option of gcc). The argument of the tag is a list of macros of the form: name
or name=definition
(no spaces). If the definition and the = are omitted =1 is assumed.
EXPAND_ONLY_PREDEF
EXPAND_ONLY_PREDEF
and MACRO_EXPANSION
tags are both set to YES then the macro expansion is limited to the macros specified with the PREDEFINED
tag.
TAGFILES
TAGFILES
tag can be used to specify one or more tagfiles. See section Doxytag usage for more information about the usage of tag files.
GENERATE_TAGFILE
GENERATE_TAGFILE,
doxygen will create a tag file that is based on the input files it reads. See section Doxytag usage for more information about the usage of tag files.
ALLEXTERNALS
ALLEXTERNALS
tag is set to YES
all external class will be listed in the class index. If set to NO
only the inherited external classes will be listed.
PERL_PATH
PERL_PATH
should be the absolute path and name of the perl script interpreter (i.e. the result of `which perl
').
SEARCHENGINE
SEARCHENGINE
tag specifies whether or not a search should be used. Possible values are YES
and NO.
If set to NO
or left blank, the values of all other tags in this section will be ignored.
CGI_NAME
CGI_NAME
tag should be the name of the CGI script that starts the search engine (doxysearch
) with the correct parameters. A script with this name will be generated by doxygen.
CGI_URL
CGI_URL
tag should be the absolute URL to the directory where the cgi binaries are located. See the documentation of your http daemon for details.
DOC_URL
DOC_URL
tag should be the absolute URL to the directory where the documentation is located. If left blank the absolute path to the documentation, with file://
prepended to it, will be used. This is correct for local viewing only.
DOC_ABSPATH
DOC_ABSPATH
tag should be the absolute path to the directory where the documentation is located. If left blank the directory on the local machine will be used.
BIN_ABSPATH
BIN_ABSPATH
tag must point to the directory where the doxysearch binary is installed.
EXT_DOC_PATHS
EXT_DOC_PATHS
tag can be used to specify one or more paths to documentation generated for other projects. This allows doxysearch to search the documentation for these projects as well. All paths must be absolute.
Suppose you have a simple project consisting of two files: a source file example.cc
and a header file example.h.
Then a minimal configuration file is as simple as:
INPUT = example.cc example.h
Assuming the example makes use of Qt classes and perl is located in /usr/bin
, a more realistic configuration file would be:
PROJECT_NAME = Example INPUT = example.cc example.h WARNINGS = YES TAGFILES = qt.tag PERL_PATH = /usr/bin/perl SEARCHENGINE = NO
To generate the documentation for the QdbtTabular package I have used the following configuration file:
PROJECT_NAME = QdbtTabular OUTPUT_DIRECTORY = html WARNINGS = YES INPUT = examples/examples.doc src FILE_PATTERNS = *.cc *.h INCLUDE_PATH = examples TAGFILES = qt.tag PERL_PATH = /usr/local/bin/perl SEARCHENGINE = YES CGI_NAME = search.cgi CGI_URL = http://www.stack.nl/~dimitri/cgi-bin DOC_URL = http://www.stack.nl/~dimitri/qdbttabular DOC_ABSPATH = /home/dimitri/.html/qdbttabular BIN_ABSPATH = /home/dimitri/bin
To regenerate the Qt documentation from the sources, you could use the following config file:
PROJECT_NAME = Qt OUTPUT_DIRECTORY = qt_docs HIDE_UNDOC_MEMBERS = YES HIDE_UNDOC_CLASSES = YES ENABLE_PREPROCESSING = YES MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = YES SEARCH_INCLUDES = YES FULL_PATH_NAMES = YES STRIP_FROM_PATH = $(QTDIR)/ PREDEFINED = USE_TEMPLATECLASS Q_EXPORT= \ QArrayT:=QArray \ QListT:=QList \ QDictT:=QDict \ QQueueT:=QQueue \ QVectorT:=QVector \ QPtrDictT:=QPtrDict \ QIntDictT:=QIntDict \ QStackT:=QStack \ QDictIteratorT:=QDictIterator \ QListIteratorT:=QListIterator \ QCacheT:=QCache \ QCacheIteratorT:=QCacheIterator \ QIntCacheT:=QIntCache \ QIntCacheIteratorT:=QIntCacheIterator \ QIntDictIteratorT:=QIntDictIterator \ QPtrDictIteratorT:=QPtrDictIterator INPUT = $(QTDIR)/doc \ $(QTDIR)/src/widgets \ $(QTDIR)/src/kernel \ $(QTDIR)/src/dialogs \ $(QTDIR)/src/tools FILE_PATTERNS = *.cpp *.h q*.doc INCLUDE_PATH = $(QTDIR)/include RECURSIVE = YES
Here Doxygen's preprocessor is used to substitute some macro names that are normally substituted by the C preprocessor, but without doing full macro expansion.