3 <docs doxywizard='0' doxyfile='0'>
9 * Copyright (C) 1997-2015 by Dimitri van Heesch.
11 * Permission to use, copy, modify, and distribute this software and its
12 * documentation under the terms of the GNU General Public License is hereby
13 * granted. No representations are made about the suitability of this software
14 * for any purpose. It is provided "as is" without express or implied warranty.
15 * See the GNU General Public License for more details.
17 * Documents produced by Doxygen are derivative works derived from the
18 * input used in their production; they are not affected by this license.
21 /*! \page config Configuration
24 \section config_format Format
26 A configuration file is a free-form ASCII text file with a structure
27 that is similar to that of a \c Makefile, with the default name \c Doxyfile. It is
28 parsed by \c doxygen. The file may contain tabs and newlines for
29 formatting purposes. The statements in the file are case-sensitive.
30 Comments may be placed anywhere within the file (except within quotes).
31 Comments beginning with two hash characters (\c \#\#) are kept when updating
32 the configuration file and are placed in front of the TAG they are in front of.
33 Comments beginning with two hash characters (\c \#\#) at the beginning of the
34 configuration file are also kept and placed at the beginning of the file.
35 Comments beginning with two hash characters (\c \#\#) at the end of the
36 configuration file are also kept and placed at the end of the file.
37 Comments begin with the hash character (\c \#) and ends at the end of the line.
39 The file essentially consists of a list of assignment statements.
40 Each statement consists of a \c TAG_NAME written in capitals,
41 followed by the equal sign (<code>=</code>) and one or more values. If the same tag
42 is assigned more than once, the last assignment overwrites any earlier
43 assignment. For tags that take a list as their argument,
44 the <code>+=</code> operator can be used instead of <code>=</code> to append
45 new values to the list. Values are sequences of non-blanks. If the value should
46 contain one or more blanks it must be surrounded by quotes (<code>"..."</code>).
47 Multiple lines can be concatenated by inserting a backslash (\c \\)
48 as the last character of a line.
50 Environment variables can be expanded using the pattern <code>\$(ENV_VARIABLE_NAME)</code>.
53 DOT_PATH = $(YOUR_DOT_PATH)
56 You can also include part of a configuration file from another configuration
57 file using a <code>\@INCLUDE</code> tag as follows:
59 @INCLUDE = config_file_name
61 The include file is searched in the current working directory. You can
62 also specify a list of directories that should be searched before looking
63 in the current working directory. Do this by putting a <code>\@INCLUDE_PATH</code> tag
64 with these paths before the <code>\@INCLUDE</code> tag, e.g.:
66 @INCLUDE_PATH = my_config_dir
69 The configuration options can be divided into several categories.
70 Below is an alphabetical index of the tags that are recognized
71 followed by the descriptions of the tags grouped by category.
74 <docs doxywizard='0' documentation='0'>
76 This file describes the settings to be used by the documentation system
77 doxygen (www.doxygen.org) for a project.
79 All text after a double hash (##) is considered a comment and is placed
80 in front of the TAG it is preceding.<br>
81 All text after a single hash (#) is considered a comment and will be ignored.
84 TAG = value [value, ...]
86 For lists, items can also be appended using:
88 TAG += value [value, ...]
90 Values that contain spaces should be placed between quotes (\" \").
93 Use doxygen to compare the used configuration file with the template configuration file:
95 doxygen -x [configFile]
97 Use doxygen to compare the used configuration file with the template configuration file
98 without replacing the environment variables or CMake type replacement variables:
100 doxygen -x_noenv [configFile]
106 <docs doxywizard='0' doxyfile='0'>
108 \section config_examples Examples
110 Suppose you have a simple project consisting of two files: a source file
111 \c example.cc and a header file \c example.h.
112 Then a minimal configuration file is as simple as:
114 INPUT = example.cc example.h
117 Assuming the example makes use of Qt classes and \c perl is located
118 in <code>/usr/bin</code>, a more realistic configuration file would be:
120 PROJECT_NAME = Example
121 INPUT = example.cc example.h
127 To generate the documentation for the
128 <a href="https://sourceforge.net/projects/qdbttabular/">QdbtTabular</a> package
129 I have used the following configuration file:
131 PROJECT_NAME = QdbtTabular
132 OUTPUT_DIRECTORY = html
134 INPUT = examples/examples.doc src
135 FILE_PATTERNS = *.cc *.h
136 INCLUDE_PATH = examples
141 To regenerate the Qt-1.44 documentation from the sources, you could use the
142 following configuration file:
145 OUTPUT_DIRECTORY = qt_docs
146 HIDE_UNDOC_MEMBERS = YES
147 HIDE_UNDOC_CLASSES = YES
148 ENABLE_PREPROCESSING = YES
149 MACRO_EXPANSION = YES
150 EXPAND_ONLY_PREDEF = YES
151 SEARCH_INCLUDES = YES
152 FULL_PATH_NAMES = YES
153 STRIP_FROM_PATH = $(QTDIR)/
154 PREDEFINED = USE_TEMPLATECLASS Q_EXPORT= \
160 QPtrDictT:=QPtrDict \
161 QIntDictT:=QIntDict \
163 QDictIteratorT:=QDictIterator \
164 QListIteratorT:=QListIterator \
166 QCacheIteratorT:=QCacheIterator \
167 QIntCacheT:=QIntCache \
168 QIntCacheIteratorT:=QIntCacheIterator \
169 QIntDictIteratorT:=QIntDictIterator \
170 QPtrDictIteratorT:=QPtrDictIterator
171 INPUT = $(QTDIR)/doc \
172 $(QTDIR)/src/widgets \
173 $(QTDIR)/src/kernel \
174 $(QTDIR)/src/dialogs \
176 FILE_PATTERNS = *.cpp *.h q*.doc
177 INCLUDE_PATH = $(QTDIR)/include
181 For the Qt-2.1 sources I recommend to use the following settings:
185 HIDE_UNDOC_MEMBERS = YES
186 HIDE_UNDOC_CLASSES = YES
189 FILE_PATTERNS = *.cpp *.h q*.doc
191 EXCLUDE_PATTERNS = *codec.cpp moc_* */compat/* */3rdparty/*
192 ALPHABETICAL_INDEX = YES
194 ENABLE_PREPROCESSING = YES
195 MACRO_EXPANSION = YES
196 INCLUDE_PATH = $(QTDIR)/include
197 PREDEFINED = Q_PROPERTY(x)= \
201 "QT_STATIC_CONST=static const " \
204 EXPAND_ONLY_PREDEF = YES
205 EXPAND_AS_DEFINED = Q_OBJECT_FAKE Q_OBJECT ACTIVATE_SIGNAL_WITH_PARAM \
209 Here doxygen's preprocessor is used to substitute some
210 macro names that are normally substituted by the C preprocessor,
211 but without doing full macro expansion.
215 Go to the <a href="commands.html">next</a> section or return to the
216 <a href="index.html">index</a>.
224 <group name='Project' docs='Project related configuration options'>
225 <option type='string' id='DOXYFILE_ENCODING' format='string' defval='UTF-8'>
228 This tag specifies the encoding used for all characters in the configuration file that
229 follow. The default is UTF-8 which is also the encoding used for all text before
230 the first occurrence of this tag. Doxygen uses \c libiconv (or the iconv built into
231 \c libc) for the transcoding. See https://www.gnu.org/software/libiconv/ for the list of
236 <option type='string' id='PROJECT_NAME' format='string' defval='My Project'>
239 The \c PROJECT_NAME tag is a single word (or a sequence of words
240 surrounded by double-quotes, unless you are using Doxywizard) that should identify the project for which the
241 documentation is generated. This name is used in the title of most
242 generated pages and in a few other places.
246 <option type='string' id='PROJECT_NUMBER' format='string' defval=''>
249 The \c PROJECT_NUMBER tag can be used to enter a project or revision number.
250 This could be handy for archiving the generated documentation or
251 if some version control system is used.
255 <option type='string' id='PROJECT_BRIEF' format='string' defval=''>
258 Using the \c PROJECT_BRIEF tag one can provide an optional one line description
259 for a project that appears at the top of each page and should give viewer
260 a quick idea about the purpose of the project. Keep the description short.
265 <option type='string' id='PROJECT_LOGO' format='image' defval=''>
268 With the \c PROJECT_LOGO tag one can specify a logo or an icon that is
269 included in the documentation. The maximum height of the logo should not
270 exceed 55 pixels and the maximum width should not exceed 200 pixels.
271 Doxygen will copy the logo to the output directory.
275 <option type='string' id='OUTPUT_DIRECTORY' format='dir' defval=''>
278 The \c OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
279 path into which the generated documentation will be written.
280 If a relative path is entered, it will be relative to the location
281 where doxygen was started. If left blank the current directory will be used.
285 <option type='bool' id='CREATE_SUBDIRS' defval='0'>
288 If the \c CREATE_SUBDIRS tag is set to \c YES then doxygen will create
289 up to 4096 sub-directories (in 2 levels) under the output directory of each output
290 format and will distribute the generated files over these directories.
291 Enabling this option can be useful when feeding doxygen a huge amount of source
292 files, where putting all generated files in the same directory would otherwise
293 causes performance problems for the file system.
294 Adapt \c CREATE_SUBDIRS_LEVEL to control the number of sub-directories.
298 <option type='int' id='CREATE_SUBDIRS_LEVEL' minval='0' maxval='8' defval='8'
299 depends='CREATE_SUBDIRS'>
302 Controls the number of sub-directories that will be created when \c CREATE_SUBDIRS tag
303 is set to \c YES. Level 0 represents 16 directories, and every level increment
304 doubles the number of directories, resulting in 4096 directories at level 8 which is the
305 default and also the maximum value. The sub-directories are organized in 2 levels, the first
306 level always has a fixed number of 16 directories.
310 <option type='bool' id='ALLOW_UNICODE_NAMES' defval='0'>
313 If the \c ALLOW_UNICODE_NAMES tag is set to \c YES,
314 doxygen will allow non-ASCII characters to appear in the names of generated files.
315 If set to \c NO, non-ASCII characters will be escaped, for example _xE3_x81_x84
316 will be used for Unicode U+3044.
320 <option type='enum' id='OUTPUT_LANGUAGE' defval='English'>
323 The \c OUTPUT_LANGUAGE tag is used to specify the language in which all
324 documentation generated by doxygen is written. Doxygen will use this
325 information to generate all constant output in the proper language.
328 <value name='Afrikaans'/>
329 <value name='Arabic'/>
330 <value name='Armenian'/>
331 <value name='Brazilian'/>
332 <value name='Bulgarian'/>
333 <value name='Catalan'/>
334 <value name='Chinese'/>
335 <value name='Chinese-Traditional'/>
336 <value name='Croatian'/>
337 <value name='Czech'/>
338 <value name='Danish'/>
339 <value name='Dutch'/>
340 <value name='English' desc='(United States)'/>
341 <value name='Esperanto'/>
342 <value name='Farsi' desc='(Persian)'/>
343 <value name='Finnish'/>
344 <value name='French'/>
345 <value name='German'/>
346 <value name='Greek'/>
347 <value name='Hindi'/>
348 <value name='Hungarian'/>
349 <value name='Indonesian'/>
350 <value name='Italian'/>
351 <value name='Japanese'/>
352 <value name='Japanese-en' desc='(Japanese with English messages)'/>
353 <value name='Korean'/>
354 <value name='Korean-en' desc='(Korean with English messages)'/>
355 <value name='Latvian'/>
356 <value name='Lithuanian'/>
357 <value name='Macedonian'/>
358 <value name='Norwegian'/>
359 <value name='Persian' desc='(Farsi)'/>
360 <value name='Polish'/>
361 <value name='Portuguese'/>
362 <value name='Romanian'/>
363 <value name='Russian'/>
364 <value name='Serbian'/>
365 <value name='Serbian-Cyrillic'/>
366 <value name='Slovak'/>
367 <value name='Slovene'/>
368 <value name='Spanish'/>
369 <value name='Swedish'/>
370 <value name='Turkish'/>
371 <value name='Ukrainian'/>
372 <value name='Vietnamese'/>
374 <option type='bool' id='BRIEF_MEMBER_DESC' defval='1'>
377 If the \c BRIEF_MEMBER_DESC tag is set to \c YES, doxygen will
378 include brief member descriptions after the members that are listed in
379 the file and class documentation (similar to \c Javadoc).
380 Set to \c NO to disable this.
384 <option type='bool' id='REPEAT_BRIEF' defval='1'>
387 If the \c REPEAT_BRIEF tag is set to \c YES, doxygen will
388 prepend the brief description of a member or function before the detailed
391 If both \ref cfg_hide_undoc_members "HIDE_UNDOC_MEMBERS" and
392 \ref cfg_brief_member_desc "BRIEF_MEMBER_DESC" are set to \c NO, the
393 brief descriptions will be completely suppressed.
397 <option type='list' id='ABBREVIATE_BRIEF' format='string'>
400 This tag implements a quasi-intelligent brief description abbreviator
401 that is used to form the text in various listings. Each string
402 in this list, if found as the leading text of the brief description, will be
403 stripped from the text and the result, after processing the whole list, is used
404 as the annotated text. Otherwise, the brief description is used as-is. If left
405 blank, the following values are used (`$name` is automatically replaced with the
409 <value name='The $name class'/>
410 <value name='The $name widget'/>
411 <value name='The $name file'/>
413 <value name='provides'/>
414 <value name='specifies'/>
415 <value name='contains'/>
416 <value name='represents'/>
421 <option type='bool' id='ALWAYS_DETAILED_SEC' defval='0'>
424 If the \c ALWAYS_DETAILED_SEC and \ref cfg_repeat_brief "REPEAT_BRIEF" tags
425 are both set to \c YES then
426 doxygen will generate a detailed section even if there is only a brief
431 <option type='bool' id='INLINE_INHERITED_MEMB' defval='0'>
434 If the \c INLINE_INHERITED_MEMB tag is set to \c YES, doxygen will show all inherited
435 members of a class in the documentation of that class as if those members were
436 ordinary class members. Constructors, destructors and assignment operators of
437 the base classes will not be shown.
441 <option type='bool' id='FULL_PATH_NAMES' defval='1'>
444 If the \c FULL_PATH_NAMES tag is set to \c YES, doxygen will prepend the full
445 path before files name in the file list and in the header files. If set
446 to \c NO the shortest path that makes the file name unique will be used
450 <option type='list' id='STRIP_FROM_PATH' format='dir' depends='FULL_PATH_NAMES'>
453 The \c STRIP_FROM_PATH tag
454 can be used to strip a user-defined part of the path. Stripping is
455 only done if one of the specified strings matches the left-hand part of the
456 path. The tag can be used to show relative paths in the file list.
457 If left blank the directory from which doxygen is run is used as the
459 <br>Note that you can specify absolute paths here, but also
460 relative paths, which will be relative from the directory where doxygen is
465 <option type='list' id='STRIP_FROM_INC_PATH' format='dir'>
468 The \c STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
469 the path mentioned in the documentation of a class, which tells
470 the reader which header file to include in order to use a class.
471 If left blank only the name of the header file containing the class
472 definition is used. Otherwise one should specify the list of include paths that
473 are normally passed to the compiler using the `-I` flag.
477 <option type='bool' id='SHORT_NAMES' defval='0'>
480 If the \c SHORT_NAMES tag is set to \c YES, doxygen will generate much shorter
481 (but less readable) file names. This can be useful is your file systems
482 doesn't support long names like on DOS, Mac, or CD-ROM.
486 <option type='bool' id='JAVADOC_AUTOBRIEF' defval='0'>
489 If the \c JAVADOC_AUTOBRIEF tag is set to \c YES then doxygen
490 will interpret the first line (until the first dot) of a Javadoc-style
491 comment as the brief description. If set to \c NO, the
492 Javadoc-style will behave just like regular Qt-style comments
493 (thus requiring an explicit \ref cmdbrief "\@brief" command for a brief description.)
497 <option type='bool' id='JAVADOC_BANNER' defval='0'>
500 If the \c JAVADOC_BANNER tag is set to \c YES then doxygen
501 will interpret a line such as \verbatim /***************\endverbatim as being the
502 beginning of a Javadoc-style comment "banner". If set to \c NO, the
503 Javadoc-style will behave just like regular comments and it will
504 not be interpreted by doxygen.
508 <option type='bool' id='QT_AUTOBRIEF' defval='0'>
511 If the \c QT_AUTOBRIEF tag is set to \c YES then doxygen
512 will interpret the first line (until the first dot) of a Qt-style
513 comment as the brief description. If set to \c NO, the
514 Qt-style will behave just like regular Qt-style comments (thus
515 requiring an explicit \ref cmdbrief "\\brief" command for a brief description.)
519 <option type='bool' id='MULTILINE_CPP_IS_BRIEF' defval='0'>
522 The \c MULTILINE_CPP_IS_BRIEF tag can be set to \c YES to make doxygen
523 treat a multi-line C++ special comment block (i.e. a block of \c //! or \c ///
524 comments) as a brief description. This used to be the default behavior.
525 The new default is to treat a multi-line C++ comment block as a detailed
526 description. Set this tag to \c YES if you prefer the old behavior instead.
527 <br>Note that setting this tag to \c YES also means that rational rose comments
528 are not recognized any more.
532 <option type='bool' id='PYTHON_DOCSTRING' defval='1'>
535 By default Python docstrings are displayed as preformatted text
536 and doxygen's special commands cannot be used. By setting \c PYTHON_DOCSTRING to
537 \c NO the doxygen's special commands can be used and the contents of the docstring
538 documentation blocks is shown as doxygen documentation.
542 <option type='bool' id='INHERIT_DOCS' defval='1'>
545 If the \c INHERIT_DOCS tag is set to \c YES then an undocumented
546 member inherits the documentation from any documented member that it
551 <option type='bool' id='SEPARATE_MEMBER_PAGES' defval='0'>
554 If the \c SEPARATE_MEMBER_PAGES tag is set to \c YES then doxygen will produce
555 a new page for each member. If set to \c NO, the documentation of a member will
556 be part of the file/class/namespace that contains it.
560 <option type='int' id='TAB_SIZE' minval='1' maxval='16' defval='4'>
563 The \c TAB_SIZE tag can be used to set the number of spaces in a tab.
564 Doxygen uses this value to replace tabs by spaces in code fragments.
568 <option type='list' id='ALIASES' format='string'>
571 This tag can be used to specify a number of aliases that act
572 as commands in the documentation. An alias has the form:
578 "sideeffect=@par Side Effects:^^"
581 put the command \c \\sideeffect (or \c \@sideeffect) in the documentation, which
582 will result in a user-defined paragraph with heading "Side Effects:".
583 Note that you cannot put \ref cmdn "\\n"'s in the value part of an alias to insert newlines
584 (in the resulting output).
585 You can put `^^` in the value part of an alias to insert a newline as if
586 a physical newline was in the original file.
589 <docs doxyfile='0' documentation='0'>
591 When you need a literal `{` or `}` or `,` in the value part of an alias you have to
592 escape them by means of a backslash, this can lead to conflicts with the
593 commands \c \\{ and \c \\} for these it is advised to use the version \c @{ and \c @} or
594 use a double escape (\c \\\\{ and \c \\\\})
597 <docs doxywizard='0' documentation='0'>
599 When you need a literal `{` or `}` or `,` in the value part of an alias you have to
600 escape them by means of a backslash (\c \\), this can lead to conflicts with the
601 commands \c \\{ and \c \\} for these it is advised to use the version \c @{ and \c @} or
602 use a double escape (\c \\\\{ and \c \\\\})
605 <docs doxyfile='0' doxywizard='0'>
607 When you need a literal `{` or `}` or `,` in the value part of an alias you have to
608 escape them by means of a backslash (`\`), this can lead to conflicts with the
609 commands \c \\{ and \c \\} for these it is advised to use the version \c @@{ and \c @@} or
610 use a double escape (\c \\\\{ and \c \\\\})
614 <option type='bool' id='OPTIMIZE_OUTPUT_FOR_C' defval='0'>
617 Set the \c OPTIMIZE_OUTPUT_FOR_C tag to \c YES if your project consists
618 of C sources only. Doxygen will then generate output that is more tailored
619 for C. For instance, some of the names that are used will be different.
620 The list of all members will be omitted, etc.
624 <option type='bool' id='OPTIMIZE_OUTPUT_JAVA' defval='0'>
627 Set the \c OPTIMIZE_OUTPUT_JAVA tag to \c YES if your project consists of Java or
628 Python sources only. Doxygen will then generate output that is more tailored
629 for that language. For instance, namespaces will be presented as packages,
630 qualified scopes will look different, etc.
634 <option type='bool' id='OPTIMIZE_FOR_FORTRAN' defval='0'>
637 Set the \c OPTIMIZE_FOR_FORTRAN tag to \c YES if your project consists of Fortran
638 sources. Doxygen will then generate output that is tailored for Fortran.
642 <option type='bool' id='OPTIMIZE_OUTPUT_VHDL' defval='0'>
645 Set the \c OPTIMIZE_OUTPUT_VHDL tag to \c YES if your project consists of VHDL
646 sources. Doxygen will then generate output that is tailored for VHDL.
650 <option type='bool' id='OPTIMIZE_OUTPUT_SLICE' defval='0'>
653 Set the \c OPTIMIZE_OUTPUT_SLICE tag to \c YES if your project consists of Slice
654 sources only. Doxygen will then generate output that is more tailored
655 for that language. For instance, namespaces will be presented as modules,
656 types will be separated into more groups, etc.
660 <option type='list' id='EXTENSION_MAPPING' format='string'>
663 Doxygen selects the parser to use depending on the extension of the files it parses.
664 With this tag you can assign which parser to use for a given extension.
665 Doxygen has a built-in mapping, but you can override or extend it using this tag.
666 The format is <code>ext=language</code>, where \c ext is a file extension, and language is one of
667 the parsers supported by doxygen: IDL, Java, JavaScript, Csharp (C#), C, C++, Lex, D, PHP,
668 md (Markdown), Objective-C, Python, Slice, VHDL, Fortran (fixed format Fortran: FortranFixed,
669 free formatted Fortran: FortranFree, unknown formatted Fortran: Fortran. In
670 the later case the parser tries to guess whether the code is fixed or free
671 formatted code, this is the default for Fortran type files).
673 For instance to make doxygen treat
674 <code>.inc</code> files as Fortran files (default is PHP), and <code>.f</code> files as C (default is Fortran),
675 use: `inc=Fortran f=C`.
677 <br>Note: For files without extension you can use `no_extension` as a placeholder.
678 <br>Note that for custom extensions you also need to set \ref cfg_file_patterns "FILE_PATTERNS" otherwise the
679 files are not read by doxygen. When specifying `no_extension` you should add `*`
680 to the \ref cfg_file_patterns "FILE_PATTERNS".
681 <br>Note see also the list of \ref default_file_extension_mapping "default file extension mappings".
685 <option type='bool' id='MARKDOWN_SUPPORT' defval='1'>
688 If the \c MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all
689 comments according to the Markdown format, which allows for more readable
690 documentation. See https://daringfireball.net/projects/markdown/ for details.
691 The output of markdown processing is further processed by doxygen, so you
692 can mix doxygen, HTML, and XML commands with Markdown formatting.
693 Disable only in case of backward compatibilities issues.
697 <option type='int' id='TOC_INCLUDE_HEADINGS' minval='0' maxval='99' defval='5' depends='MARKDOWN_SUPPORT'>
700 When the \c TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings
701 up to that level are automatically included in the table of contents, even if
702 they do not have an id attribute.
703 \note This feature currently applies only to Markdown headings.
707 <option type='enum' id='MARKDOWN_ID_STYLE' defval='DOXYGEN' depends='MARKDOWN_SUPPORT'>
710 The \c MARKDOWN_ID_STYLE tag can be used to specify the algorithm used to generate identifiers for the Markdown headings.
711 Note: Every identifier is unique.
714 <value name="DOXYGEN" desc="use a fixed 'autotoc_md' string followed by a sequence number starting at 0"/>
715 <value name="GITHUB" desc="use the lower case version of title with any whitespace replaced by '-' and punctuation characters removed"/>
717 <option type='bool' id='AUTOLINK_SUPPORT' defval='1'>
720 When enabled doxygen tries to link words that correspond to documented classes,
721 or namespaces to their corresponding documentation. Such a link can be
722 prevented in individual cases by putting a \c % sign in front of the word or
723 globally by setting \c AUTOLINK_SUPPORT to \c NO.
727 <option type='bool' id='BUILTIN_STL_SUPPORT' defval='0'>
730 If you use STL classes (i.e. `std::string`, `std::vector`, etc.) but do not want to
731 include (a tag file for) the STL sources as input, then you should
732 set this tag to \c YES in order to let doxygen match functions declarations and
733 definitions whose arguments contain STL classes (e.g. `func(std::string`); versus
734 `func(std::string) {}`). This also make the inheritance and collaboration
735 diagrams that involve STL classes more complete and accurate.
739 <option type='bool' id='CPP_CLI_SUPPORT' defval='0'>
742 If you use Microsoft's C++/CLI language, you should set this option to \c YES to
743 enable parsing support.
747 <option type='bool' id='SIP_SUPPORT' defval='0'>
750 Set the \c SIP_SUPPORT tag to \c YES if your project consists
751 of <a href="https://www.riverbankcomputing.com/software/sip/intro">sip</a> sources only.
752 Doxygen will parse them like normal C++ but will assume all classes use public
753 instead of private inheritance when no explicit protection keyword is present.
757 <option type='bool' id='IDL_PROPERTY_SUPPORT' defval='1'>
760 For Microsoft's IDL there are \c propget and \c propput attributes to indicate getter
761 and setter methods for a property. Setting this option to \c YES
762 will make doxygen to replace the get and set methods by a property in the
763 documentation. This will only work if the methods are indeed getting or
764 setting a simple type. If this is not the case, or you want to show the
765 methods anyway, you should set this option to \c NO.
769 <option type='bool' id='DISTRIBUTE_GROUP_DOC' defval='0'>
772 If member grouping is used in the documentation and the \c DISTRIBUTE_GROUP_DOC
773 tag is set to \c YES then doxygen will reuse the documentation of the first
774 member in the group (if any) for the other members of the group. By default
775 all members of a group must be documented explicitly.
779 <option type='bool' id='GROUP_NESTED_COMPOUNDS' defval='0'>
782 If one adds a struct or class to a group and this option is enabled, then also
783 any nested class or struct is added to the same group. By default this option
784 is disabled and one has to add nested compounds explicitly via \ref cmdingroup "\\ingroup".
788 <option type='bool' id='SUBGROUPING' defval='1'>
791 Set the \c SUBGROUPING tag to \c YES to allow class member groups of
792 the same type (for instance a group of public functions) to be put as a
793 subgroup of that type (e.g. under the Public Functions section). Set it to
794 \c NO to prevent subgrouping. Alternatively, this can be done per class using
795 the \ref cmdnosubgrouping "\\nosubgrouping" command.
799 <option type='bool' id='INLINE_GROUPED_CLASSES' defval='0'>
802 When the \c INLINE_GROUPED_CLASSES tag is set to \c YES, classes, structs and
803 unions are shown inside the group in which they are included
804 (e.g. using \ref cmdingroup "\\ingroup") instead of on a separate page (for HTML and Man pages)
805 or section (for \f$\mbox{\LaTeX}\f$ and RTF).
806 <br>Note that this feature does not work in
807 combination with \ref cfg_separate_member_pages "SEPARATE_MEMBER_PAGES".
811 <option type='bool' id='INLINE_SIMPLE_STRUCTS' defval='0'>
814 When the \c INLINE_SIMPLE_STRUCTS tag is set to \c YES, structs, classes, and
815 unions with only public data fields or simple typedef fields will be shown
816 inline in the documentation of the scope in which they are defined (i.e. file,
817 namespace, or group documentation), provided this scope is documented. If set
818 to \c NO, structs, classes, and unions are shown on a separate
819 page (for HTML and Man pages) or section (for \f$\mbox{\LaTeX}\f$ and RTF).
823 <option type='bool' id='TYPEDEF_HIDES_STRUCT' defval='0'>
826 When \c TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or enum
827 is documented as struct, union, or enum with the name of the typedef. So
828 <code>typedef struct TypeS {} TypeT</code>, will appear in the documentation as a struct
829 with name \c TypeT. When disabled the typedef will appear as a member of a file,
830 namespace, or class. And the struct will be named \c TypeS. This can typically
831 be useful for C code in case the coding convention dictates that all compound
832 types are typedef'ed and only the typedef is referenced, never the tag name.
836 <option type='int' id='LOOKUP_CACHE_SIZE' minval='0' maxval='9' defval='0'>
837 <!-- be careful when changing these formulas as they are hard coded in the conversion script -->
840 The size of the symbol lookup cache can be
841 set using \c LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given
842 their name and scope. Since this can be an expensive process and often the
843 same symbol appears multiple times in the code, doxygen keeps a cache of
844 pre-resolved symbols. If the cache is too small doxygen will become slower.
845 If the cache is too large, memory is wasted. The cache size is given by this
846 formula: \f$2^{(16+\mbox{LOOKUP\_CACHE\_SIZE})}\f$. The valid range is 0..9, the default is 0,
847 corresponding to a cache size of \f$2^{16} = 65536\f$ symbols.
848 At the end of a run doxygen will report the cache usage and suggest the
849 optimal cache size from a speed point of view.
853 <option type='int' id='NUM_PROC_THREADS' defval='1' minval='0' maxval='32'>
856 The \c NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use during
857 processing. When set to \c 0 doxygen will based this on the number of cores
858 available in the system. You can set it explicitly to a value larger than 0
859 to get more control over the balance between CPU load and processing speed.
860 At this moment only the input processing can be done using multiple threads.
861 Since this is still an experimental feature the default is set to 1,
862 which effectively disables parallel processing. Please report any issues you
864 Generating dot graphs in parallel is controlled by the \c DOT_NUM_THREADS setting.
868 <option type='enum' id='TIMESTAMP' defval='NO'>
871 If the \c TIMESTAMP tag is set different from \c NO then
872 each generated page will contain the date or date and time when the page
873 was generated. Setting this to \c NO can help when comparing the output of
879 <value name="DATETIME" />
880 <value name="DATE" />
883 <group name='Build' docs='Build related configuration options'>
884 <option type='bool' id='EXTRACT_ALL' defval='0'>
887 If the \c EXTRACT_ALL tag is set to \c YES, doxygen will assume all
888 entities in documentation are documented, even if no documentation was
889 available. Private class members and static file members will be hidden
890 unless the \ref cfg_extract_private "EXTRACT_PRIVATE" respectively
891 \ref cfg_extract_static "EXTRACT_STATIC" tags are set to \c YES.
893 \note This will also disable the warnings about undocumented members
894 that are normally produced when \ref cfg_warnings "WARNINGS" is
899 <option type='bool' id='EXTRACT_PRIVATE' defval='0'>
902 If the \c EXTRACT_PRIVATE tag is set to \c YES, all private members of a
903 class will be included in the documentation.
907 <option type='bool' id='EXTRACT_PRIV_VIRTUAL' defval='0'>
910 If the \c EXTRACT_PRIV_VIRTUAL tag is set to \c YES, documented private
911 virtual methods of a class will be included in the documentation.
915 <option type='bool' id='EXTRACT_PACKAGE' defval='0'>
918 If the \c EXTRACT_PACKAGE tag is set to \c YES, all members with package
919 or internal scope will be included in the documentation.
923 <option type='bool' id='EXTRACT_STATIC' defval='0'>
926 If the \c EXTRACT_STATIC tag is set to \c YES, all static members of a file
927 will be included in the documentation.
931 <option type='bool' id='EXTRACT_LOCAL_CLASSES' defval='1'>
934 If the \c EXTRACT_LOCAL_CLASSES tag is set to \c YES, classes (and structs)
935 defined locally in source files will be included in the documentation.
936 If set to \c NO, only classes defined in header files are included. Does not
937 have any effect for Java sources.
941 <option type='bool' id='EXTRACT_LOCAL_METHODS' defval='0'>
944 This flag is only useful for Objective-C code. If set to \c YES, local
945 methods, which are defined in the implementation section but not in
946 the interface are included in the documentation.
947 If set to \c NO, only methods in the interface are included.
951 <option type='bool' id='EXTRACT_ANON_NSPACES' defval='0'>
954 If this flag is set to \c YES, the members of anonymous namespaces will be extracted
955 and appear in the documentation as a namespace called 'anonymous_namespace{file}',
956 where file will be replaced with the base name of the file that contains the anonymous
957 namespace. By default anonymous namespace are hidden.
961 <option type='bool' id='RESOLVE_UNNAMED_PARAMS' defval='1'>
964 If this flag is set to \c YES, the name of an unnamed parameter in a declaration will be
965 determined by the corresponding definition. By default unnamed parameters remain unnamed
970 <option type='bool' id='HIDE_UNDOC_MEMBERS' defval='0'>
973 If the \c HIDE_UNDOC_MEMBERS tag is set to \c YES, doxygen will hide all
974 undocumented members inside documented classes or files.
975 If set to \c NO these members will be included in the
976 various overviews, but no documentation section is generated.
977 This option has no effect if \ref cfg_extract_all "EXTRACT_ALL" is enabled.
981 <option type='bool' id='HIDE_UNDOC_CLASSES' defval='0'>
984 If the \c HIDE_UNDOC_CLASSES tag is set to \c YES, doxygen will hide all
985 undocumented classes that are normally visible in the class hierarchy.
986 If set to \c NO, these classes will be included in the
987 various overviews. This option will also hide undocumented C++ concepts
989 This option has no effect if \ref cfg_extract_all "EXTRACT_ALL" is enabled.
993 <option type='bool' id='HIDE_FRIEND_COMPOUNDS' defval='0'>
996 If the \c HIDE_FRIEND_COMPOUNDS tag is set to \c YES, doxygen will hide all
998 If set to \c NO, these declarations will be included in the
1003 <option type='bool' id='HIDE_IN_BODY_DOCS' defval='0'>
1006 If the \c HIDE_IN_BODY_DOCS tag is set to \c YES, doxygen will hide any
1007 documentation blocks found inside the body of a function.
1008 If set to \c NO, these blocks will be appended to the
1009 function's detailed documentation block.
1013 <option type='bool' id='INTERNAL_DOCS' defval='0'>
1016 The \c INTERNAL_DOCS tag determines if documentation
1017 that is typed after a \ref cmdinternal "\\internal" command is included. If the tag is set
1018 to \c NO then the documentation will be excluded.
1019 Set it to \c YES to include the internal documentation.
1023 <option type='enum' id='CASE_SENSE_NAMES' defval='SYSTEM'>
1026 With the correct setting of option \c CASE_SENSE_NAMES doxygen will better be able to match the
1027 capabilities of the underlying filesystem.
1029 In case the filesystem is case sensitive (i.e. it supports files in the same directory
1030 whose names only differ in casing), the option must be set to \c YES to properly deal with such files
1031 in case they appear in the input.
1033 For filesystems that are not case sensitive the option should be set to \c NO to properly
1034 deal with output files written for symbols that only differ in casing, such as for two classes,
1035 one named \c CLASS and the other named \c Class, and to also support references to files without
1036 having to specify the exact matching casing.
1038 On Windows (including Cygwin) and MacOS, users should typically set this option to \c NO,
1039 whereas on Linux or other Unix flavors it should typically be set to \c YES.
1042 <value name="SYSTEM" />
1044 <value name="YES" />
1046 <option type='bool' id='HIDE_SCOPE_NAMES' defval='0'>
1049 If the \c HIDE_SCOPE_NAMES tag is set to \c NO then doxygen
1050 will show members with their full class and namespace scopes in the
1051 documentation. If set to \c YES, the scope will be hidden.
1055 <option type='bool' id='HIDE_COMPOUND_REFERENCE' defval='0'>
1058 If the \c HIDE_COMPOUND_REFERENCE tag is set to \c NO (default) then
1059 doxygen will append additional text to a page's title, such as Class Reference.
1060 If set to \c YES the compound reference will be hidden.
1064 <option type='bool' id='SHOW_HEADERFILE' defval='1'>
1067 If the \c SHOW_HEADERFILE tag is set to \c YES then the documentation
1068 for a class will show which file needs to be included to use the class.
1072 <option type='bool' id='SHOW_INCLUDE_FILES' defval='1'>
1075 If the \c SHOW_INCLUDE_FILES tag is set to \c YES then doxygen
1076 will put a list of the files that are included by a file in the documentation
1081 <option type='bool' id='SHOW_GROUPED_MEMB_INC' defval='0'>
1084 If the \c SHOW_GROUPED_MEMB_INC tag is set to \c YES then Doxygen
1085 will add for each grouped member an include statement to the documentation,
1086 telling the reader which file to include in order to use the member.
1090 <option type='bool' id='FORCE_LOCAL_INCLUDES' defval='0'>
1093 If the \c FORCE_LOCAL_INCLUDES tag is set to \c YES then doxygen
1094 will list include files with double quotes in the documentation
1095 rather than with sharp brackets.
1099 <option type='bool' id='INLINE_INFO' defval='1'>
1102 If the \c INLINE_INFO tag is set to \c YES then a tag [inline]
1103 is inserted in the documentation for inline members.
1107 <option type='bool' id='SORT_MEMBER_DOCS' defval='1'>
1110 If the \c SORT_MEMBER_DOCS tag is set to \c YES then doxygen
1111 will sort the (detailed) documentation of file and class members
1112 alphabetically by member name. If set to \c NO, the members will appear in
1117 <option type='bool' id='SORT_BRIEF_DOCS' defval='0'>
1120 If the \c SORT_BRIEF_DOCS tag is set to \c YES then doxygen will sort the
1121 brief descriptions of file, namespace and class members alphabetically
1122 by member name. If set to \c NO, the members will appear in
1123 declaration order. Note that this will also influence the order of the
1124 classes in the class list.
1128 <option type='bool' id='SORT_MEMBERS_CTORS_1ST' defval='0'>
1131 If the \c SORT_MEMBERS_CTORS_1ST tag is set to \c YES then doxygen
1132 will sort the (brief and detailed) documentation of class members so that
1133 constructors and destructors are listed first. If set to \c NO
1134 the constructors will appear in the respective orders defined by
1135 \ref cfg_sort_brief_docs "SORT_BRIEF_DOCS" and \ref cfg_sort_member_docs "SORT_MEMBER_DOCS".
1136 \note If \ref cfg_sort_brief_docs "SORT_BRIEF_DOCS" is set to \c NO this option is ignored for
1137 sorting brief member documentation.
1138 \note If \ref cfg_sort_member_docs "SORT_MEMBER_DOCS" is set to \c NO this option is ignored for
1139 sorting detailed member documentation.
1143 <option type='bool' id='SORT_GROUP_NAMES' defval='0'>
1146 If the \c SORT_GROUP_NAMES tag is set to \c YES then doxygen will sort the
1147 hierarchy of group names into alphabetical order. If set to \c NO
1148 the group names will appear in their defined order.
1152 <option type='bool' id='SORT_BY_SCOPE_NAME' defval='0'>
1155 If the \c SORT_BY_SCOPE_NAME tag is set to \c YES, the class list will be
1156 sorted by fully-qualified names, including namespaces. If set to
1157 \c NO, the class list will be sorted only by class name,
1158 not including the namespace part.
1159 \note This option is not very useful if \ref cfg_hide_scope_names "HIDE_SCOPE_NAMES" is set to \c YES.
1160 \note This option applies only to the class list, not to the
1165 <option type='bool' id='STRICT_PROTO_MATCHING' defval='0'>
1168 If the \c STRICT_PROTO_MATCHING option is enabled and doxygen fails to
1169 do proper type resolution of all parameters of a function it will reject a
1170 match between the prototype and the implementation of a member function even
1171 if there is only one candidate or it is obvious which candidate to choose
1172 by doing a simple string match. By disabling \c STRICT_PROTO_MATCHING doxygen
1173 will still accept a match between prototype and implementation in such cases.
1177 <option type='bool' id='GENERATE_TODOLIST' defval='1'>
1180 The \c GENERATE_TODOLIST tag can be used to enable (\c YES) or
1181 disable (\c NO) the todo list. This list is created by
1182 putting \ref cmdtodo "\\todo" commands in the documentation.
1186 <option type='bool' id='GENERATE_TESTLIST' defval='1'>
1189 The \c GENERATE_TESTLIST tag can be used to enable (\c YES) or
1190 disable (\c NO) the test list. This list is created by
1191 putting \ref cmdtest "\\test" commands in the documentation.
1195 <option type='bool' id='GENERATE_BUGLIST' defval='1'>
1198 The \c GENERATE_BUGLIST tag can be used to enable (\c YES) or
1199 disable (\c NO) the bug list. This list is created by
1200 putting \ref cmdbug "\\bug" commands in the documentation.
1204 <option type='bool' id='GENERATE_DEPRECATEDLIST' defval='1'>
1207 The \c GENERATE_DEPRECATEDLIST tag can be used to enable (\c YES) or
1208 disable (\c NO) the deprecated list. This list is created by
1209 putting \ref cmddeprecated "\\deprecated"
1210 commands in the documentation.
1214 <option type='list' id='ENABLED_SECTIONS' format='string'>
1217 The \c ENABLED_SECTIONS tag can be used to enable conditional
1218 documentation sections, marked by \ref cmdif "\\if" \<section_label\> ...
1219 \ref cmdendif "\\endif" and \ref cmdcond "\\cond" \<section_label\> ...
1220 \ref cmdendcond "\\endcond" blocks.
1224 <option type='int' id='MAX_INITIALIZER_LINES' minval='0' maxval='10000' defval='30'>
1227 The \c MAX_INITIALIZER_LINES tag determines the maximum number of lines
1228 that the initial value of a variable or macro / define can have for it to appear in
1229 the documentation. If the initializer
1230 consists of more lines than specified here it will be hidden. Use a value
1231 of 0 to hide initializers completely. The appearance of the value of
1232 individual variables and macros / defines can be controlled using \ref cmdshowinitializer "\\showinitializer"
1233 or \ref cmdhideinitializer "\\hideinitializer" command in the documentation regardless of this setting.
1237 <option type='bool' id='SHOW_USED_FILES' defval='1'>
1240 Set the \c SHOW_USED_FILES tag to \c NO to disable the list of files generated
1241 at the bottom of the documentation of classes and structs. If set to \c YES, the
1242 list will mention the files that were used to generate the documentation.
1246 <option type='bool' id='SHOW_FILES' defval='1'>
1249 Set the \c SHOW_FILES tag to \c NO to disable the generation of the Files page.
1250 This will remove the Files entry from the Quick Index and from the
1251 Folder Tree View (if specified).
1255 <option type='bool' id='SHOW_NAMESPACES' defval='1'>
1258 Set the \c SHOW_NAMESPACES tag to \c NO to disable the generation of the
1259 Namespaces page. This will remove the Namespaces entry from the Quick Index
1260 and from the Folder Tree View (if specified).
1264 <option type='string' id='FILE_VERSION_FILTER' format='file' defval=''>
1267 The \c FILE_VERSION_FILTER tag can be used to specify a program or script that
1268 doxygen should invoke to get the current version for each file (typically from the
1269 version control system). Doxygen will invoke the program by executing (via
1270 <code>popen()</code>) the command <code>command input-file</code>, where \c command is
1271 the value of the \c FILE_VERSION_FILTER tag, and \c input-file is the name
1272 of an input file provided by doxygen.
1273 Whatever the program writes to standard output is used as the file version.
1276 <docs doxywizard='0' doxyfile='0'>
1280 Example of using a shell script as a filter for Unix:
1282 FILE_VERSION_FILTER = "/bin/sh versionfilter.sh"
1285 Example shell script for CVS:
1288 cvs status $1 | sed -n 's/^[ \]*Working revision:[ \t]*\([0-9][0-9\.]*\).*/\1/p'
1291 Example shell script for Subversion:
1294 svn stat -v $1 | sed -n 's/^[ A-Z?\*|!]\{1,15\}/r/;s/ \{1,15\}/\/r/;s/ .*//p'
1297 Example filter for ClearCase:
1299 FILE_VERSION_FILTER = "cleartool desc -fmt \%Vn"
1303 <docs documentation='0'>
1305 For an example see the documentation.
1309 <option type='string' id='LAYOUT_FILE' format='file' defval=''>
1312 The \c LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
1313 doxygen. The layout file controls the global structure of the generated output files
1314 in an output format independent way. To create the layout file that represents
1315 doxygen's defaults, run doxygen with the `-l` option. You can optionally specify a
1316 file name after the option, if omitted \c DoxygenLayout.xml will be used as the name
1318 See also section \ref layout for information.
1319 <br>Note that if you run doxygen from a directory containing
1320 a file called \c DoxygenLayout.xml, doxygen will parse it automatically even if
1321 the \c LAYOUT_FILE tag is left empty.
1325 <option type='list' id='CITE_BIB_FILES' format='file'>
1328 The \c CITE_BIB_FILES tag can be used to specify one or more \c bib files
1329 containing the reference definitions. This must be a list of <code>.bib</code> files. The
1330 <code>.bib</code> extension is automatically appended if omitted. This requires the
1331 \c bibtex tool to be installed. See also https://en.wikipedia.org/wiki/BibTeX for
1332 more info. For \f$\mbox{\LaTeX}\f$ the style of the bibliography can be controlled
1333 using \ref cfg_latex_bib_style "LATEX_BIB_STYLE".
1334 To use this feature you need \c bibtex and \c perl available in the search path.
1335 See also \ref cmdcite "\\cite" for info how to create references.
1340 <group name='Messages' docs='Configuration options related to warning and progress messages'>
1341 <option type='bool' id='QUIET' defval='0'>
1344 The \c QUIET tag can be used to turn on/off the messages that are generated
1345 to standard output by doxygen. If \c QUIET is set to \c YES this implies that the messages are off.
1349 <option type='bool' id='WARNINGS' defval='1'>
1352 The \c WARNINGS tag can be used to turn on/off the warning messages that are
1353 generated to standard error (\c stderr) by doxygen. If \c WARNINGS is set to
1354 \c YES this implies that the warnings are on.
1356 \b Tip: Turn warnings on while writing the documentation.
1360 <option type='bool' id='WARN_IF_UNDOCUMENTED' defval='1'>
1363 If the \c WARN_IF_UNDOCUMENTED tag is set to \c YES then doxygen will generate warnings
1364 for undocumented members. If \ref cfg_extract_all "EXTRACT_ALL" is set to \c YES then this flag will
1365 automatically be disabled.
1369 <option type='bool' id='WARN_IF_DOC_ERROR' defval='1'>
1372 If the \c WARN_IF_DOC_ERROR tag is set to \c YES, doxygen will generate warnings for
1373 potential errors in the documentation, such as documenting some
1374 parameters in a documented function twice, or documenting parameters that
1375 don't exist or using markup commands wrongly.
1379 <option type='bool' id='WARN_IF_INCOMPLETE_DOC' defval='1'>
1382 If \c WARN_IF_INCOMPLETE_DOC is set to \c YES, doxygen will warn about
1383 incomplete function parameter documentation.
1384 If set to \c NO, doxygen will accept that some parameters have no
1385 documentation without warning.
1389 <option type='bool' id='WARN_NO_PARAMDOC' defval='0'>
1392 This \c WARN_NO_PARAMDOC option can be enabled to get warnings for
1393 functions that are documented, but have no documentation for their parameters
1394 or return value. If set to \c NO, doxygen will only warn about
1395 wrong parameter documentation, but not about the absence of
1397 If \ref cfg_extract_all "EXTRACT_ALL" is set to \c YES then this flag will
1398 automatically be disabled.
1399 See also \ref cfg_warn_if_incomplete_doc "WARN_IF_INCOMPLETE_DOC"
1403 <option type='bool' id='WARN_IF_UNDOC_ENUM_VAL' defval='0'>
1406 If \c WARN_IF_UNDOC_ENUM_VAL option is set to \c YES, doxygen will warn
1407 about undocumented enumeration values.
1408 If set to \c NO, doxygen will accept undocumented enumeration values.
1409 If \ref cfg_extract_all "EXTRACT_ALL" is set to \c YES then this flag will
1410 automatically be disabled.
1414 <option type='enum' id='WARN_AS_ERROR' defval='NO'>
1417 If the \c WARN_AS_ERROR tag is set to \c YES then doxygen will immediately stop
1418 when a warning is encountered.
1419 If the \c WARN_AS_ERROR tag is set to \c FAIL_ON_WARNINGS then doxygen will continue
1420 running as if \c WARN_AS_ERROR tag is set to \c NO, but at the end of the doxygen
1421 process doxygen will return with a non-zero status.
1422 If the \c WARN_AS_ERROR tag is set to \c FAIL_ON_WARNINGS_PRINT then doxygen behaves like
1423 \c FAIL_ON_WARNINGS but in case no \ref cfg_warn_logfile "WARN_LOGFILE" is defined
1424 doxygen will not write the warning messages in between other
1425 messages but write them at the end of a run, in case a
1426 \ref cfg_warn_logfile "WARN_LOGFILE" is defined the warning messages will be
1427 besides being in the defined file also be shown at the end of a run, unless the
1428 \ref cfg_warn_logfile "WARN_LOGFILE" is defined as `-` i.e. standard output (`stdout`)
1429 in that case the behavior will remain as with the setting \c FAIL_ON_WARNINGS.
1433 <value name="YES" />
1434 <value name="FAIL_ON_WARNINGS" />
1435 <value name="FAIL_ON_WARNINGS_PRINT" />
1437 <option type='string' id='WARN_FORMAT' format='string' defval='$file:$line: $text'>
1440 The \c WARN_FORMAT tag determines the format of the warning messages that
1441 doxygen can produce. The string should contain the <code>\$file</code>,
1442 <code>\$line</code>, and <code>\$text</code>
1443 tags, which will be replaced by the file and line number from which the
1444 warning originated and the warning text.
1445 Optionally the format may contain
1446 <code>$version</code>, which will be replaced by the version of the file (if it could
1447 be obtained via \ref cfg_file_version_filter "FILE_VERSION_FILTER")
1449 \sa \ref cfg_warn_line_format "WARN_LINE_FORMAT"
1453 <option type='string' id='WARN_LINE_FORMAT' format='string' defval='at line $line of file $file'>
1456 In the `$text` part of the \ref cfg_warn_format "WARN_FORMAT" command it is
1457 possible that a reference to a more specific place is given. To make it easier
1458 to jump to this place (outside of doxygen) the user can define a custom
1459 "cut" / "paste" string.
1463 WARN_LINE_FORMAT = "'vi $file +$line'"
1466 \sa \ref cfg_warn_format "WARN_FORMAT"
1470 <option type='string' id='WARN_LOGFILE' format='file' defval=''>
1473 The \c WARN_LOGFILE tag can be used to specify a file to which warning
1474 and error messages should be written. If left blank the output is written
1475 to standard error (`stderr`). In case the file specified cannot be opened for
1476 writing the warning and error messages are written to standard error. When as
1477 file `-` is specified the warning and error messages are written to standard output
1483 <group name='Input' docs='Configuration options related to the input files'>
1484 <option type='list' id='INPUT' format='filedir'>
1487 The \c INPUT tag is used to specify the files and/or directories that contain
1488 documented source files. You may enter file names like
1489 \c myfile.cpp or directories like \c /usr/src/myproject.
1490 Separate the files or directories with spaces. See also
1491 \ref cfg_file_patterns "FILE_PATTERNS" and
1492 \ref cfg_extension_mapping "EXTENSION_MAPPING"
1494 \note If this tag is empty the current directory is searched.
1498 <option type='string' id='INPUT_ENCODING' format='string' defval='UTF-8'>
1501 This tag can be used to specify the character encoding of the source files that
1502 doxygen parses. Internally doxygen uses the UTF-8 encoding.
1503 Doxygen uses `libiconv` (or the `iconv` built into `libc`) for the transcoding.
1504 See <a href="https://www.gnu.org/software/libiconv/">the libiconv documentation</a> for
1505 the list of possible encodings.
1507 \sa \ref cfg_input_file_encoding "INPUT_FILE_ENCODING"
1511 <option type='list' id='INPUT_FILE_ENCODING' format='string'>
1514 This tag can be used to specify the character encoding of the source files that doxygen
1516 The \c INPUT_FILE_ENCODING tag can be used to specify character encoding on a per file pattern
1517 basis. Doxygen will compare the file name with each pattern and apply the
1518 encoding instead of the default \ref cfg_input_encoding "INPUT_ENCODING") if there is a match.
1519 The character encodings are a list of the form: pattern=encoding (like `*.php=ISO-8859-1`).
1521 See cfg_input_encoding "INPUT_ENCODING" for further information on supported encodings.
1525 <option type='list' id='FILE_PATTERNS' format='string'>
1528 If the value of the \ref cfg_input "INPUT" tag contains directories, you can use the
1529 \c FILE_PATTERNS tag to specify one or more wildcard patterns
1530 (like `*.cpp` and `*.h`) to filter out the source-files
1531 in the directories.<br>
1532 Note that for custom extensions or not directly supported extensions you also
1533 need to set \ref cfg_extension_mapping "EXTENSION_MAPPING" for the extension
1534 otherwise the files are not read by doxygen.<br>
1535 Note the list of default checked file patterns might differ from the list of
1536 \ref default_file_extension_mapping "default file extension mappings".<br>
1537 If left blank the following patterns are tested:
1541 <value name='*.cc'/>
1542 <value name='*.cxx'/>
1543 <value name='*.cxxm'/>
1544 <value name='*.cpp'/>
1545 <value name='*.cppm'/>
1546 <value name='*.c++'/>
1547 <value name='*.c++m'/>
1548 <value name='*.java'/>
1549 <value name='*.ii'/>
1550 <value name='*.ixx'/>
1551 <value name='*.ipp'/>
1552 <value name='*.i++'/>
1553 <value name='*.inl'/>
1554 <value name='*.idl'/>
1555 <value name='*.ddl'/>
1556 <value name='*.odl'/>
1558 <value name='*.hh'/>
1559 <value name='*.hxx'/>
1560 <value name='*.hpp'/>
1561 <value name='*.h++'/>
1562 <value name='*.ixx'/>
1564 <value name='*.cs'/>
1566 <value name='*.php'/>
1567 <value name='*.php4'/>
1568 <value name='*.php5'/>
1569 <value name='*.phtml'/>
1570 <value name='*.inc'/>
1572 <value name='*.markdown'/>
1573 <value name='*.md'/>
1574 <value name='*.mm'/>
1575 <value name='*.dox' desc='(to be provided as doxygen C comment)'/>
1576 <value name='*.py'/>
1577 <value name='*.pyw'/>
1578 <value name='*.f90'/>
1579 <value name='*.f95'/>
1580 <value name='*.f03'/>
1581 <value name='*.f08'/>
1582 <value name='*.f18'/>
1584 <value name='*.for'/>
1585 <value name='*.vhd'/>
1586 <value name='*.vhdl'/>
1587 <value name='*.ucf'/>
1588 <value name='*.qsf'/>
1589 <value name='*.ice'/>
1591 <option type='bool' id='RECURSIVE' defval='0'>
1594 The \c RECURSIVE tag can be used to specify whether or not subdirectories
1595 should be searched for input files as well.
1599 <option type='list' id='EXCLUDE' format='filedir'>
1602 The \c EXCLUDE tag can be used to specify files and/or directories that should be
1603 excluded from the \ref cfg_input "INPUT" source files. This way you can easily exclude a
1604 subdirectory from a directory tree whose root is specified with the \ref cfg_input "INPUT" tag.
1605 <br>Note that relative paths are relative to the directory from which doxygen is run.
1609 <option type='bool' id='EXCLUDE_SYMLINKS' defval='0'>
1612 The \c EXCLUDE_SYMLINKS tag can be used to select whether or not files or directories
1613 that are symbolic links (a Unix file system feature) are excluded from the input.
1617 <option type='list' id='EXCLUDE_PATTERNS' format='string'>
1620 If the value of the \ref cfg_input "INPUT" tag contains directories, you can use the
1621 \c EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
1622 certain files from those directories.
1623 <br>Note that the wildcards are matched
1624 against the file with absolute path, so to exclude all test directories
1625 for example use the pattern `*``/test/``*`
1629 <option type='list' id='EXCLUDE_SYMBOLS' format='string'>
1632 The \c EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
1633 (namespaces, classes, functions, etc.) that should be excluded from the
1634 output. The symbol name can be a fully qualified name, a word, or if the
1635 wildcard `*` is used, a substring. Examples: `ANamespace`, `AClass`,
1636 `ANamespace::AClass`, `ANamespace::*Test`
1640 <option type='list' id='EXAMPLE_PATH' format='filedir'>
1643 The \c EXAMPLE_PATH tag can be used to specify one or more files or
1644 directories that contain example code fragments that are included (see
1645 the \ref cmdinclude "\\include" command).
1649 <option type='list' id='EXAMPLE_PATTERNS' format='string'>
1652 If the value of the \ref cfg_example_path "EXAMPLE_PATH" tag contains directories,
1654 \c EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like `*.cpp`
1655 and `*.h`) to filter out the source-files in the directories. If left
1656 blank all files are included.
1659 <value name='*' show_docu='NO'/>
1661 <option type='bool' id='EXAMPLE_RECURSIVE' defval='0'>
1664 If the \c EXAMPLE_RECURSIVE tag is set to \c YES then subdirectories will be
1665 searched for input files to be used with the \ref cmdinclude "\\include" or
1666 \ref cmddontinclude "\\dontinclude"
1667 commands irrespective of the value of the \ref cfg_recursive "RECURSIVE" tag.
1671 <option type='list' id='IMAGE_PATH' format='filedir'>
1674 The \c IMAGE_PATH tag can be used to specify one or more files or
1675 directories that contain images that are to be included in the
1676 documentation (see the \ref cmdimage "\\image" command).
1680 <option type='string' id='INPUT_FILTER' format='file' defval=''>
1683 The \c INPUT_FILTER tag can be used to specify a program that doxygen should
1684 invoke to filter for each input file. Doxygen will invoke the filter program
1685 by executing (via <code>popen()</code>) the command:
1687 <code>\<filter\> \<input-file\></code>
1689 where <code>\<filter\></code>
1690 is the value of the \c INPUT_FILTER tag, and <code>\<input-file\></code> is the name of an
1691 input file. Doxygen will then use the output that the filter program writes
1692 to standard output. If \ref cfg_filter_patterns "FILTER_PATTERNS" is specified, this tag will be ignored.
1693 <br>Note that the filter must not add or remove lines; it is applied before the
1694 code is scanned, but not when the output code is generated. If lines are added
1695 or removed, the anchors will not be placed correctly.
1696 <br>Note that doxygen will use the data processed and written to standard output for further processing,
1697 therefore nothing else, like debug statements or used commands (so in case of a Windows batch file
1698 always use `@echo OFF`), should be written to standard output.
1699 <br>Note that for custom extensions or not directly supported extensions you also
1700 need to set \ref cfg_extension_mapping "EXTENSION_MAPPING" for the extension
1701 otherwise the files are not properly processed by doxygen.<br>
1706 <option type='list' id='FILTER_PATTERNS' format='string'>
1709 The \c FILTER_PATTERNS tag can be used to specify filters on a per file pattern
1710 basis. Doxygen will compare the file name with each pattern and apply the
1711 filter if there is a match. The filters are a list of the form:
1712 pattern=filter (like `*.cpp=my_cpp_filter`). See \ref cfg_input_filter "INPUT_FILTER" for further
1713 information on how filters are used. If the \c FILTER_PATTERNS tag is empty or if
1714 none of the patterns match the file name, \ref cfg_input_filter "INPUT_FILTER" is
1716 <br>Note that for custom extensions or not directly supported extensions you also
1717 need to set \ref cfg_extension_mapping "EXTENSION_MAPPING" for the extension
1718 otherwise the files are not properly processed by doxygen.<br>
1722 <option type='bool' id='FILTER_SOURCE_FILES' defval='0'>
1725 If the \c FILTER_SOURCE_FILES tag is set to \c YES, the input filter (if set using
1726 \ref cfg_input_filter "INPUT_FILTER") will also be used to filter the input
1727 files that are used for producing the source files to browse
1728 (i.e. when \ref cfg_source_browser "SOURCE_BROWSER" is set to \c YES).
1732 <option type='list' id='FILTER_SOURCE_PATTERNS' format='string' depends='FILTER_SOURCE_FILES'>
1735 The \c FILTER_SOURCE_PATTERNS tag can be used to specify source filters per
1736 file pattern. A pattern will override the setting
1737 for \ref cfg_filter_patterns "FILTER_PATTERN" (if any)
1738 and it is also possible to disable source filtering for a specific pattern
1739 using `*.ext=` (so without naming a filter).
1743 <option type='string' id='USE_MDFILE_AS_MAINPAGE' format='string' defval=''>
1746 If the \c USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
1747 is part of the input, its contents will be placed on the main page (`index.html`).
1748 This can be useful if you have a project on for instance GitHub and want to reuse
1749 the introduction page also for the doxygen output.
1753 <option type='int' id='FORTRAN_COMMENT_AFTER' defval='72' minval='7' maxval='10000'>
1756 The Fortran standard specifies that for fixed formatted Fortran code all characters
1757 from position 72 are to be considered as comment. A common extension is to allow
1758 longer lines before the automatic comment starts.
1759 The setting \c FORTRAN_COMMENT_AFTER will also make it possible that longer lines can be
1760 processed before the automatic comment starts.
1765 <group name='Source_Browser' docs='Configuration options related to source browsing'>
1766 <option type='bool' id='SOURCE_BROWSER' defval='0'>
1769 If the \c SOURCE_BROWSER tag is set to \c YES then a list of source files will
1770 be generated. Documented entities will be cross-referenced with these sources.
1771 <br>Note: To get rid of all source code in the generated output, make sure that also
1772 \ref cfg_verbatim_headers "VERBATIM_HEADERS" is set to \c NO.
1776 <option type='bool' id='INLINE_SOURCES' defval='0'>
1779 Setting the \c INLINE_SOURCES tag to \c YES will include the body
1780 of functions, classes and enums directly into the documentation.
1784 <option type='bool' id='STRIP_CODE_COMMENTS' defval='1'>
1787 Setting the \c STRIP_CODE_COMMENTS tag to \c YES will instruct
1788 doxygen to hide any special comment blocks from generated source code
1789 fragments. Normal C, C++ and Fortran comments will always remain visible.
1793 <option type='bool' id='REFERENCED_BY_RELATION' defval='0'>
1796 If the \c REFERENCED_BY_RELATION tag is set to \c YES
1797 then for each documented entity all documented
1798 functions referencing it will be listed.
1802 <option type='bool' id='REFERENCES_RELATION' defval='0'>
1805 If the \c REFERENCES_RELATION tag is set to \c YES
1806 then for each documented function all documented entities
1807 called/used by that function will be listed.
1811 <option type='bool' id='REFERENCES_LINK_SOURCE' defval='1'>
1814 If the \c REFERENCES_LINK_SOURCE tag is set to \c YES
1815 and \ref cfg_source_browser "SOURCE_BROWSER" tag is set to \c YES then the hyperlinks from
1816 functions in \ref cfg_references_relation "REFERENCES_RELATION" and
1817 \ref cfg_referenced_by_relation "REFERENCED_BY_RELATION" lists will
1818 link to the source code. Otherwise they will link to the documentation.
1822 <option type='bool' id='SOURCE_TOOLTIPS' defval='1' depends='SOURCE_BROWSER'>
1825 If \c SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
1826 source code will show a tooltip with additional information such as prototype,
1827 brief description and links to the definition and documentation. Since this will
1828 make the HTML file larger and loading of large files a bit slower, you can opt
1829 to disable this feature.
1833 <option type='bool' id='USE_HTAGS' defval='0' depends='SOURCE_BROWSER'>
1836 If the \c USE_HTAGS tag is set to \c YES then the references to source code
1837 will point to the HTML generated by the \c htags(1) tool instead of doxygen
1838 built-in source browser. The \c htags tool is part of GNU's global source
1839 tagging system (see https://www.gnu.org/software/global/global.html). You
1840 will need version 4.8.6 or higher.
1842 To use it do the following:
1843 -# Install the latest version of \c global
1844 -# Enable \ref cfg_source_browser "SOURCE_BROWSER" and \c USE_HTAGS in the configuration file
1845 -# Make sure the \ref cfg_input "INPUT" points to the root of the source tree
1846 -# Run \c doxygen as normal
1848 Doxygen will invoke \c htags (and that will in turn invoke \c gtags), so these tools
1849 must be available from the command line (i.e. in the search path).
1851 The result: instead of the source browser generated by doxygen, the links to
1852 source code will now point to the output of \c htags.
1857 <option type='bool' id='VERBATIM_HEADERS' defval='1'>
1860 If the \c VERBATIM_HEADERS tag is set the \c YES then doxygen
1861 will generate a verbatim copy of the header file for each class for
1862 which an include is specified. Set to \c NO to disable this.
1863 \sa Section \ref cmdclass "\\class".
1867 <option type='bool' id='CLANG_ASSISTED_PARSING' setting='USE_LIBCLANG' defval='0'>
1870 If the \c CLANG_ASSISTED_PARSING tag is set to \c YES then doxygen will use the
1871 <a href="http://clang.llvm.org/">clang parser</a> for more accurate parsing
1872 at the cost of reduced performance. This can be particularly helpful with
1873 template rich C++ code for which doxygen's built-in parser lacks the
1874 necessary type information.
1876 @note The availability of this option depends on whether or not doxygen
1877 was generated with the `-Duse_libclang=ON` option for CMake.
1881 <option type='bool' id='CLANG_ADD_INC_PATHS' setting='USE_LIBCLANG' depends='CLANG_ASSISTED_PARSING' defval='1'>
1884 If the \c CLANG_ASSISTED_PARSING tag is set to \c YES and the \c CLANG_ADD_INC_PATHS
1885 tag is set to \c YES then doxygen will add the directory of each input to the
1890 <option type='list' id='CLANG_OPTIONS' format='string' setting='USE_LIBCLANG' depends='CLANG_ASSISTED_PARSING'>
1893 If clang assisted parsing is enabled you can provide the compiler with command
1894 line options that you would normally use when invoking the compiler. Note that
1895 the include paths will already be set by doxygen for the files and directories
1896 specified with \ref cfg_input "INPUT" and \ref cfg_include_path "INCLUDE_PATH".
1900 <option type='string' id='CLANG_DATABASE_PATH' setting='USE_LIBCLANG' defval=''>
1903 If clang assisted parsing is enabled you can provide the clang parser with the
1904 path to the directory containing a file called `compile_commands.json`.
1905 This file is the <a href="http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html">
1906 compilation database</a> containing the options used when the source files were built.
1907 This is equivalent to specifying the `-p` option to a clang tool, such as `clang-check`.
1908 These options will then be passed to the parser. Any options specified with
1909 \ref cfg_clang_options "CLANG_OPTIONS" will be added as well.
1911 @note The availability of this option depends on whether or not doxygen
1912 was generated with the `-Duse_libclang=ON` option for CMake.
1917 <group name='Index' docs='Configuration options related to the alphabetical class index'>
1918 <option type='bool' id='ALPHABETICAL_INDEX' defval='1'>
1921 If the \c ALPHABETICAL_INDEX tag is set to \c YES, an alphabetical index
1922 of all compounds will be generated. Enable this if the project contains
1923 a lot of classes, structs, unions or interfaces.
1927 <option type='list' id='IGNORE_PREFIX' format='string' depends='ALPHABETICAL_INDEX'>
1930 The \c IGNORE_PREFIX tag can be used to specify a prefix
1931 (or a list of prefixes) that should be ignored while generating the index headers.
1932 The \c IGNORE_PREFIX tag works for classes, function and member names.
1933 The entity will be placed in the alphabetical list under the first letter of the entity name that remains
1934 after removing the prefix.
1939 <group name='HTML' docs='Configuration options related to the HTML output'>
1940 <option type='bool' id='GENERATE_HTML' defval='1'>
1943 If the \c GENERATE_HTML tag is set to \c YES, doxygen will
1944 generate HTML output
1948 <option type='string' id='HTML_OUTPUT' format='dir' defval='html' depends='GENERATE_HTML'>
1951 The \c HTML_OUTPUT tag is used to specify where the HTML docs will be put.
1952 If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
1957 <option type='string' id='HTML_FILE_EXTENSION' format='string' defval='.html' depends='GENERATE_HTML'>
1960 The \c HTML_FILE_EXTENSION tag can be used to specify the file extension for
1961 each generated HTML page (for example: <code>.htm, .php, .asp</code>).
1965 <option type='string' id='HTML_HEADER' format='file' defval='' depends='GENERATE_HTML'>
1968 The \c HTML_HEADER tag can be used to specify a user-defined HTML
1969 header file for each generated HTML page.
1970 If the tag is left blank doxygen will generate a
1973 To get valid HTML the header file that
1974 includes any scripts and style sheets that doxygen
1975 needs, which is dependent on the configuration options used (e.g. the
1976 setting \ref cfg_generate_treeview "GENERATE_TREEVIEW").
1977 It is highly recommended to start with a default header using
1979 doxygen -w html new_header.html new_footer.html new_stylesheet.css YourConfigFile
1981 and then modify the file \c new_header.html.
1983 See also section \ref doxygen_usage for information on how to generate
1984 the default header that doxygen normally uses.
1986 @note The header is subject to change so you typically
1987 have to regenerate the default header when upgrading to a newer version of
1991 <docs doxywizard='0' doxyfile='0'>
1993 The following markers have a special meaning inside the header and footer:
1995 <dt><code>$title</code><dd>will be replaced with the title of the page.
1996 <dt><code>$datetime</code><dd>will be replaced with the current date and time.
1997 <dt><code>$date</code><dd>will be replaced with the current date.
1998 <dt><code>$time</code><dd>will be replaced with the current time.
1999 <dt><code>$year</code><dd>will be replaces with the current year.
2000 <dt><code>$showdate(<format>)</code><dd>will be replaced with the current date
2001 and time according to the format as specified by `<format>`. The
2002 `<format>` follows the rules as specified for the
2003 \ref cmdshowdate "\\showdate" command with the exception that no `)`
2004 is allowed in the `<format>`.
2005 <dt><code>$doxygenversion</code><dd>will be replaced with the version of doxygen
2006 <dt><code>$projectname</code><dd>will be replaced with the name of
2007 the project (see \ref cfg_project_name "PROJECT_NAME")
2008 <dt><code>$projectnumber</code><dd>will be replaced with the project number
2009 (see \ref cfg_project_number "PROJECT_NUMBER")
2010 <dt><code>$projectbrief</code><dd>will be replaced with the project brief
2011 description (see \ref cfg_project_brief "PROJECT_BRIEF")
2012 <dt><code>$projectlogo</code><dd>will be replaced with the project logo
2013 (see \ref cfg_project_logo "PROJECT_LOGO")
2014 <dt><code>$generatedby</code><dd>will be replaced with the output language dependent
2015 version of the text "Generated by" or when the
2016 \ref cfg_timestamp "TIMESTAMP" is set by the output language
2017 dependent version of the text "Generated on `$datetime` for `$projectname` by".
2018 <dt><code>$stylesheet</code><dd>will be replaced with the setting of
2019 \ref cfg_html_stylesheet "HTML_STYLESHEET" unless it is empty or the file in which case
2020 it is replaced by the default setting `doxygen.css`.
2021 <dt><code>$extrastylesheet</code><dd>will be replaced with the setting of
2022 \ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET" including the required
2023 HTML tags for each extra stylesheet.
2024 <dt><code>$treeview</code><dd>will be replaced with links to
2025 the javascript and style sheets needed for the navigation tree
2026 (or an empty string when \ref cfg_generate_treeview "GENERATE_TREEVIEW"
2028 <dt><code>$search</code><dd>will be replaced with a links to
2029 the javascript and style sheets needed for the search engine
2030 (or an empty string when \ref cfg_searchengine "SEARCHENGINE"
2032 <dt><code>$searchbox</code><dd>will be replaced with the HTML code needed for
2033 the search box to be shown
2034 (or an empty string when \ref cfg_searchengine "SEARCHENGINE"
2036 <dt><code>$mathjax</code><dd>will be replaced with a links to
2037 the javascript and style sheets needed for the MathJax feature
2038 (or an empty string when \ref cfg_use_mathjax "USE_MATHJAX" is disabled).
2039 <dt><code>$relpath^</code><dd>
2040 If \ref cfg_create_subdirs "CREATE_SUBDIRS" is enabled, the command <code>$relpath^</code> can be
2041 used to produce a relative path to the root of the HTML output directory,
2042 e.g. use <code>$relpath^doxygen.css</code>, to refer to the standard style sheet.
2043 <dt><code>$navpath</code><dd>will be replaced with a path as required by
2044 \ref cfg_generate_treeview "GENERATE_TREEVIEW"
2047 To cope with differences in the layout of the header and footer that depend on
2048 configuration settings, the header can also contain special blocks that
2049 will be copied to the output or skipped depending on the configuration.
2050 Such blocks have the following form:
2052 <!--BEGIN BLOCKNAME-->
2053 Some context copied when condition BLOCKNAME holds
2054 <!--END BLOCKNAME-->
2055 <!--BEGIN !BLOCKNAME-->
2056 Some context copied when condition BLOCKNAME does not hold
2057 <!--END !BLOCKNAME-->
2059 The following block names are supported:
2061 <dt><code>DISABLE_INDEX</code><dd>Content within this block is copied to the output
2062 if the \ref cfg_disable_index "DISABLE_INDEX" option is enabled (so when the index is disabled).
2063 <dt><code>GENERATE_TREEVIEW</code><dd>Content within this block is copied to the output
2064 if the \ref cfg_generate_treeview "GENERATE_TREEVIEW" option is enabled.
2065 <dt><code>SEARCHENGINE</code><dd>Content within this block is copied to the output
2066 if the \ref cfg_searchengine "SEARCHENGINE" option is enabled.
2067 <dt><code>PROJECT_NAME</code><dd>Content within the block is copied to the output
2068 if the \ref cfg_project_name "PROJECT_NAME" option is not empty.
2069 <dt><code>PROJECT_NUMBER</code><dd>Content within the block is copied to the output
2070 if the \ref cfg_project_number "PROJECT_NUMBER" option is not empty.
2071 <dt><code>PROJECT_BRIEF</code><dd>Content within the block is copied to the output
2072 if the \ref cfg_project_brief "PROJECT_BRIEF" option is not empty.
2073 <dt><code>PROJECT_LOGO</code><dd>Content within the block is copied to the output
2074 if the \ref cfg_project_logo "PROJECT_LOGO" option is not empty.
2075 <dt><code>FULL_SIDEBAR</code><dd>Content within the block is copied to the output
2076 if the \ref cfg_full_sidebar "FULL_SIDEBAR",
2077 \ref cfg_disable_index "DISABLE_INDEX" and \ref cfg_generate_treeview "GENERATE_TREEVIEW"
2078 options are all enabled.
2079 <dt><code>TITLEAREA</code><dd>Content within this block is copied to the output
2080 if a title is visible at the top of each page. This is the case
2081 if either \ref cfg_project_name "PROJECT_NAME",
2082 \ref cfg_project_brief "PROJECT_BRIEF", \ref cfg_project_logo "PROJECT_LOGO"
2083 is filled in or if both \ref cfg_disable_index "DISABLE_INDEX" and
2084 \ref cfg_searchengine "SEARCHENGINE" are enabled.
2088 <docs documentation='0'>
2090 For a description of the possible markers and block names see the documentation.
2095 <option type='string' id='HTML_FOOTER' format='file' defval='' depends='GENERATE_HTML'>
2098 The \c HTML_FOOTER tag can be used to specify a user-defined HTML footer for
2099 each generated HTML page.
2100 If the tag is left blank doxygen will generate a standard footer.
2102 See \ref cfg_html_header "HTML_HEADER" for more information on
2103 how to generate a default footer and what special commands can be
2104 used inside the footer.
2106 See also section \ref doxygen_usage for information on how to generate
2107 the default footer that doxygen normally uses.
2111 <option type='string' id='HTML_STYLESHEET' format='file' defval='' depends='GENERATE_HTML'>
2114 The \c HTML_STYLESHEET tag can be used to specify a user-defined cascading
2115 style sheet that is used by each HTML page. It can be used to
2116 fine-tune the look of the HTML output. If left blank doxygen
2117 will generate a default style sheet.
2119 See also section \ref doxygen_usage for information on how to generate
2120 the style sheet that doxygen normally uses.
2122 \note It is recommended to use
2123 \ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET" instead of this tag,
2124 as it is more robust and
2125 this tag (<code>HTML_STYLESHEET</code>) will in the future become obsolete.
2129 <option type='list' id='HTML_EXTRA_STYLESHEET' format='file' defval='' depends='GENERATE_HTML'>
2132 The \c HTML_EXTRA_STYLESHEET tag can be used to specify additional
2133 user-defined cascading style sheets that are included after the standard
2134 style sheets created by doxygen. Using this option one can overrule
2135 certain style aspects. This is preferred over using \ref cfg_html_stylesheet "HTML_STYLESHEET"
2136 since it does not replace the standard style sheet and is therefore more
2137 robust against future updates. Doxygen will copy the style sheet files to
2138 the output directory.
2139 \note The order of the extra style sheet files is of importance (e.g. the last
2140 style sheet in the list overrules the setting of the previous ones in the list).
2141 \note Since the styling of scrollbars can currently not be overruled in Webkit/Chromium, the
2142 styling will be left out of the default doxygen.css if one or more extra stylesheets
2143 have been specified.
2144 So if scrollbar customization is desired it has to be added explicitly.
2147 <docs doxywizard='0' doxyfile='0'>
2149 Here is an example style sheet that gives the contents area a fixed width:
2152 background-color: #CCC;
2158 margin-bottom: 10px;
2163 background-color: white;
2168 background-color: white;
2176 background-color: #AAA;
2181 <docs documentation='0'>
2183 For an example see the documentation.
2187 <option type='list' id='HTML_EXTRA_FILES' format='file' depends='GENERATE_HTML'>
2190 The \c HTML_EXTRA_FILES tag can be used to specify one or more extra images or
2191 other source files which should be copied to the HTML output directory. Note
2192 that these files will be copied to the base HTML output directory. Use the
2193 <code>$relpath^</code> marker in the \ref cfg_html_header "HTML_HEADER" and/or
2194 \ref cfg_html_footer "HTML_FOOTER" files to load these
2195 files. In the \ref cfg_html_stylesheet "HTML_STYLESHEET" file, use the file name only. Also note that
2196 the files will be copied as-is; there are no commands or markers available.
2200 <option type='enum' id='HTML_COLORSTYLE' defval='AUTO_LIGHT' depends='GENERATE_HTML'>
2203 The \c HTML_COLORSTYLE tag can be used to specify if the generated HTML output should be rendered with
2204 a dark or light theme.
2207 <value name="LIGHT" desc="always generate light mode output"/>
2208 <value name="DARK" desc="always generate dark mode output"/>
2209 <value name="AUTO_LIGHT" desc="automatically set the mode according to the user preference, use light mode if no preference is set (the default)"/>
2210 <value name="AUTO_DARK" desc="automatically set the mode according to the user preference, use dark mode if no preference is set"/>
2211 <value name="TOGGLE" desc="allow to user to switch between light and dark mode via a button"/>
2213 <option type='int' id='HTML_COLORSTYLE_HUE' minval='0' maxval='359' defval='220' depends='GENERATE_HTML'>
2216 The \c HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
2217 Doxygen will adjust the colors in the style sheet and background images
2218 according to this color. Hue is specified as an angle on a color-wheel,
2219 see https://en.wikipedia.org/wiki/Hue for more information.
2220 For instance the value 0 represents red, 60 is yellow, 120 is green,
2221 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
2225 <option type='int' id='HTML_COLORSTYLE_SAT' minval='0' maxval='255' defval='100' depends='GENERATE_HTML'>
2228 The \c HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
2229 the colors in the HTML output. For a value of 0 the output will use
2230 gray-scales only. A value of 255 will produce the most vivid colors.
2234 <option type='int' id='HTML_COLORSTYLE_GAMMA' minval='40' maxval='240' defval='80' depends='GENERATE_HTML'>
2237 The \c HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
2238 the luminance component of the colors in the HTML output. Values below
2239 100 gradually make the output lighter, whereas values above 100 make
2240 the output darker. The value divided by 100 is the actual gamma applied,
2241 so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
2242 and 100 does not change the gamma.
2246 <option type='bool' id='HTML_DYNAMIC_MENUS' defval='1' depends='GENERATE_HTML'>
2249 If the \c HTML_DYNAMIC_MENUS tag is set to \c YES then the generated HTML
2250 documentation will contain a main index with vertical navigation menus that
2251 are dynamically created via JavaScript. If disabled, the navigation index will consists of
2252 multiple levels of tabs that are statically embedded in every HTML page.
2253 Disable this option to support browsers that do not have JavaScript, like
2254 the Qt help browser.
2258 <option type='bool' id='HTML_DYNAMIC_SECTIONS' defval='0' depends='GENERATE_HTML'>
2261 If the \c HTML_DYNAMIC_SECTIONS tag is set to \c YES then the generated HTML
2262 documentation will contain sections that can be hidden and shown after the
2267 <option type='bool' id='HTML_CODE_FOLDING' defval='1' depends='GENERATE_HTML'>
2270 If the \c HTML_CODE_FOLDING tag is set to \c YES then classes and functions can
2271 be dynamically folded and expanded in the generated HTML source code.
2275 <option type='int' id='HTML_INDEX_NUM_ENTRIES' minval='0' maxval='9999' defval='100' depends='GENERATE_HTML'>
2278 With \c HTML_INDEX_NUM_ENTRIES one can control the preferred number of
2279 entries shown in the various tree structured indices initially; the user
2280 can expand and collapse entries dynamically later on. Doxygen will expand
2281 the tree to such a level that at most the specified number of entries are
2282 visible (unless a fully collapsed tree already exceeds this amount).
2283 So setting the number of entries 1 will produce a full collapsed tree by
2284 default. 0 is a special value representing an infinite number of entries
2285 and will result in a full expanded tree by default.
2289 <option type='bool' id='GENERATE_DOCSET' defval='0' depends='GENERATE_HTML'>
2292 If the \c GENERATE_DOCSET tag is set to \c YES, additional index files
2293 will be generated that can be used as input for
2294 <a href="https://developer.apple.com/xcode/">Apple's Xcode 3
2295 integrated development environment</a>, introduced with OSX 10.5 (Leopard).
2296 To create a documentation set, doxygen will generate a Makefile in the
2297 HTML output directory. Running \c make will produce the docset in that
2298 directory and running <code>make install</code> will install the docset in
2299 <code>~/Library/Developer/Shared/Documentation/DocSets</code>
2300 so that Xcode will find it at startup. See
2301 https://developer.apple.com/library/archive/featuredarticles/DoxygenXcode/_index.html
2302 for more information.
2306 <option type='string' id='DOCSET_FEEDNAME' format='string' defval='Doxygen generated docs' depends='GENERATE_DOCSET'>
2309 This tag determines the name of the docset
2310 feed. A documentation feed provides an umbrella under which multiple
2311 documentation sets from a single provider (such as a company or product suite)
2316 <option type='string' id='DOCSET_FEEDURL' format='string' depends='GENERATE_DOCSET'>
2319 This tag determines the URL of the docset
2320 feed. A documentation feed provides an umbrella under which multiple
2321 documentation sets from a single provider (such as a company or product suite)
2326 <option type='string' id='DOCSET_BUNDLE_ID' format='string' defval='org.doxygen.Project' depends='GENERATE_DOCSET'>
2329 This tag specifies a string that
2330 should uniquely identify the documentation set bundle. This should be a
2331 reverse domain-name style string, e.g. <code>com.mycompany.MyDocSet</code>.
2332 Doxygen will append <code>.docset</code> to the name.
2336 <option type='string' id='DOCSET_PUBLISHER_ID' format='string' defval='org.doxygen.Publisher' depends='GENERATE_DOCSET'>
2339 The \c DOCSET_PUBLISHER_ID
2340 tag specifies a string that should uniquely identify
2341 the documentation publisher. This should be a reverse domain-name style
2342 string, e.g. <code>com.mycompany.MyDocSet.documentation</code>.
2346 <option type='string' id='DOCSET_PUBLISHER_NAME' format='string' defval='Publisher' depends='GENERATE_DOCSET'>
2349 The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
2353 <option type='bool' id='GENERATE_HTMLHELP' defval='0' depends='GENERATE_HTML'>
2356 If the \c GENERATE_HTMLHELP tag is set to \c YES then
2357 doxygen generates three additional HTML index files:
2358 \c index.hhp, \c index.hhc, and \c index.hhk. The \c index.hhp is a
2359 project file that can be read by Microsoft's HTML Help Workshop
2361 In the beginning of 2021 Microsoft took the original page, with a.o. the download links,
2362 offline the HTML help workshop was already many years in maintenance mode).
2363 You can download the HTML help workshop from the web archives at
2364 <a href="http://web.archive.org/web/20160201063255/http://download.microsoft.com/download/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe">Installation executable</a>.
2366 The HTML Help Workshop contains a compiler that can convert all HTML output
2367 generated by doxygen into a single compiled HTML file (`.chm`). Compiled
2368 HTML files are now used as the Windows 98 help format, and will replace
2369 the old Windows help format (`.hlp`) on all Windows platforms in the future.
2370 Compressed HTML files also contain an index, a table of contents,
2371 and you can search for words in the documentation.
2372 The HTML workshop also contains a viewer for compressed HTML files.
2376 <option type='string' id='CHM_FILE' format='file' defval='' depends='GENERATE_HTMLHELP'>
2379 The \c CHM_FILE tag can
2380 be used to specify the file name of the resulting `.chm` file. You
2381 can add a path in front of the file if the result should not be
2382 written to the html output directory.
2386 <option type='string' id='HHC_LOCATION' format='file' defval='' depends='GENERATE_HTMLHELP' abspath='1'>
2389 The \c HHC_LOCATION tag can
2390 be used to specify the location (absolute path including file name) of
2391 the HTML help compiler (\c hhc.exe). If non-empty, doxygen will try to run
2392 the HTML help compiler on the generated \c index.hhp.
2396 <option type='bool' id='GENERATE_CHI' defval='0' depends='GENERATE_HTMLHELP'>
2399 The \c GENERATE_CHI flag
2400 controls if a separate `.chi` index file is generated (\c YES) or that
2401 it should be included in the main `.chm` file (\c NO).
2405 <option type='string' id='CHM_INDEX_ENCODING' format='string' defval='' depends='GENERATE_HTMLHELP'>
2408 The \c CHM_INDEX_ENCODING
2409 is used to encode HtmlHelp index (\c hhk), content (\c hhc) and project file
2414 <option type='bool' id='BINARY_TOC' defval='0' depends='GENERATE_HTMLHELP'>
2417 The \c BINARY_TOC flag
2418 controls whether a binary table of contents is generated (\c YES) or a
2419 normal table of contents (\c NO) in the `.chm` file. Furthermore it enables
2420 the `Previous` and `Next` buttons.
2424 <option type='bool' id='TOC_EXPAND' defval='0' depends='GENERATE_HTMLHELP'>
2427 The \c TOC_EXPAND flag can be set to \c YES to add extra items for
2428 group members to the table of contents of the HTML help documentation
2429 and to the tree view.
2433 <option type='string' id='SITEMAP_URL' format='string' depends='GENERATE_HTML'>
2436 The \c SITEMAP_URL tag is used to specify the full URL of the place where the
2437 generated documentation will be placed on the server by the user during the deployment
2438 of the documentation.
2439 The generated sitemap is called `sitemap.xml` and placed on the directory specified by
2440 \ref cfg_html_output "HTML_OUTPUT". In case no \c SITEMAP_URL is specified no
2441 sitemap is generated.
2442 For information about the sitemap protocol see https://www.sitemaps.org
2446 <option type='bool' id='GENERATE_QHP' defval='0' depends='GENERATE_HTML'>
2449 If the \c GENERATE_QHP tag is set to \c YES and both \ref cfg_qhp_namespace "QHP_NAMESPACE"
2450 and \ref cfg_qhp_virtual_folder "QHP_VIRTUAL_FOLDER" are set, an additional index file will
2451 be generated that can be used as input for Qt's qhelpgenerator
2452 to generate a Qt Compressed Help (`.qch`) of the generated HTML
2457 <option type='string' id='QCH_FILE' format='file' defval='' depends='GENERATE_QHP'>
2460 If the \ref cfg_qhg_location "QHG_LOCATION" tag is specified, the \c QCH_FILE tag can
2461 be used to specify the file name of the resulting `.qch` file.
2462 The path specified is relative to the HTML output folder.
2466 <option type='string' id='QHP_NAMESPACE' format='string' defval='org.doxygen.Project' depends='GENERATE_QHP'>
2469 The \c QHP_NAMESPACE tag specifies the namespace to use when generating
2470 Qt Help Project output. For more information please see
2471 <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace">Qt Help Project / Namespace</a>.
2475 <option type='string' id='QHP_VIRTUAL_FOLDER' format='string' defval='doc' depends='GENERATE_QHP'>
2478 The \c QHP_VIRTUAL_FOLDER tag specifies the namespace to use when
2479 generating Qt Help Project output. For more information please see
2480 <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders">Qt Help Project / Virtual Folders</a>.
2484 <option type='string' id='QHP_CUST_FILTER_NAME' format='string' defval='' depends='GENERATE_QHP'>
2487 If the \c QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom filter to add. For more information please see
2488 <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
2492 <option type='string' id='QHP_CUST_FILTER_ATTRS' format='string' defval='' depends='GENERATE_QHP'>
2495 The \c QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the custom filter to add.
2496 For more information please see
2497 <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
2501 <option type='string' id='QHP_SECT_FILTER_ATTRS' format='string' defval='' depends='GENERATE_QHP'>
2504 The \c QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's filter section matches.
2505 <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
2509 <option type='string' id='QHG_LOCATION' format='file' defval='' depends='GENERATE_QHP'>
2512 The \c QHG_LOCATION tag can
2513 be used to specify the location (absolute path including file name) of
2514 Qt's qhelpgenerator.
2515 If non-empty doxygen will try to run qhelpgenerator on the generated `.qhp` file.
2519 <option type='bool' id='GENERATE_ECLIPSEHELP' defval='0' depends='GENERATE_HTML'>
2522 If the \c GENERATE_ECLIPSEHELP tag is set to \c YES, additional index files
2523 will be generated, together with the HTML files, they form an `Eclipse` help
2526 To install this plugin and make it available under the help contents
2527 menu in `Eclipse`, the contents of the directory containing the HTML and XML
2528 files needs to be copied into the plugins directory of eclipse. The name of
2529 the directory within the plugins directory should be the same as
2530 the \ref cfg_eclipse_doc_id "ECLIPSE_DOC_ID" value.
2532 After copying `Eclipse` needs to be restarted before the help appears.
2536 <option type='string' id='ECLIPSE_DOC_ID' format='string' defval='org.doxygen.Project' depends='GENERATE_ECLIPSEHELP'>
2539 A unique identifier for the `Eclipse` help plugin. When installing the plugin
2540 the directory name containing the HTML and XML files should also have
2541 this name. Each documentation set should have its own identifier.
2545 <option type='bool' id='DISABLE_INDEX' defval='0' depends='GENERATE_HTML'>
2548 If you want full control over the layout of the generated HTML pages it
2549 might be necessary to disable the index and replace it with your own.
2550 The \c DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at
2551 top of each HTML page. A value of \c NO enables the index and the
2552 value \c YES disables it. Since the tabs in the index contain the same
2553 information as the navigation tree, you can set this option to \c YES if
2554 you also set \ref cfg_generate_treeview "GENERATE_TREEVIEW" to \c YES.
2558 <option type='bool' id='GENERATE_TREEVIEW' defval='0' depends='GENERATE_HTML'>
2561 The \c GENERATE_TREEVIEW tag is used to specify whether a tree-like index
2562 structure should be generated to display hierarchical information.
2563 If the tag value is set to \c YES, a side panel will be generated
2564 containing a tree-like index structure (just like the one that
2565 is generated for HTML Help). For this to work a browser that supports
2566 JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
2567 Windows users are probably better off using the HTML help feature.
2569 Via custom style sheets (see \ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET")
2570 one can further fine tune the look of the index (see \ref doxygen_finetune).
2571 As an example, the default style sheet generated by doxygen has an
2572 example that shows how to put an image at the root of the tree instead of
2573 the \ref cfg_project_name "PROJECT_NAME".
2575 Since the tree basically has the same information as the tab index, you could
2576 consider setting \ref cfg_disable_index "DISABLE_INDEX" to \c YES when
2577 enabling this option.
2581 <option type='bool' id='FULL_SIDEBAR' defval='0' depends='GENERATE_HTML'>
2584 When both \ref cfg_generate_treeview "GENERATE_TREEVIEW" and \ref cfg_disable_index "DISABLE_INDEX"
2585 are set to \c YES, then the
2586 \c FULL_SIDEBAR option determines if the side bar is limited to only the
2587 treeview area (value \c NO) or if it should extend to the full height of the
2588 window (value \c YES). Setting this to \c YES gives a layout similar to
2589 https://docs.readthedocs.io with more room for contents,
2590 but less room for the project logo, title, and description.
2592 If either \ref cfg_generate_treeview "GENERATE_TREEVIEW" or \ref cfg_disable_index "DISABLE_INDEX"
2593 is set to \c NO, this option
2598 <option type='int' id='ENUM_VALUES_PER_LINE' minval='0' maxval='20' defval='4' depends='GENERATE_HTML'>
2601 The \c ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
2602 that doxygen will group on one line in the generated HTML documentation.
2603 <br>Note that a value of 0 will completely suppress the enum values from
2604 appearing in the overview section.
2608 <option type='int' id='TREEVIEW_WIDTH' minval='0' maxval='1500' defval='250' depends='GENERATE_HTML'>
2611 If the treeview is enabled (see \ref cfg_generate_treeview "GENERATE_TREEVIEW") then this tag can be
2612 used to set the initial width (in pixels) of the frame in which the tree
2617 <option type='bool' id='EXT_LINKS_IN_WINDOW' defval='0' depends='GENERATE_HTML'>
2620 If the \c EXT_LINKS_IN_WINDOW option is set to \c YES, doxygen will open
2621 links to external symbols imported via tag files in a separate window.
2625 <option type='bool' id='OBFUSCATE_EMAILS' defval='1' depends='GENERATE_HTML'>
2628 If the \c OBFUSCATE_EMAILS tag is set to \c YES, doxygen will
2629 obfuscate email addresses.
2633 <option type='enum' id='HTML_FORMULA_FORMAT' defval='png' depends='GENERATE_HTML'>
2636 If the \c HTML_FORMULA_FORMAT option is set to \c svg, doxygen will use the pdf2svg
2637 tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see https://inkscape.org)
2638 to generate formulas as SVG images instead of
2639 PNGs for the HTML output. These images will generally look nicer at scaled resolutions.
2642 <value name="png" desc="(the default)"/>
2643 <value name="svg" desc="(looks nicer but requires the pdf2svg or inkscape tool)"/>
2645 <option type='int' id='FORMULA_FONTSIZE' minval='8' maxval='50' defval='10' depends='GENERATE_HTML'>
2648 Use this tag to change the font size of \f$\mbox{\LaTeX}\f$ formulas included
2649 as images in the HTML documentation.
2650 When you change the font size after a successful doxygen run you need
2651 to manually remove any `form_*.png` images from the HTML
2652 output directory to force them to be regenerated.
2656 <option type='string' id='FORMULA_MACROFILE' format='file' defval=''>
2659 The \c FORMULA_MACROFILE can contain \f$\mbox{\LaTeX}\f$ `\newcommand` and
2660 `\renewcommand` commands to create new \f$\mbox{\LaTeX}\f$ commands to be used
2661 in formulas as building blocks.
2662 See the section \ref formulas for details.
2666 <option type='bool' id='USE_MATHJAX' defval='0' depends='GENERATE_HTML'>
2669 Enable the \c USE_MATHJAX option to render \f$\mbox{\LaTeX}\f$ formulas using MathJax
2670 (see https://www.mathjax.org) which uses client side JavaScript for the
2671 rendering instead of using pre-rendered bitmaps. Use this if you do not
2672 have \f$\mbox{\LaTeX}\f$ installed or if you want to formulas look prettier in the HTML
2673 output. When enabled you may also need to install MathJax separately and
2674 configure the path to it using the \ref cfg_mathjax_relpath "MATHJAX_RELPATH"
2679 <option type='enum' id='MATHJAX_VERSION' defval='MathJax_2' depends='USE_MATHJAX'>
2682 With \c MATHJAX_VERSION it is possible to specify the MathJax version to be used.
2683 Note that the different versions of MathJax have different requirements with regards to
2684 the different settings, so it is possible that also other MathJax settings have to be changed
2685 when switching between the different MathJax versions.
2688 <value name="MathJax_2"/>
2689 <value name="MathJax_3"/>
2691 <option type='enum' id='MATHJAX_FORMAT' defval='HTML-CSS' depends='USE_MATHJAX'>
2694 When MathJax is enabled you can set the default output format to be used for
2696 For more details about the output format see <a href="http://docs.mathjax.org/en/v2.7-latest/output.html">MathJax version 2</a>
2697 and <a href="http://docs.mathjax.org/en/latest/web/components/output.html">MathJax version 3</a>.
2700 <value name="HTML-CSS" desc="(which is slower, but has the best compatibility. This is the name for Mathjax version 2, for MathJax version 3 this will be translated into \c chtml)"/>
2701 <value name="NativeMML" desc="(i.e. MathML. Only supported for NathJax 2. For MathJax version 3 \c chtml will be used instead.)"/>
2702 <value name="chtml" desc="(This is the name for Mathjax version 3, for MathJax version 2 this will be translated into \c HTML-CSS)"/>
2705 <option type='string' id='MATHJAX_RELPATH' format='string' depends='USE_MATHJAX'>
2708 When MathJax is enabled you need to specify the location relative to the
2709 HTML output directory using the \c MATHJAX_RELPATH option. The destination
2710 directory should contain the `MathJax.js` script. For instance, if the \c mathjax
2711 directory is located at the same level as the HTML output directory, then
2712 \c MATHJAX_RELPATH should be <code>../mathjax</code>. The default value points to
2713 the MathJax Content Delivery Network so you can quickly see the result without
2714 installing MathJax. However, it is strongly recommended to install a local
2715 copy of MathJax from https://www.mathjax.org before deployment.
2717 The default value is:
2718 - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2
2719 - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3
2723 <option type='list' id='MATHJAX_EXTENSIONS' format='string' depends='USE_MATHJAX'>
2726 The \c MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax extension
2727 names that should be enabled during MathJax rendering. For example for MathJax version 2
2728 (see https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions):
2730 MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
2732 For example for MathJax version 3 (see http://docs.mathjax.org/en/latest/input/tex/extensions/index.html):
2734 MATHJAX_EXTENSIONS = ams
2739 <option type='string' id='MATHJAX_CODEFILE' format='string' depends='USE_MATHJAX'>
2742 The \c MATHJAX_CODEFILE tag can be used to specify a file with javascript
2743 pieces of code that will be used on startup of the MathJax code.
2745 <a href="http://docs.mathjax.org/en/v2.7-latest/output.html">the MathJax site</a>
2749 <docs doxywizard='0' doxyfile='0'>
2751 As an example to disable the "Math Renderer" menu item in the "Math
2752 Settings" menu of MathJax:
2754 MATHJAX_CODEFILE = disableRenderer.js
2756 with in the file <code>disableRenderer.js</code>:
2758 MathJax.Hub.Config({
2760 showRenderer: false,
2766 <docs documentation='0'>
2768 For an example see the documentation.
2772 <option type='bool' id='SEARCHENGINE' defval='1' depends='GENERATE_HTML'>
2775 When the \c SEARCHENGINE tag is enabled doxygen will generate a search box
2776 for the HTML output. The underlying search engine uses javascript
2777 and DHTML and should work on any modern browser. Note that when using
2778 HTML help (\ref cfg_generate_htmlhelp "GENERATE_HTMLHELP"),
2779 Qt help (\ref cfg_generate_qhp "GENERATE_QHP"), or docsets
2780 (\ref cfg_generate_docset "GENERATE_DOCSET") there is already a search
2781 function so this one should typically be disabled. For large projects
2782 the javascript based search engine can be slow, then enabling
2783 \ref cfg_server_based_search "SERVER_BASED_SEARCH" may provide a
2786 It is possible to search using the keyboard;
2787 to jump to the search box use <code>\<access key\> + S</code> (what the <code>\<access key\></code> is
2788 depends on the OS and browser, but it is typically <code>\<CTRL\></code>, <code>\<ALT\></code>/<code>\<option\></code>, or both).
2789 Inside the search box use the <code>\<cursor down key\></code> to jump into the search
2790 results window, the results can be navigated using the <code>\<cursor keys\></code>.
2791 Press <code>\<Enter\></code> to select an item or <code>\<escape\></code> to cancel the search. The
2792 filter options can be selected when the cursor is inside the search box
2793 by pressing <code>\<Shift\>+\<cursor down\></code>. Also here use the <code>\<cursor keys\></code> to
2794 select a filter and <code>\<Enter\></code> or <code>\<escape\></code> to activate or cancel the filter option.
2798 <option type='bool' id='SERVER_BASED_SEARCH' defval='0' depends='SEARCHENGINE'>
2801 When the \c SERVER_BASED_SEARCH tag is enabled the search engine will be
2802 implemented using a web server instead of a web client using JavaScript.
2804 There are two flavors of web server based searching depending on the
2805 \ref cfg_external_search "EXTERNAL_SEARCH" setting. When disabled,
2806 doxygen will generate a PHP script for searching and an index file used
2807 by the script. When \ref cfg_external_search "EXTERNAL_SEARCH" is
2808 enabled the indexing and searching needs to be provided by external tools.
2809 See the section \ref extsearch for details.
2813 <option type='bool' id='EXTERNAL_SEARCH' defval='0' depends='SEARCHENGINE'>
2816 When \c EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
2817 script for searching. Instead the search results are written to an XML file
2818 which needs to be processed by an external indexer. Doxygen will invoke an
2819 external search engine pointed to by the
2820 \ref cfg_searchengine_url "SEARCHENGINE_URL" option to obtain
2822 <br>Doxygen ships with an example indexer (\c doxyindexer) and
2823 search engine (<code>doxysearch.cgi</code>) which are based on the open source search
2824 engine library <a href="https://xapian.org/">Xapian</a>.
2825 <br>See the section \ref extsearch for details.
2829 <option type='string' id='SEARCHENGINE_URL' format='string' defval='' depends='SEARCHENGINE'>
2832 The \c SEARCHENGINE_URL should point to a search engine hosted by a web server
2833 which will return the search results when \ref cfg_external_search "EXTERNAL_SEARCH"
2835 <br>Doxygen ships with an example indexer (\c doxyindexer) and
2836 search engine (<code>doxysearch.cgi</code>) which are based on the open source search
2837 engine library <a href="https://xapian.org/">Xapian</a>.
2838 See the section \ref extsearch for details.
2842 <option type='string' id='SEARCHDATA_FILE' format='file' defval='searchdata.xml' depends='SEARCHENGINE'>
2845 When \ref cfg_server_based_search "SERVER_BASED_SEARCH" and
2846 \ref cfg_external_search "EXTERNAL_SEARCH" are both enabled the unindexed
2847 search data is written to a file for indexing by an external tool. With the
2848 \c SEARCHDATA_FILE tag the name of this file can be specified.
2852 <option type='string' id='EXTERNAL_SEARCH_ID' format='string' defval='' depends='SEARCHENGINE'>
2855 When \ref cfg_server_based_search "SERVER_BASED_SEARCH" and
2856 \ref cfg_external_search "EXTERNAL_SEARCH" are both enabled the
2857 \c EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
2858 useful in combination with \ref cfg_extra_search_mappings "EXTRA_SEARCH_MAPPINGS"
2859 to search through multiple projects and redirect the results back to the right project.
2863 <option type='list' id='EXTRA_SEARCH_MAPPINGS' format='string' depends='SEARCHENGINE'>
2866 The \c EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
2867 projects other than the one defined by this configuration file, but that are
2868 all added to the same external search index. Each project needs to have a
2869 unique id set via \ref cfg_external_search_id "EXTERNAL_SEARCH_ID".
2870 The search mapping then maps the id of to a relative location where the
2871 documentation can be found.
2875 EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
2881 <group name='LaTeX' docs='Configuration options related to the LaTeX output'>
2882 <option type='bool' id='GENERATE_LATEX' defval='1'>
2885 If the \c GENERATE_LATEX tag is set to \c YES, doxygen will
2886 generate \f$\mbox{\LaTeX}\f$ output.
2890 <option type='string' id='LATEX_OUTPUT' format='dir' defval='latex' depends='GENERATE_LATEX'>
2893 The \c LATEX_OUTPUT tag is used to specify where the \f$\mbox{\LaTeX}\f$
2895 If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
2900 <option type='string' id='LATEX_CMD_NAME' format='file' defval='' depends='GENERATE_LATEX'>
2903 The \c LATEX_CMD_NAME tag can be used to specify the \f$\mbox{\LaTeX}\f$ command name to be invoked.
2904 <br>Note that when not enabling \ref cfg_use_pdflatex "USE_PDFLATEX" the default is \c latex when
2905 enabling \ref cfg_use_pdflatex "USE_PDFLATEX" the default is \c pdflatex and when in the later case
2906 \c latex is chosen this is overwritten by \c pdflatex. For specific output languages the default can
2907 have been set differently, this depends on the implementation of the output language.
2911 <option type='string' id='MAKEINDEX_CMD_NAME' format='file' defval='makeindex' depends='GENERATE_LATEX'>
2914 The \c MAKEINDEX_CMD_NAME tag can be used to specify the command name to
2915 generate index for \f$\mbox{\LaTeX}\f$.
2917 @note This tag is used in the `Makefile` / `make.bat`.
2918 \sa \ref cfg_latex_makeindex_cmd "LATEX_MAKEINDEX_CMD" for the part in the generated output file (`.tex`).
2922 <option type='string' id='LATEX_MAKEINDEX_CMD' defval='makeindex' depends='GENERATE_LATEX'>
2925 The \c LATEX_MAKEINDEX_CMD tag can be used to specify the command name to
2926 generate index for \f$\mbox{\LaTeX}\f$. In case there is no backslash (`\`) as first character it
2927 will be automatically added in the \f$\mbox{\LaTeX}\f$ code.
2929 @note This tag is used in the generated output file (`.tex`).
2930 \sa \ref cfg_makeindex_cmd_name "MAKEINDEX_CMD_NAME" for the part in the `Makefile` / `make.bat`.
2934 <option type='bool' id='COMPACT_LATEX' defval='0' depends='GENERATE_LATEX'>
2937 If the \c COMPACT_LATEX tag is set to \c YES, doxygen generates more compact
2938 \f$\mbox{\LaTeX}\f$ documents. This may be useful for small projects and may help to
2939 save some trees in general.
2943 <option type='enum' id='PAPER_TYPE' defval='a4' depends='GENERATE_LATEX'>
2946 The \c PAPER_TYPE tag can be used to set the paper type that is used
2950 <value name='a4' desc='(210 x 297 mm)'/>
2951 <value name='letter' desc='(8.5 x 11 inches)'/>
2952 <value name='legal' desc='(8.5 x 14 inches)'/>
2953 <value name='executive' desc='(7.25 x 10.5 inches)'/>
2955 <option type='list' id='EXTRA_PACKAGES' format='string' depends='GENERATE_LATEX'>
2958 The \c EXTRA_PACKAGES tag can be used to specify one or more \f$\mbox{\LaTeX}\f$
2959 package names that should be included in the \f$\mbox{\LaTeX}\f$ output. The package
2960 can be specified just by its name or with the correct syntax as to be used with the
2961 \f$\mbox{\LaTeX}\f$ `\usepackage` command.
2963 To get the `times` font for instance you can specify :
2965 EXTRA_PACKAGES=times
2967 EXTRA_PACKAGES={times}
2969 To use the option `intlimits` with the `amsmath` package you can specify:
2971 EXTRA_PACKAGES=[intlimits]{amsmath}
2973 If left blank no extra packages will be included.
2977 <option type='string' id='LATEX_HEADER' format='file' defval='' depends='GENERATE_LATEX'>
2980 The \c LATEX_HEADER tag can be used to specify a user-defined \f$\mbox{\LaTeX}\f$
2981 header for the generated \f$\mbox{\LaTeX}\f$ document.
2982 The header should contain everything until the first chapter.
2983 If it is left blank doxygen will generate a
2986 It is highly recommended to start with a default header using
2988 doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty
2990 and then modify the file \c new_header.tex.
2992 See also section \ref doxygen_usage for information on how to generate
2993 the default header that doxygen normally uses.
2995 <br>Note: Only use a user-defined header if you know what you are doing!
2997 @note The header is subject to change so you typically
2998 have to regenerate the default header when upgrading to a newer version of
3000 The following commands have a special meaning inside the header (and footer):
3003 <docs doxywizard='0' doxyfile='0'>
3006 <dt><code>$title</code><dd>will be replaced with the project name.
3007 <dt><code>$datetime</code><dd>will be replaced with the current date and time.
3008 <dt><code>$date</code><dd>will be replaced with the current date.
3009 <dt><code>$time</code><dd>will be replaced with the current time.
3010 <dt><code>$year</code><dd>will be replaces with the current year.
3011 <dt><code>$showdate(<format>)</code><dd>will be replaced with the current date
3012 and time according to the format as specified by `<format>`. The
3013 `<format>` follows the rules as specified for the
3014 \ref cmdshowdate "\\showdate" command with the exception that no `)`
3015 is allowed in the `<format>`.
3016 <dt><code>$doxygenversion</code><dd>will be replaced with the version of doxygen
3017 <dt><code>$projectname</code><dd>will be replaced with the name of
3018 the project (see \ref cfg_project_name "PROJECT_NAME")
3019 <dt><code>$projectnumber</code><dd>will be replaced with the project number
3020 (see \ref cfg_project_number "PROJECT_NUMBER")
3021 <dt><code>$projectbrief</code><dd>will be replaced with the project brief
3022 description (see \ref cfg_project_brief "PROJECT_BRIEF")
3023 <dt><code>$projectlogo</code><dd>will be replaced with the project logo
3024 (see \ref cfg_project_logo "PROJECT_LOGO")
3025 <dt><code>$latexdocumentpre</code><dd>will be replaced by an output language dependent setting
3026 e.g. embed the entire document in a special environment (for Chinese, Japanese etc.)
3027 Commonly used together with `$latexdocumentpost` in the footer.
3028 <dt><code>$latexdocumentpost</code><dd>will be replaced by an output language dependent setting
3029 e.g. embed the entire document in a special environment (for Chinese, Japanese etc.)
3030 Commonly used together with `$latexdocumentpre` in the header.
3031 <dt><code>$generatedby</code><dd>will be replaced with the output language dependent
3032 version of the text "Generated by" or when the
3033 \ref cfg_timestamp "TIMESTAMP" is set by the output language
3034 dependent version of the text "Generated on `$datetime` for `$projectname` by".
3035 <dt><code>$latexcitereference</code><dd>will be replaced by the output language dependent$
3036 version of the word "Bibliography".
3037 This setting is typically used in combination with the block name `CITATIONS_PRESENT`.
3038 <dt><code>$latexbibstyle</code><dd>will be replaced with the latex bib style to be used as
3039 set by \ref cfg_latex_bib_style "LATEX_BIB_STYLE", in case nothing is set the bib style
3041 This setting is typically used in combination with the block name `CITATIONS_PRESENT`.
3042 <dt><code>$latexbibfiles</code><dd>will be replaced by the comma separated list of `bib`. files
3043 as set by \ref cfg_cite_bib_files "CITE_BIB_FILES" (when necessary a missing `.bib` is
3044 automatically added).
3045 This setting is typically used in combination with the block name `CITATIONS_PRESENT`.
3046 <dt><code>$papertype</code><dd>will be replaced by the paper type as set in
3047 \ref cfg_paper_type "PAPER_TYPE" and the word "paper" is directly appended to it to have
3048 a correct \f$\mbox{\LaTeX}\f$ paper type.
3049 <dt><code>$langISO</code><dd>will be replaced by the ISO language name.
3050 <dt><code>$languagesupport</code><dd>will be replaced by an output language dependent setting
3051 of packages required for translating terms of the specified language.
3052 <dt><code>$latexfontenc</code><dd>will be replaced by an output language dependent setting
3053 of the fontencoding to be used.
3054 This setting is typically used in combination with the block name `LATEX_FONTENC`.
3055 <dt><code>$latexfont</code><dd>will be replaced by an output language dependent setting
3056 of the fonts to be used.
3057 <dt><code>$latexemojidirectory</code><dd>will be replaced by the directory as set in
3058 \ref cfg_latex_emoji_directory "LATEX_EMOJI_DIRECTORY" with the backslashes replaced by
3059 forward slashes (so usable by \f$\mbox{\LaTeX}\f$). In case the
3060 \ref cfg_latex_emoji_directory "LATEX_EMOJI_DIRECTORY" is
3061 empty, the current directory will be used.
3062 <dt><code>$makeindex</code><dd>will be replaced by the command as set in
3063 \ref cfg_latex_makeindex_cmd "LATEX_MAKEINDEX_CMD". Then the command doesn't start with
3064 a backslash, a backslash is automatically prepended. In case the setting is empty the
3065 command `\makeindex` is used.
3066 <dt><code>$extralatexpackages</code><dd>will be replaced by commands for using the packages set
3067 in \ref cfg_extra_packages "EXTRA_PACKAGES".
3068 <dt><code>$extralatexstylesheet</code><dd>will be replaced by commands for using the packages set
3069 in \ref cfg_latex_extra_stylesheet "LATEX_EXTRA_STYLESHEET" (when the extension is the default
3070 extension, `.sty`, this extension is stripped for the package name).
3071 <dt><code>$latexspecialformulachars</code><dd>will be replaced by the code for some special
3072 unicode characters that are commonly used (i.e. superscript minus, superscript 2 and superscript 3)
3073 <dt><code>$formulamacrofile</code><dd>will be replaced by the name of the file as set
3074 in \ref cfg_formula_macrofile "FORMULA_MACROFILE".
3075 This setting is typically used in combination with the block name `FORMULA_MACROFILE`.
3078 To cope with differences in the layout of the header and footer that depend on
3079 configuration settings, the header and footer can also contain special blocks that
3080 will be copied to the output or skipped depending on the configuration.
3081 Such blocks have the following form:
3084 Some context copied when condition BLOCKNAME holds
3087 Some context copied when condition BLOCKNAME does not hold
3090 The following block names are set based on the used settings in the
3093 <dt><code>COMPACT_LATEX</code><dd>Content within this block is copied to the output
3094 when the \ref cfg_compact_latex "COMPACT_LATEX" option is enabled.
3095 <dt><code>PDF_HYPERLINKS</code><dd>Content within this block is copied to the output
3096 when the \ref cfg_pdf_hyperlinks "PDF_HYPERLINKS" option is enabled.
3097 <dt><code>USE_PDFLATEX</code><dd>Content within this block is copied to the output
3098 when the \ref cfg_use_pdflatex "USE_PDFLATEX" option is enabled.
3099 <dt><code>LATEX_BATCHMODE</code><dd>Content within this block is copied to the output
3100 when the \ref cfg_latex_batchmode "LATEX_BATCHMODE" option is enabled.
3101 <dt><code>TIMESTAMP</code><dd>Content within this block is copied to the output
3102 when the \ref cfg_timestamp "TIMESTAMP" option is enabled.
3104 The following block names are set based on the fact whether or not the tag has a
3105 value in the used configuration file:
3107 <dt><code>LATEX_FONTENC</code><dd>Content within this block is copied to the output
3108 when the doxygen latex translator function returns a value for the font encoding
3109 to be used. It is to be used in combination with the above mentioned `$latexfontenc`.
3110 <dt><code>FORMULA_MACROFILE</code><dd>Content within this block is copied to the output
3111 when the \ref cfg_formula_macrofile "FORMULA_MACROFILE" option is not empty. It is
3112 to be used in combination with the above mentioned `$formulamacrofile`.
3114 The following block name is set based on whether or not a feature is used in the
3117 <dt><code>CITATIONS_PRESENT</code><dd>Content within this block is copied to the output
3118 when in the documentation citations are present and the relevant .. are present.
3119 It is to be used in combination with the above mentioned `$latexcitereference`,
3120 `$latexbibstyle` and `$latexbibfiles`.
3124 <docs documentation='0'>
3126 For a description of the possible markers and block names see the documentation.
3130 <option type='string' id='LATEX_FOOTER' format='file' defval='' depends='GENERATE_LATEX'>
3133 The \c LATEX_FOOTER tag can be used to specify a user-defined \f$\mbox{\LaTeX}\f$ footer for
3134 the generated \f$\mbox{\LaTeX}\f$ document. The footer should contain everything after
3135 the last chapter. If it is left blank doxygen will generate a
3138 See \ref cfg_latex_header "LATEX_HEADER" for more information on
3139 how to generate a default footer and what special commands can be
3140 used inside the footer.
3142 See also section \ref doxygen_usage for information on how to generate
3143 the default footer that doxygen normally uses.
3145 Note: Only use a user-defined footer if you know what you are doing!
3149 <option type='list' id='LATEX_EXTRA_STYLESHEET' format='file' defval='' depends='GENERATE_LATEX'>
3152 The \c LATEX_EXTRA_STYLESHEET tag can be used to specify additional
3153 user-defined \f$\mbox{\LaTeX}\f$ style sheets that are included after the standard
3154 style sheets created by doxygen. Using this option one can overrule
3155 certain style aspects. Doxygen will copy the style sheet files to
3156 the output directory.
3157 \note The order of the extra style sheet files is of importance (e.g. the last
3158 style sheet in the list overrules the setting of the previous ones in the list).
3162 <option type='list' id='LATEX_EXTRA_FILES' format='file' depends='GENERATE_LATEX'>
3165 The \c LATEX_EXTRA_FILES tag can be used to specify one or more extra images
3166 or other source files which should be copied to the \ref cfg_latex_output "LATEX_OUTPUT"
3168 Note that the files will be copied as-is; there are no commands or markers
3173 <option type='bool' id='PDF_HYPERLINKS' defval='1' depends='GENERATE_LATEX'>
3176 If the \c PDF_HYPERLINKS tag is set to \c YES, the \f$\mbox{\LaTeX}\f$ that
3177 is generated is prepared for conversion to PDF (using \c ps2pdf or \c pdflatex).
3179 contain links (just like the HTML output) instead of page references.
3180 This makes the output suitable for online browsing using a PDF viewer.
3184 <option type='bool' id='USE_PDFLATEX' defval='1' depends='GENERATE_LATEX'>
3187 If the \c USE_PDFLATEX tag is set to \c YES, doxygen will use the engine
3188 as specified with \ref cfg_latex_cmd_name "LATEX_CMD_NAME"
3189 to generate the PDF file directly from the \f$\mbox{\LaTeX}\f$
3190 files. Set this option to \c YES, to get a higher quality PDF documentation.
3192 See also section \ref cfg_latex_cmd_name "LATEX_CMD_NAME" for selecting the engine.
3196 <option type='enum' id='LATEX_BATCHMODE' defval='NO' depends='GENERATE_LATEX'>
3199 The \c LATEX_BATCHMODE tag signals the behavior of \f$\mbox{\LaTeX}\f$ in case of an error.
3202 <value name="NO" desc='same as ERROR_STOP' />
3203 <value name="YES" desc='same as BATCH' />
3204 <value name="BATCH" desc='In batch mode nothing is printed on the terminal, errors are scrolled as if \<return\> is hit at every error; missing files that TeX tries to input or request from keyboard input (\\read on a not open input stream) cause the job to abort' />
3205 <value name="NON_STOP" desc='In nonstop mode the diagnostic message will appear on the terminal, but there is no possibility of user interaction just like in batch mode' />
3206 <value name="SCROLL" desc='In scroll mode, TeX will stop only for missing files to input or if keyboard input is necessary' />
3207 <value name="ERROR_STOP" desc='In errorstop mode, TeX will stop at each error, asking for user intervention' />
3209 <option type='bool' id='LATEX_HIDE_INDICES' defval='0' depends='GENERATE_LATEX'>
3212 If the \c LATEX_HIDE_INDICES tag is set to \c YES then doxygen will not
3213 include the index chapters (such as File Index, Compound Index, etc.)
3218 <option type='string' id='LATEX_BIB_STYLE' format='string' defval='plain' depends='GENERATE_LATEX'>
3221 The \c LATEX_BIB_STYLE tag can be used to specify the style to use for the
3222 bibliography, e.g. \c plainnat, or \c ieeetr.
3223 See https://en.wikipedia.org/wiki/BibTeX and \ref cmdcite "\\cite"
3228 <option type='string' id='LATEX_EMOJI_DIRECTORY' format='dir' defval='' depends='GENERATE_LATEX'>
3231 The \c LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)
3232 path from which the emoji images will be read.
3233 If a relative path is entered, it will be relative to the \ref cfg_latex_output "LATEX_OUTPUT"
3234 directory. If left blank the \ref cfg_latex_output "LATEX_OUTPUT" directory will be used.
3239 <group name='RTF' docs='Configuration options related to the RTF output'>
3240 <option type='bool' id='GENERATE_RTF' defval='0'>
3243 If the \c GENERATE_RTF tag is set to \c YES, doxygen will generate RTF output.
3244 The RTF output is optimized for Word 97 and may not look too pretty with
3245 other RTF readers/editors.
3249 <option type='string' id='RTF_OUTPUT' format='dir' defval='rtf' depends='GENERATE_RTF'>
3252 The \c RTF_OUTPUT tag is used to specify where the RTF docs will be put.
3253 If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
3258 <option type='bool' id='COMPACT_RTF' defval='0' depends='GENERATE_RTF'>
3261 If the \c COMPACT_RTF tag is set to \c YES, doxygen generates more compact
3262 RTF documents. This may be useful for small projects and may help to
3263 save some trees in general.
3267 <option type='bool' id='RTF_HYPERLINKS' defval='0' depends='GENERATE_RTF'>
3270 If the \c RTF_HYPERLINKS tag is set to \c YES, the RTF that is generated
3271 will contain hyperlink fields. The RTF file will
3272 contain links (just like the HTML output) instead of page references.
3273 This makes the output suitable for online browsing using Word or some other
3274 Word compatible readers that support those fields.
3276 <br>Note: WordPad (write) and others do not support links.
3280 <option type='string' id='RTF_STYLESHEET_FILE' format='file' defval='' depends='GENERATE_RTF'>
3283 Load stylesheet definitions from file. Syntax is similar to doxygen's
3284 configuration file, i.e. a series of assignments. You only have to provide
3285 replacements, missing definitions are set to their default value.
3287 See also section \ref doxygen_usage for information on how to generate
3288 the default style sheet that doxygen normally uses.
3293 <option type='string' id='RTF_EXTENSIONS_FILE' format='file' defval='' depends='GENERATE_RTF'>
3296 Set optional variables used in the generation of an RTF document.
3297 Syntax is similar to doxygen's configuration file.
3298 A template extensions file can be generated using
3299 <code>doxygen -e rtf extensionFile</code>.
3304 <group name='Man' docs='Configuration options related to the man page output'>
3305 <option type='bool' id='GENERATE_MAN' defval='0'>
3308 If the \c GENERATE_MAN tag is set to \c YES, doxygen will
3309 generate man pages for classes and files.
3313 <option type='string' id='MAN_OUTPUT' format='dir' defval='man' depends='GENERATE_MAN'>
3316 The \c MAN_OUTPUT tag is used to specify where the man pages will be put.
3317 If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
3319 A directory \c man3 will be created inside the directory specified by
3324 <option type='string' id='MAN_EXTENSION' format='string' defval='.3' depends='GENERATE_MAN'>
3327 The \c MAN_EXTENSION tag determines the extension that is added to
3328 the generated man pages. In case
3329 the manual section does not start with a number, the number 3 is prepended.
3330 The dot (.) at the beginning of the \c MAN_EXTENSION tag is optional.
3334 <option type='string' id='MAN_SUBDIR' format='string' defval='' depends='GENERATE_MAN'>
3337 The \c MAN_SUBDIR tag determines the name of the directory created within \c MAN_OUTPUT
3338 in which the man pages are placed. If defaults to man followed by \c MAN_EXTENSION
3339 with the initial . removed.
3343 <option type='bool' id='MAN_LINKS' defval='0' depends='GENERATE_MAN'>
3346 If the \c MAN_LINKS tag is set to \c YES and doxygen generates man output,
3347 then it will generate one additional man file for each entity documented in
3348 the real man page(s). These additional files only source the real man page,
3349 but without them the \c man command would be unable to find the correct page.
3354 <group name='XML' docs='Configuration options related to the XML output'>
3355 <option type='bool' id='GENERATE_XML' defval='0'>
3358 If the \c GENERATE_XML tag is set to \c YES, doxygen will
3359 generate an XML file that captures the structure of
3360 the code including all documentation.
3364 <option type='string' id='XML_OUTPUT' format='dir' defval='xml' depends='GENERATE_XML'>
3367 The \c XML_OUTPUT tag is used to specify where the XML pages will be put.
3368 If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
3373 <option type='bool' id='XML_PROGRAMLISTING' defval='1' depends='GENERATE_XML'>
3376 If the \c XML_PROGRAMLISTING tag is set to \c YES, doxygen will
3377 dump the program listings (including syntax highlighting
3378 and cross-referencing information) to the XML output. Note that
3379 enabling this will significantly increase the size of the XML output.
3383 <option type='bool' id='XML_NS_MEMB_FILE_SCOPE' defval='0' depends='GENERATE_XML'>
3386 If the \c XML_NS_MEMB_FILE_SCOPE tag is set to \c YES, doxygen
3387 will include namespace members in file scope as well, matching the HTML
3393 <group name='Docbook' docs='Configuration options related to the DOCBOOK output'>
3394 <option type='bool' id='GENERATE_DOCBOOK' defval='0'>
3397 If the \c GENERATE_DOCBOOK tag is set to \c YES, doxygen will generate Docbook files
3398 that can be used to generate PDF.
3402 <option type='string' id='DOCBOOK_OUTPUT' format='dir' defval='docbook' depends='GENERATE_DOCBOOK'>
3405 The \c DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
3406 If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be put in
3412 <group name='AutoGen' docs='Configuration options for the AutoGen Definitions output'>
3413 <option type='bool' id='GENERATE_AUTOGEN_DEF' defval='0'>
3416 If the \c GENERATE_AUTOGEN_DEF tag is set to \c YES, doxygen will
3417 generate an AutoGen Definitions (see https://autogen.sourceforge.net/) file
3418 that captures the structure of the code including all
3419 documentation. Note that this feature is still experimental
3420 and incomplete at the moment.
3425 <group name='Sqlite3' docs='Configuration options related to Sqlite3 output'>
3426 <option type='bool' id='GENERATE_SQLITE3' defval='0'>
3429 If the \c GENERATE_SQLITE3 tag is set to \c YES doxygen will generate a
3430 \c Sqlite3 database with symbols found by doxygen stored in tables.
3434 <option type='string' id='SQLITE3_OUTPUT' format='dir' defval='sqlite3' depends='GENERATE_SQLITE3'>
3437 The \c SQLITE3_OUTPUT tag is used to specify where the \c Sqlite3 database will be put.
3438 If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
3443 <option type='bool' id='SQLITE3_RECREATE_DB' defval='1' depends='GENERATE_SQLITE3'>
3446 The \c SQLITE3_OVERWRITE_DB tag is set to \c YES, the existing doxygen_sqlite3.db
3447 database file will be recreated with each doxygen run.
3448 If set to \c NO, doxygen will warn if an a database file is already found and not modify it.
3454 <group name='PerlMod' docs='Configuration options related to the Perl module output'>
3455 <option type='bool' id='GENERATE_PERLMOD' defval='0'>
3458 If the \c GENERATE_PERLMOD tag is set to \c YES, doxygen will
3459 generate a Perl module file that captures the structure of
3460 the code including all documentation.
3462 feature is still experimental and incomplete at the
3467 <option type='bool' id='PERLMOD_LATEX' defval='0' depends='GENERATE_PERLMOD'>
3470 If the \c PERLMOD_LATEX tag is set to \c YES, doxygen will generate
3471 the necessary \c Makefile rules, \c Perl scripts and \f$\mbox{\LaTeX}\f$ code to be able
3472 to generate PDF and DVI output from the Perl module output.
3476 <option type='bool' id='PERLMOD_PRETTY' defval='1' depends='GENERATE_PERLMOD'>
3479 If the \c PERLMOD_PRETTY tag is set to \c YES, the Perl module output will be
3480 nicely formatted so it can be parsed by a human reader. This is useful
3481 if you want to understand what is going on. On the other hand, if this
3482 tag is set to \c NO, the size of the Perl module output will be much smaller
3483 and Perl will parse it just the same.
3487 <option type='string' id='PERLMOD_MAKEVAR_PREFIX' format='string' defval='' depends='GENERATE_PERLMOD'>
3490 The names of the make variables in the generated `doxyrules.make` file
3491 are prefixed with the string contained in \c PERLMOD_MAKEVAR_PREFIX.
3492 This is useful so different `doxyrules.make` files included by the same
3493 `Makefile` don't overwrite each other's variables.
3498 <group name='Preprocessor' docs='Configuration options related to the preprocessor'>
3499 <option type='bool' id='ENABLE_PREPROCESSING' defval='1'>
3502 If the \c ENABLE_PREPROCESSING tag is set to \c YES, doxygen will
3503 evaluate all C-preprocessor directives found in the sources and include
3508 <option type='bool' id='MACRO_EXPANSION' defval='0' depends='ENABLE_PREPROCESSING'>
3511 If the \c MACRO_EXPANSION tag is set to \c YES, doxygen will expand all macro
3512 names in the source code. If set to \c NO, only conditional
3513 compilation will be performed. Macro expansion can be done in a controlled
3514 way by setting \ref cfg_expand_only_predef "EXPAND_ONLY_PREDEF" to \c YES.
3518 <option type='bool' id='EXPAND_ONLY_PREDEF' defval='0' depends='ENABLE_PREPROCESSING'>
3521 If the \c EXPAND_ONLY_PREDEF and \ref cfg_macro_expansion "MACRO_EXPANSION" tags are both set to \c YES
3522 then the macro expansion is limited to the macros specified with the
3523 \ref cfg_predefined "PREDEFINED" and \ref cfg_expand_as_defined "EXPAND_AS_DEFINED" tags.
3527 <option type='bool' id='SEARCH_INCLUDES' defval='1' depends='ENABLE_PREPROCESSING'>
3530 If the \c SEARCH_INCLUDES tag is set to \c YES, the include files
3531 in the \ref cfg_include_path "INCLUDE_PATH" will be searched if a \c \#include is found.
3535 <option type='list' id='INCLUDE_PATH' format='dir' depends='SEARCH_INCLUDES'>
3538 The \c INCLUDE_PATH tag can be used to specify one or more directories that
3539 contain include files that are not input files but should be processed by
3542 Note that the \c INCLUDE_PATH is not recursive, so the setting of \ref cfg_recursive "RECURSIVE"
3547 <option type='list' id='INCLUDE_FILE_PATTERNS' format='string' depends='ENABLE_PREPROCESSING'>
3550 You can use the \c INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
3551 patterns (like `*.h` and `*.hpp`) to filter out the header-files in the
3552 directories. If left blank, the patterns specified with \ref cfg_file_patterns "FILE_PATTERNS" will
3557 <option type='list' id='PREDEFINED' format='string' depends='ENABLE_PREPROCESSING'>
3560 The \c PREDEFINED tag can be used to specify one or more macro names that
3561 are defined before the preprocessor is started (similar to the `-D` option of
3562 e.g. \c gcc). The argument of the tag is a list of macros of the form:
3563 <code>name</code> or <code>name=definition</code> (no spaces).
3564 If the definition and the \c "=" are omitted, \c "=1" is assumed. To prevent
3565 a macro definition from being undefined via \c \#undef or recursively expanded
3566 use the <code>:=</code> operator instead of the \c = operator.
3570 <option type='list' id='EXPAND_AS_DEFINED' format='string' depends='ENABLE_PREPROCESSING'>
3573 If the \ref cfg_macro_expansion "MACRO_EXPANSION" and
3574 \ref cfg_expand_only_predef "EXPAND_ONLY_PREDEF" tags are set to \c YES then
3575 this tag can be used to specify a list of macro names that should be expanded.
3576 The macro definition that is found in the sources will be used.
3577 Use the \ref cfg_predefined "PREDEFINED" tag if you want to use a different macro definition that
3578 overrules the definition found in the source code.
3582 <option type='bool' id='SKIP_FUNCTION_MACROS' defval='1' depends='ENABLE_PREPROCESSING'>
3585 If the \c SKIP_FUNCTION_MACROS tag is set to \c YES then
3586 doxygen's preprocessor will remove all references to function-like macros that are alone
3587 on a line, have an all uppercase name, and do not end with a semicolon.
3588 Such function macros are typically
3589 used for boiler-plate code, and will confuse the parser if not removed.
3594 <group name='External' docs='Configuration options related to external references'>
3595 <option type='list' id='TAGFILES' format='file'>
3598 The \c TAGFILES tag can be used to specify one or more tag files.
3601 tag file the location of the external documentation should be added. The
3602 format of a tag file without this location is as follows:
3604 TAGFILES = file1 file2 ...
3606 Adding location for the tag files is done as follows:
3608 TAGFILES = file1=loc1 "file2 = loc2" ...
3610 where `loc1` and `loc2` can be relative or absolute paths or URLs.
3611 See the section \ref external for more information about the use of tag files.
3614 Each tag file must have a unique name
3615 (where the name does \e NOT include the path).
3616 If a tag file is not located in the directory in which doxygen
3617 is run, you must also specify the path to the tagfile here.
3621 <option type='string' id='GENERATE_TAGFILE' format='file' defval=''>
3624 When a file name is specified after \c GENERATE_TAGFILE, doxygen will create
3625 a tag file that is based on the input files it reads.
3626 See section \ref external for more information about the usage of
3631 <option type='bool' id='ALLEXTERNALS' defval='0'>
3634 If the \c ALLEXTERNALS tag is set to \c YES, all external classes and namespaces
3635 will be listed in the class and namespace index.
3636 If set to \c NO, only the inherited external classes will be listed.
3640 <option type='bool' id='EXTERNAL_GROUPS' defval='1'>
3643 If the \c EXTERNAL_GROUPS tag is set to \c YES, all external groups will be listed
3644 in the topic index. If set to \c NO, only the current project's groups will
3649 <option type='bool' id='EXTERNAL_PAGES' defval='1'>
3652 If the \c EXTERNAL_PAGES tag is set to \c YES, all external pages will be listed
3653 in the related pages index. If set to \c NO, only the current project's
3654 pages will be listed.
3659 <group name='Dot' docs='Configuration options related to diagram generator tools'>
3660 <option type='bool' id='HIDE_UNDOC_RELATIONS' defval='1'>
3663 If set to \c YES the inheritance and collaboration graphs will hide
3664 inheritance and usage relations if the target is undocumented
3669 <option type='bool' id='HAVE_DOT' defval='0'>
3672 If you set the \c HAVE_DOT tag to \c YES then doxygen will assume the \c dot tool is
3673 available from the \c path. This tool is part of
3674 <a href="https://www.graphviz.org/">Graphviz</a>, a graph
3675 visualization toolkit from AT\&T and Lucent Bell Labs. The other options in
3676 this section have no effect if this option is set to \c NO
3680 <option type='int' id='DOT_NUM_THREADS' defval='0' minval='0' maxval='32' depends='HAVE_DOT'>
3683 The \c DOT_NUM_THREADS specifies the number of \c dot invocations doxygen is
3684 allowed to run in parallel. When set to \c 0 doxygen will
3685 base this on the number of processors available in the system. You can set it
3686 explicitly to a value larger than 0 to get control over the balance
3687 between CPU load and processing speed.
3691 <option type='string' id='DOT_COMMON_ATTR' format='string' depends='HAVE_DOT'
3692 defval='fontname=Helvetica,fontsize=10'>
3695 \c DOT_COMMON_ATTR is common attributes for nodes, edges and labels of subgraphs.
3696 When you want a differently looking font in the dot files that doxygen generates
3697 you can specify fontname, fontcolor and fontsize attributes.
3698 For details please see
3699 <a href=https://graphviz.org/doc/info/attrs.html>Node, Edge and Graph Attributes specification</a>
3700 You need to make sure dot is able to find the font,
3701 which can be done by putting it in a standard location
3702 or by setting the \c DOTFONTPATH environment variable or by
3703 setting \ref cfg_dot_fontpath "DOT_FONTPATH" to the
3704 directory containing the font.
3705 Default graphviz fontsize is 14.
3709 <option type='string' id='DOT_EDGE_ATTR' format='string' depends='HAVE_DOT'
3710 defval='labelfontname=Helvetica,labelfontsize=10'>
3713 \c DOT_EDGE_ATTR is concatenated with \ref cfg_dot_common_attr "DOT_COMMON_ATTR".
3714 For elegant style you can add 'arrowhead=open, arrowtail=open, arrowsize=0.5'.
3715 <a href=https://graphviz.org/doc/info/arrows.html>Complete documentation about arrows shapes.</a>
3719 <option type='string' id='DOT_NODE_ATTR' format='string' depends='HAVE_DOT'
3720 defval='shape=box,height=0.2,width=0.4'>
3723 \c DOT_NODE_ATTR is concatenated with \ref cfg_dot_common_attr "DOT_COMMON_ATTR".
3724 For view without boxes around nodes set 'shape=plain' or 'shape=plaintext'
3725 <a href=https://www.graphviz.org/doc/info/shapes.html>Shapes specification</a>
3729 <option type='string' id='DOT_FONTPATH' format='dir' defval='' depends='HAVE_DOT'>
3732 You can set the path where \c dot can find font specified with
3733 fontname in \ref cfg_dot_common_attr "DOT_COMMON_ATTR" and others dot attributes.
3737 <option type='enum' id='CLASS_GRAPH' defval='YES'>
3740 If the \c CLASS_GRAPH tag is set to \c YES or \c GRAPH or \c BUILTIN then doxygen
3741 will generate a graph for each documented class showing the direct and
3742 indirect inheritance relations.
3743 In case the \c CLASS_GRAPH tag is set to \c YES or \c GRAPH and \ref cfg_have_dot "HAVE_DOT" is
3744 enabled as well, then `dot` will be used to draw the graph.
3745 In case the \c CLASS_GRAPH tag is set to \c YES and \ref cfg_have_dot "HAVE_DOT" is disabled
3746 or if the \c CLASS_GRAPH tag is set to \c BUILTIN, then the built-in generator will be used.
3747 If the \c CLASS_GRAPH tag is set to \c TEXT the direct and indirect inheritance relations
3748 will be shown as texts / links.
3751 <value name="NO" bool_representation="NO" />
3752 <value name="YES" bool_representation="YES" />
3753 <value name="TEXT" bool_representation="YES" />
3754 <value name="GRAPH" bool_representation="YES" />
3755 <value name="BUILTIN" bool_representation="YES" />
3757 <option type='bool' id='COLLABORATION_GRAPH' defval='1' depends='HAVE_DOT'>
3760 If the \c COLLABORATION_GRAPH tag is set to \c YES then doxygen
3761 will generate a graph for each documented class showing the direct and
3762 indirect implementation dependencies (inheritance, containment, and
3763 class references variables) of the class with other documented classes.
3764 Explicit enabling a collaboration graph, when \c COLLABORATION_GRAPH is set to \c NO, can be
3765 accomplished by means of the command \ref cmdcollaborationgraph "\\collaborationgraph".
3766 Disabling a collaboration graph can be accomplished by means of the command
3767 \ref cmdhidecollaborationgraph "\\hidecollaborationgraph".
3771 <option type='bool' id='GROUP_GRAPHS' defval='1' depends='HAVE_DOT'>
3774 If the \c GROUP_GRAPHS tag is set to \c YES then doxygen
3775 will generate a graph for groups, showing the direct groups dependencies.
3776 Explicit enabling a group dependency graph, when \c GROUP_GRAPHS is set to \c NO, can be
3777 accomplished by means of the command \ref cmdgroupgraph "\\groupgraph".
3778 Disabling a directory graph can be accomplished by means of the command
3779 \ref cmdhidegroupgraph "\\hidegroupgraph".
3781 See also the chapter \ref grouping "Grouping" in the manual.
3785 <option type='bool' id='UML_LOOK' defval='0' depends='HAVE_DOT'>
3788 If the \c UML_LOOK tag is set to \c YES, doxygen will generate inheritance and
3789 collaboration diagrams in a style similar to the OMG's Unified Modeling
3794 <option type='int' id='UML_LIMIT_NUM_FIELDS' defval='10' minval='0' maxval='100' depends='UML_LOOK'>
3797 If the \ref cfg_uml_look "UML_LOOK" tag is enabled, the fields and methods are shown inside
3798 the class node. If there are many fields or methods and many nodes the
3799 graph may become too big to be useful. The \c UML_LIMIT_NUM_FIELDS
3800 threshold limits the number of items for each type to make the size more
3801 manageable. Set this to 0 for no limit. Note that the threshold may be
3802 exceeded by 50% before the limit is enforced. So when you set the threshold
3803 to 10, up to 15 fields may appear, but if the number exceeds 15, the
3804 total amount of fields shown is limited to 10.
3808 <option type='enum' id='DOT_UML_DETAILS' defval='NO' depends='UML_LOOK'>
3811 If the \c DOT_UML_DETAILS tag is set to \c NO, doxygen will
3812 show attributes and methods without types and arguments in the UML graphs.
3813 If the \c DOT_UML_DETAILS tag is set to \c YES, doxygen will
3814 add type and arguments for attributes and methods in the UML graphs.
3815 If the \c DOT_UML_DETAILS tag is set to \c NONE, doxygen will not generate
3816 fields with class member information in the UML graphs.
3817 The class diagrams will look similar to the default class diagrams but using
3818 UML notation for the relationships.
3822 <value name="YES" />
3823 <value name="NONE" />
3825 <option type='int' id='DOT_WRAP_THRESHOLD' defval='17' minval='0' maxval='1000' depends='HAVE_DOT'>
3828 The \c DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters to display on
3829 a single line. If the actual line length exceeds this threshold significantly it will wrapped
3830 across multiple lines. Some heuristics are apply to avoid ugly line breaks.
3834 <option type='bool' id='TEMPLATE_RELATIONS' defval='0' depends='HAVE_DOT'>
3837 If the \c TEMPLATE_RELATIONS tag is set to \c YES then
3838 the inheritance and collaboration graphs will show the relations between templates and their instances.
3842 <option type='bool' id='INCLUDE_GRAPH' defval='1' depends='HAVE_DOT'>
3845 If the \c INCLUDE_GRAPH, \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" and
3846 \ref cfg_search_includes "SEARCH_INCLUDES"
3847 tags are set to \c YES then doxygen will generate a graph for each documented file
3848 showing the direct and indirect include dependencies of the file with other
3850 Explicit enabling an include graph, when \c INCLUDE_GRAPH is is set to \c NO, can be
3851 accomplished by means of the command \ref cmdincludegraph "\\includegraph".
3852 Disabling an include graph can be accomplished by means of the command
3853 \ref cmdhideincludegraph "\\hideincludegraph".
3857 <option type='bool' id='INCLUDED_BY_GRAPH' defval='1' depends='HAVE_DOT'>
3860 If the \c INCLUDED_BY_GRAPH, \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" and
3861 \ref cfg_search_includes "SEARCH_INCLUDES"
3862 tags are set to \c YES then doxygen will generate a graph for each documented file
3863 showing the direct and indirect include dependencies of the file with other
3865 Explicit enabling an included by graph, when \c INCLUDED_BY_GRAPH is set to \c NO, can be
3866 accomplished by means of the command \ref cmdincludedbygraph "\\includedbygraph".
3867 Disabling an included by graph can be accomplished by means of the command
3868 \ref cmdhideincludedbygraph "\\hideincludedbygraph".
3872 <option type='bool' id='CALL_GRAPH' defval='0' depends='HAVE_DOT'>
3875 If the \c CALL_GRAPH tag is set to \c YES then doxygen will
3876 generate a call dependency graph for every global function or class method.
3877 <br>Note that enabling this option will significantly increase the time of a run.
3878 So in most cases it will be better to enable call graphs for selected
3879 functions only using the \ref cmdcallgraph "\\callgraph" command.
3880 Disabling a call graph can be accomplished by means of the command
3881 \ref cmdhidecallgraph "\\hidecallgraph".
3885 <option type='bool' id='CALLER_GRAPH' defval='0' depends='HAVE_DOT'>
3888 If the \c CALLER_GRAPH tag is set to \c YES then doxygen will
3889 generate a caller dependency graph for every global function or class method.
3890 <br>Note that enabling this option will significantly increase the time of a run.
3891 So in most cases it will be better to enable caller graphs for selected
3892 functions only using the \ref cmdcallergraph "\\callergraph" command.
3893 Disabling a caller graph can be accomplished by means of the command
3894 \ref cmdhidecallergraph "\\hidecallergraph".
3898 <option type='bool' id='GRAPHICAL_HIERARCHY' defval='1' depends='HAVE_DOT'>
3901 If the \c GRAPHICAL_HIERARCHY tag is set to \c YES then
3902 doxygen will graphical hierarchy of all classes instead of a textual one.
3906 <option type='bool' id='DIRECTORY_GRAPH' defval='1' depends='HAVE_DOT'>
3909 If the \c DIRECTORY_GRAPH tag is set
3910 to \c YES then doxygen will show the dependencies a directory has on other directories
3911 in a graphical way. The dependency relations are determined by the \c \#include
3912 relations between the files in the directories.
3913 Explicit enabling a directory graph, when \c DIRECTORY_GRAPH is set to \c NO, can be
3914 accomplished by means of the command \ref cmddirectorygraph "\\directorygraph".
3915 Disabling a directory graph can be accomplished by means of the command
3916 \ref cmdhidedirectorygraph "\\hidedirectorygraph".
3921 <option type='int' id='DIR_GRAPH_MAX_DEPTH' minval='1' maxval='25' defval='1' depends='DIRECTORY_GRAPH'>
3924 The \c DIR_GRAPH_MAX_DEPTH tag can be used to limit the maximum number of
3925 levels of child directories generated in directory dependency graphs by \c dot.
3929 <option type='enum' id='DOT_IMAGE_FORMAT' defval='png' depends='HAVE_DOT'>
3932 The \c DOT_IMAGE_FORMAT tag can be used to set the image format of the images
3933 generated by \c dot. For an explanation of the image formats see the section output formats
3934 in the documentation of the \c dot tool
3935 (<a href="https://www.graphviz.org/">Graphviz</a>).
3936 \note If you choose \c svg you need to set
3937 \ref cfg_html_file_extension "HTML_FILE_EXTENSION" to \c xhtml in order to make the SVG files
3938 visible in IE 9+ (other browsers do not have this requirement).
3945 <value name='png:gd'/>
3946 <value name='png:gd:gd'/>
3947 <value name='png:cairo'/>
3948 <value name='png:cairo:gd'/>
3949 <value name='png:cairo:cairo'/>
3950 <value name='png:cairo:gdiplus'/>
3951 <value name='png:gdiplus'/>
3952 <value name='png:gdiplus:gdiplus'/>
3954 <option type='bool' id='INTERACTIVE_SVG' defval='0' depends='HAVE_DOT'>
3957 If \ref cfg_dot_image_format "DOT_IMAGE_FORMAT" is set to \c svg, then this option can be set to \c YES to
3958 enable generation of interactive SVG images that allow zooming and panning.
3959 <br>Note that this requires a modern browser other than Internet Explorer.
3960 Tested and working are Firefox, Chrome, Safari, and Opera.
3961 \note For IE 9+ you need to set \ref cfg_html_file_extension "HTML_FILE_EXTENSION" to \c xhtml in order
3962 to make the SVG files visible. Older versions of IE do not have SVG support.
3966 <option type='string' id='DOT_PATH' format='filedir' defval='' depends='HAVE_DOT'>
3969 The \c DOT_PATH tag can be used to specify the path where the \c dot tool can be found.
3970 If left blank, it is assumed the \c dot tool can be found in the \c path.
3974 <option type='list' id='DOTFILE_DIRS' format='dir' depends='HAVE_DOT'>
3977 The \c DOTFILE_DIRS tag can be used to specify one or more directories that
3978 contain dot files that are included in the documentation (see the
3979 \ref cmddotfile "\\dotfile" command).
3983 <option type='string' id='DIA_PATH' format='dir' defval=''>
3986 You can include diagrams made with dia in doxygen documentation. Doxygen will then run
3987 dia to produce the diagram and insert it in the documentation. The DIA_PATH tag allows
3988 you to specify the directory where the dia binary resides. If left empty dia is assumed
3989 to be found in the default search path.
3993 <option type='list' id='DIAFILE_DIRS' format='dir'>
3996 The \c DIAFILE_DIRS tag can be used to specify one or more directories that
3997 contain dia files that are included in the documentation (see the
3998 \ref cmddiafile "\\diafile" command).
4002 <option type='string' id='PLANTUML_JAR_PATH' format='filedir' defval=''>
4005 When using plantuml, the \c PLANTUML_JAR_PATH tag should be used to specify the path where
4006 java can find the \c plantuml.jar file or to the filename of \c jar file to be used.
4007 If left blank, it is assumed PlantUML is not used or
4008 called during a preprocessing step. Doxygen will generate a warning when it encounters a
4009 \ref cmdstartuml "\\startuml" command in this case and will not generate output for the diagram.
4013 <option type='string' id='PLANTUML_CFG_FILE' format='file' defval=''>
4016 When using plantuml, the \c PLANTUML_CFG_FILE tag can be used to specify a configuration
4021 <option type='list' id='PLANTUML_INCLUDE_PATH' format='dir' defval=''>
4024 When using plantuml, the specified paths are searched for files specified by the \c !include
4025 statement in a plantuml block.
4029 <option type='int' id='DOT_GRAPH_MAX_NODES' minval='0' maxval='10000' defval='50' depends='HAVE_DOT'>
4032 The \c DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
4033 nodes that will be shown in the graph. If the number of nodes in a graph
4034 becomes larger than this value, doxygen will truncate the graph, which is
4035 visualized by representing a node as a red box. Note that doxygen if the number
4036 of direct children of the root node in a graph is already larger than
4037 \c DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
4038 that the size of a graph can be further restricted by \ref cfg_max_dot_graph_depth "MAX_DOT_GRAPH_DEPTH".
4042 <option type='int' id='MAX_DOT_GRAPH_DEPTH' minval='0' maxval='1000' defval='0' depends='HAVE_DOT'>
4045 The \c MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
4046 graphs generated by \c dot. A depth value of 3 means that only nodes reachable
4047 from the root by following a path via at most 3 edges will be shown. Nodes
4048 that lay further from the root node will be omitted. Note that setting this
4049 option to 1 or 2 may greatly reduce the computation time needed for large
4050 code bases. Also note that the size of a graph can be further restricted by
4051 \ref cfg_dot_graph_max_nodes "DOT_GRAPH_MAX_NODES". Using a depth of 0 means no depth restriction.
4055 <option type='bool' id='DOT_MULTI_TARGETS' defval='0' depends='HAVE_DOT'>
4058 Set the \c DOT_MULTI_TARGETS tag to \c YES to allow dot to generate multiple output
4059 files in one run (i.e. multiple -o and -T options on the command line). This
4060 makes \c dot run faster, but since only newer versions of \c dot (>1.8.10)
4061 support this, this feature is disabled by default.
4065 <option type='bool' id='GENERATE_LEGEND' defval='1' depends='HAVE_DOT'>
4068 If the \c GENERATE_LEGEND tag is set to \c YES doxygen will
4069 generate a legend page explaining the meaning of the various boxes and
4070 arrows in the dot generated graphs.
4071 \note This tag requires that \ref cfg_uml_look "UML_LOOK" isn't set, i.e. the
4072 doxygen internal graphical representation for inheritance and collaboration diagrams
4077 <option type='bool' id='DOT_CLEANUP' defval='1'>
4080 If the \c DOT_CLEANUP tag is set to \c YES, doxygen will
4081 remove the intermediate files that are used to generate the various graphs.
4083 This setting is not only used for dot files but also for msc temporary files.
4087 <option type='string' id='MSCGEN_TOOL' format='file' defval=''>
4090 You can define message sequence charts within doxygen comments using the \ref cmdmsc "\\msc"
4091 command. If the \c MSCGEN_TOOL tag is left empty (the default), then doxygen will use a built-in
4092 version of mscgen tool to produce the charts.
4093 Alternatively, the \c MSCGEN_TOOL tag can also specify the name an external tool.
4094 For instance, specifying `prog` as the value, doxygen will call the tool
4095 as `prog -T <outfile_format> -o <outputfile> <inputfile>`. The external tool
4096 should support output file formats "png", "eps", "svg", and "ismap".
4100 <option type='list' id='MSCFILE_DIRS' format='dir'>
4103 The \c MSCFILE_DIRS tag can be used to specify one or more directories that
4104 contain msc files that are included in the documentation (see the
4105 \ref cmdmscfile "\\mscfile" command).
4109 <option type='obsolete' orgtype='bool' id='USE_WINDOWS_ENCODING'/>
4110 <option type='obsolete' orgtype='bool' id='DETAILS_AT_TOP'/>
4111 <option type='obsolete' orgtype='string' id='QTHELP_FILE'/>
4112 <option type='obsolete' orgtype='string' id='QTHELP_CONFIG'/>
4113 <option type='obsolete' orgtype='string' id='DOXYGEN2QTHELP_LOC'/>
4114 <option type='obsolete' orgtype='int' id='MAX_DOT_GRAPH_WIDTH'/>
4115 <option type='obsolete' orgtype='int' id='MAX_DOT_GRAPH_HEIGHT'/>
4116 <option type='obsolete' orgtype='string' id='CGI_NAME'/>
4117 <option type='obsolete' orgtype='string' id='CGI_URL'/>
4118 <option type='obsolete' orgtype='string' id='DOC_URL'/>
4119 <option type='obsolete' orgtype='string' id='DOC_ABSPATH'/>
4120 <option type='obsolete' orgtype='string' id='BIN_ABSPATH'/>
4121 <option type='obsolete' orgtype='list' id='EXT_DOC_PATHS'/>
4122 <option type='obsolete' orgtype='bool' id='USE_INLINE_TREES'/>
4123 <option type='obsolete' orgtype='bool' id='SHOW_DIRECTORIES'/>
4124 <option type='obsolete' orgtype='bool' id='HTML_ALIGN_MEMBERS'/>
4125 <option type='obsolete' orgtype='int' id='SYMBOL_CACHE_SIZE'/>
4126 <option type='obsolete' orgtype='string' id='XML_SCHEMA'/>
4127 <option type='obsolete' orgtype='string' id='XML_DTD'/>
4128 <option type='obsolete' orgtype='string' id='PERL_PATH'/>
4129 <option type='obsolete' orgtype='string' id='MSCGEN_PATH'/>
4130 <option type='obsolete' orgtype='list' id='TCL_SUBST'/>
4131 <option type='obsolete' orgtype='int' id='COLS_IN_ALPHA_INDEX'/>
4132 <option type='obsolete' orgtype='enum' id='OUTPUT_TEXT_DIRECTION'/>
4133 <option type='obsolete' orgtype='bool' id='DOCBOOK_PROGRAMLISTING'/>
4134 <option type='obsolete' orgtype='bool' id='RTF_SOURCE_CODE'/>
4135 <option type='obsolete' orgtype='bool' id='LATEX_SOURCE_CODE'/>
4136 <option type='obsolete' orgtype='bool' id='CLASS_DIAGRAMS'/>
4137 <option type='obsolete' orgtype='int' id='DOT_FONTSIZE'/>
4138 <option type='obsolete' orgtype='string' id='DOT_FONTNAME'/>
4139 <option type='obsolete' orgtype='bool' id='FORMULA_TRANSPARENT'/>
4140 <option type='obsolete' orgtype='bool' id='DOT_TRANSPARENT'/>
4141 <option type='obsolete' orgtype='bool' id='HTML_TIMESTAMP'/>
4142 <option type='obsolete' orgtype='bool' id='LATEX_TIMESTAMP'/>
4145 <message name='minmaxdef'><![CDATA[<br/> Minimum value: {0}, maximum value: {1}, default value: {2}.]]></message>
4146 <message name='minmaxdefcode'><![CDATA[ Minimum value: <code>{0}</code>, maximum value: <code>{1}</code>, default value: <code>{2}</code>.]]></message>
4147 <message name='possible'><![CDATA[Possible values are: ]]></message>
4148 <message name='defvaltxt'><![CDATA[The default value is: {0}.]]></message>
4149 <message name='defvalcode'><![CDATA[The default value is: <code>{0}</code>.]]></message>
4150 <message name='sysdep'><![CDATA[system dependent]]></message>
4151 <message name='defdir'><![CDATA[The default directory is: <code>{0}</code>.]]></message>
4152 <message name='deffile'><![CDATA[The default file is: <code>{0}</code>.]]></message>
4153 <message name='deffileabs'><![CDATA[The default file (with absolute path) is <code>{0}</code>]]></message>
4154 <message name='deffilefull'><![CDATA[The file has to be specified with full path.]]></message>
4155 <message name='defimg'><![CDATA[The default image is: <code>{0}</code>.]]></message>
4156 <message name='defimgabs'><![CDATA[The default image (with absolute path) is <code>{0}</code>]]></message>
4157 <message name='defimgfull'><![CDATA[The image has to be specified with full path.]]></message>
4158 <message name='depstxt'><![CDATA[This tag requires that the tag \ref cfg_{0} "{1}" is set to \c YES.]]></message>
4159 <message name='andtxt'><![CDATA[ and ]]></message>