296a62e8cb98735d1f028f8b021bc95e37ce004d
[platform/upstream/doxygen.git] / src / config.xml
1 <doxygenconfig>
2   <header>
3     <docs doxywizard='0' doxyfile='0'>
4       <![CDATA[
5 /*
6  *
7  *
8  *
9  * Copyright (C) 1997-2015 by Dimitri van Heesch.
10  *
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.
16  *
17  * Documents produced by Doxygen are derivative works derived from the
18  * input used in their production; they are not affected by this license.
19  *
20  */
21 /*! \page config Configuration
22
23 \tableofcontents
24 \section config_format Format
25
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.
38
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>&quot;...&quot;</code>).
47 Multiple lines can be concatenated by inserting a backslash (\c \\)
48 as the last character of a line.
49
50 Environment variables can be expanded using the pattern <code>\$(ENV_VARIABLE_NAME)</code>.
51 A small example:
52 \verbatim
53 DOT_PATH      = $(YOUR_DOT_PATH)
54 \endverbatim
55
56 You can also include part of a configuration file from another configuration
57 file using a <code>\@INCLUDE</code> tag as follows:
58 \verbatim
59 @INCLUDE = config_file_name
60 \endverbatim
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.:
65 \verbatim
66 @INCLUDE_PATH = my_config_dir
67 \endverbatim
68
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.
72 ]]>
73     </docs>
74     <docs doxywizard='0' documentation='0'>
75       <![CDATA[
76 This file describes the settings to be used by the documentation system
77 doxygen (www.doxygen.org) for a project.
78 <br>
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.
82 The format is:
83 \verbatim
84       TAG = value [value, ...]
85 \endverbatim
86 For lists, items can also be appended using:
87 \verbatim
88       TAG += value [value, ...]
89 \endverbatim
90 Values that contain spaces should be placed between quotes (\" \").
91 <br>
92 Note:<br>
93 Use doxygen to compare the used configuration file with the template configuration file:
94 \verbatim
95       doxygen -x [configFile]
96 \endverbatim
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:
99 \verbatim
100       doxygen -x_noenv [configFile]
101 \endverbatim
102 ]]>
103     </docs>
104   </header>
105   <footer>
106     <docs doxywizard='0' doxyfile='0'>
107       <![CDATA[
108 \section config_examples Examples
109
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:
113 \verbatim
114 INPUT            = example.cc example.h
115 \endverbatim
116
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:
119 \verbatim
120 PROJECT_NAME     = Example
121 INPUT            = example.cc example.h
122 WARNINGS         = YES
123 TAGFILES         = qt.tag
124 SEARCHENGINE     = NO
125 \endverbatim
126
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:
130 \verbatim
131 PROJECT_NAME     = QdbtTabular
132 OUTPUT_DIRECTORY = html
133 WARNINGS         = YES
134 INPUT            = examples/examples.doc src
135 FILE_PATTERNS    = *.cc *.h
136 INCLUDE_PATH     = examples
137 TAGFILES         = qt.tag
138 SEARCHENGINE     = YES
139 \endverbatim
140
141 To regenerate the Qt-1.44 documentation from the sources, you could use the
142 following configuration file:
143 \verbatim
144 PROJECT_NAME         = Qt
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= \
155                        QArrayT:=QArray \
156                        QListT:=QList \
157                        QDictT:=QDict \
158                        QQueueT:=QQueue \
159                        QVectorT:=QVector \
160                        QPtrDictT:=QPtrDict \
161                        QIntDictT:=QIntDict \
162                        QStackT:=QStack \
163                        QDictIteratorT:=QDictIterator \
164                        QListIteratorT:=QListIterator \
165                        QCacheT:=QCache \
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 \
175                        $(QTDIR)/src/tools
176 FILE_PATTERNS        = *.cpp *.h q*.doc
177 INCLUDE_PATH         = $(QTDIR)/include
178 RECURSIVE            = YES
179 \endverbatim
180
181 For the Qt-2.1 sources I recommend to use the following settings:
182 \verbatim
183 PROJECT_NAME          = Qt
184 PROJECT_NUMBER        = 2.1
185 HIDE_UNDOC_MEMBERS    = YES
186 HIDE_UNDOC_CLASSES    = YES
187 SOURCE_BROWSER        = YES
188 INPUT                 = $(QTDIR)/src
189 FILE_PATTERNS         = *.cpp *.h q*.doc
190 RECURSIVE             = YES
191 EXCLUDE_PATTERNS      = *codec.cpp moc_* */compat/* */3rdparty/*
192 ALPHABETICAL_INDEX    = YES
193 IGNORE_PREFIX         = Q
194 ENABLE_PREPROCESSING  = YES
195 MACRO_EXPANSION       = YES
196 INCLUDE_PATH          = $(QTDIR)/include
197 PREDEFINED            = Q_PROPERTY(x)= \
198                         Q_OVERRIDE(x)= \
199                         Q_EXPORT= \
200                         Q_ENUMS(x)= \
201                         "QT_STATIC_CONST=static const " \
202                         _WS_X11_ \
203                         INCLUDE_MENUITEM_DEF
204 EXPAND_ONLY_PREDEF    = YES
205 EXPAND_AS_DEFINED     = Q_OBJECT_FAKE Q_OBJECT ACTIVATE_SIGNAL_WITH_PARAM \
206                         Q_VARIANT_AS
207 \endverbatim
208
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.
212
213
214 \htmlonly
215 Go to the <a href="commands.html">next</a> section or return to the
216  <a href="index.html">index</a>.
217 \endhtmlonly
218
219 */
220 ]]>
221     </docs>
222   </footer>
223
224   <group name='Project' docs='Project related configuration options'>
225     <option type='string' id='DOXYFILE_ENCODING' format='string' defval='UTF-8'>
226       <docs>
227 <![CDATA[
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
232  possible encodings.
233 ]]>
234       </docs>
235     </option>
236     <option type='string' id='PROJECT_NAME' format='string' defval='My Project'>
237       <docs>
238 <![CDATA[
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.
243 ]]>
244       </docs>
245     </option>
246     <option type='string' id='PROJECT_NUMBER' format='string' defval=''>
247       <docs>
248 <![CDATA[
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.
252 ]]>
253       </docs>
254     </option>
255     <option type='string' id='PROJECT_BRIEF' format='string' defval=''>
256       <docs>
257 <![CDATA[
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.
261 ]]>
262       </docs>
263     </option>
264
265     <option type='string' id='PROJECT_LOGO' format='image' defval=''>
266       <docs>
267 <![CDATA[
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.
272 ]]>
273       </docs>
274     </option>
275     <option type='string' id='OUTPUT_DIRECTORY' format='dir' defval=''>
276       <docs>
277 <![CDATA[
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.
282 ]]>
283       </docs>
284     </option>
285     <option type='bool' id='CREATE_SUBDIRS' defval='0'>
286       <docs>
287 <![CDATA[
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.
295 ]]>
296       </docs>
297     </option>
298     <option type='int' id='CREATE_SUBDIRS_LEVEL' minval='0' maxval='8' defval='8'
299             depends='CREATE_SUBDIRS'>
300       <docs>
301 <![CDATA[
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 numer of 16 directories.
307 ]]>
308       </docs>
309     </option>
310     <option type='bool' id='ALLOW_UNICODE_NAMES' defval='0'>
311       <docs>
312 <![CDATA[
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.
317 ]]>
318       </docs>
319     </option>
320     <option type='enum' id='OUTPUT_LANGUAGE' defval='English'>
321       <docs>
322 <![CDATA[
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.
326 ]]>
327       </docs>
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'/>
373     </option>
374     <option type='bool' id='BRIEF_MEMBER_DESC' defval='1'>
375       <docs>
376 <![CDATA[
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.
381 ]]>
382       </docs>
383     </option>
384     <option type='bool' id='REPEAT_BRIEF' defval='1'>
385       <docs>
386 <![CDATA[
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
389  description
390  <br>Note:
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.
394 ]]>
395       </docs>
396     </option>
397     <option type='list' id='ABBREVIATE_BRIEF' format='string'>
398       <docs>
399 <![CDATA[
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
406  name of the entity):
407 ]]>
408       </docs>
409       <value name='The $name class'/>
410       <value name='The $name widget'/>
411       <value name='The $name file'/>
412       <value name='is'/>
413       <value name='provides'/>
414       <value name='specifies'/>
415       <value name='contains'/>
416       <value name='represents'/>
417       <value name='a'/>
418       <value name='an'/>
419       <value name='the'/>
420     </option>
421     <option type='bool' id='ALWAYS_DETAILED_SEC' defval='0'>
422       <docs>
423 <![CDATA[
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
427  description.
428 ]]>
429       </docs>
430     </option>
431     <option type='bool' id='INLINE_INHERITED_MEMB' defval='0'>
432       <docs>
433 <![CDATA[
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.
438 ]]>
439       </docs>
440     </option>
441     <option type='bool' id='FULL_PATH_NAMES' defval='1'>
442       <docs>
443 <![CDATA[
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
447 ]]>
448       </docs>
449     </option>
450     <option type='list' id='STRIP_FROM_PATH' format='dir' depends='FULL_PATH_NAMES'>
451       <docs>
452 <![CDATA[
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
458  path to strip.
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
461  started.
462 ]]>
463       </docs>
464     </option>
465     <option type='list' id='STRIP_FROM_INC_PATH' format='dir'>
466       <docs>
467 <![CDATA[
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.
474 ]]>
475       </docs>
476     </option>
477     <option type='bool' id='SHORT_NAMES' defval='0'>
478       <docs>
479 <![CDATA[
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.
483 ]]>
484       </docs>
485     </option>
486     <option type='bool' id='JAVADOC_AUTOBRIEF' defval='0'>
487       <docs>
488 <![CDATA[
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.)
494 ]]>
495       </docs>
496     </option>
497     <option type='bool' id='JAVADOC_BANNER' defval='0'>
498       <docs>
499 <![CDATA[
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.
505 ]]>
506       </docs>
507     </option>
508     <option type='bool' id='QT_AUTOBRIEF' defval='0'>
509       <docs>
510 <![CDATA[
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.)
516 ]]>
517       </docs>
518     </option>
519     <option type='bool' id='MULTILINE_CPP_IS_BRIEF' defval='0'>
520       <docs>
521 <![CDATA[
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.
529 ]]>
530       </docs>
531     </option>
532     <option type='bool' id='PYTHON_DOCSTRING' defval='1'>
533       <docs>
534 <![CDATA[
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.
539 ]]>
540       </docs>
541     </option>
542     <option type='bool' id='INHERIT_DOCS' defval='1'>
543       <docs>
544 <![CDATA[
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
547  re-implements.
548 ]]>
549       </docs>
550     </option>
551     <option type='bool' id='SEPARATE_MEMBER_PAGES' defval='0'>
552       <docs>
553 <![CDATA[
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.
557 ]]>
558       </docs>
559     </option>
560     <option type='int' id='TAB_SIZE' minval='1' maxval='16' defval='4'>
561       <docs>
562 <![CDATA[
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.
565 ]]>
566       </docs>
567     </option>
568     <option type='list' id='ALIASES' format='string'>
569       <docs>
570 <![CDATA[
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:
573 \verbatim
574  name=value
575 \endverbatim
576  For example adding
577 \verbatim
578  "sideeffect=@par Side Effects:^^"
579 \endverbatim
580  will allow you to
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.
587 ]]>
588       </docs>
589       <docs doxyfile='0' documentation='0'>
590 <![CDATA[
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 \\\\})
595 ]]>
596       </docs>
597       <docs doxywizard='0' documentation='0'>
598 <![CDATA[
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 \\\\})
603 ]]>
604       </docs>
605       <docs doxyfile='0' doxywizard='0'>
606 <![CDATA[
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 \\\\})
611 ]]>
612       </docs>
613     </option>
614     <option type='bool' id='OPTIMIZE_OUTPUT_FOR_C' defval='0'>
615       <docs>
616 <![CDATA[
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.
621 ]]>
622       </docs>
623     </option>
624     <option type='bool' id='OPTIMIZE_OUTPUT_JAVA' defval='0'>
625       <docs>
626 <![CDATA[
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.
631 ]]>
632       </docs>
633     </option>
634     <option type='bool' id='OPTIMIZE_FOR_FORTRAN' defval='0'>
635       <docs>
636 <![CDATA[
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.
639 ]]>
640       </docs>
641     </option>
642     <option type='bool' id='OPTIMIZE_OUTPUT_VHDL' defval='0'>
643       <docs>
644 <![CDATA[
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.
647 ]]>
648       </docs>
649     </option>
650     <option type='bool' id='OPTIMIZE_OUTPUT_SLICE' defval='0'>
651       <docs>
652 <![CDATA[
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.
657 ]]>
658       </docs>
659     </option>
660     <option type='list' id='EXTENSION_MAPPING' format='string'>
661       <docs>
662 <![CDATA[
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).
672
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`.
676
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".
682 ]]>
683       </docs>
684     </option>
685     <option type='bool' id='MARKDOWN_SUPPORT' defval='1'>
686       <docs>
687 <![CDATA[
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.
694 ]]>
695       </docs>
696     </option>
697     <option type='int' id='TOC_INCLUDE_HEADINGS' minval='0' maxval='99' defval='5' depends='MARKDOWN_SUPPORT'>
698       <docs>
699 <![CDATA[
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.
704 ]]>
705       </docs>
706     </option>
707     <option type='bool' id='AUTOLINK_SUPPORT' defval='1'>
708       <docs>
709 <![CDATA[
710  When enabled doxygen tries to link words that correspond to documented classes,
711  or namespaces to their corresponding documentation. Such a link can be
712  prevented in individual cases by putting a \c % sign in front of the word or
713  globally by setting \c AUTOLINK_SUPPORT to \c NO.
714 ]]>
715       </docs>
716     </option>
717     <option type='bool' id='BUILTIN_STL_SUPPORT' defval='0'>
718       <docs>
719 <![CDATA[
720  If you use STL classes (i.e. `std::string`, `std::vector`, etc.) but do not want to
721  include (a tag file for) the STL sources as input, then you should
722  set this tag to \c YES in order to let doxygen match functions declarations and
723  definitions whose arguments contain STL classes (e.g. `func(std::string`); versus
724  `func(std::string) {}`). This also make the inheritance and collaboration
725  diagrams that involve STL classes more complete and accurate.
726 ]]>
727       </docs>
728     </option>
729     <option type='bool' id='CPP_CLI_SUPPORT' defval='0'>
730       <docs>
731 <![CDATA[
732  If you use Microsoft's C++/CLI language, you should set this option to \c YES to
733  enable parsing support.
734 ]]>
735       </docs>
736     </option>
737     <option type='bool' id='SIP_SUPPORT' defval='0'>
738       <docs>
739 <![CDATA[
740  Set the \c SIP_SUPPORT tag to \c YES if your project consists
741  of <a href="https://www.riverbankcomputing.com/software/sip/intro">sip</a> sources only.
742  Doxygen will parse them like normal C++ but will assume all classes use public
743  instead of private inheritance when no explicit protection keyword is present.
744 ]]>
745       </docs>
746     </option>
747     <option type='bool' id='IDL_PROPERTY_SUPPORT' defval='1'>
748       <docs>
749 <![CDATA[
750  For Microsoft's IDL there are \c propget and \c propput attributes to indicate getter
751  and setter methods for a property. Setting this option to \c YES
752  will make doxygen to replace the get and set methods by a property in the
753  documentation. This will only work if the methods are indeed getting or
754  setting a simple type. If this is not the case, or you want to show the
755  methods anyway, you should set this option to \c NO.
756 ]]>
757       </docs>
758     </option>
759     <option type='bool' id='DISTRIBUTE_GROUP_DOC' defval='0'>
760       <docs>
761 <![CDATA[
762  If member grouping is used in the documentation and the \c DISTRIBUTE_GROUP_DOC
763  tag is set to \c YES then doxygen will reuse the documentation of the first
764  member in the group (if any) for the other members of the group. By default
765  all members of a group must be documented explicitly.
766 ]]>
767       </docs>
768     </option>
769     <option type='bool' id='GROUP_NESTED_COMPOUNDS' defval='0'>
770       <docs>
771 <![CDATA[
772  If one adds a struct or class to a group and this option is enabled, then also
773  any nested class or struct is added to the same group. By default this option
774  is disabled and one has to add nested compounds explicitly via \ref cmdingroup "\\ingroup".
775 ]]>
776       </docs>
777     </option>
778     <option type='bool' id='SUBGROUPING' defval='1'>
779       <docs>
780 <![CDATA[
781  Set the \c SUBGROUPING tag to \c YES to allow class member groups of
782  the same type (for instance a group of public functions) to be put as a
783  subgroup of that type (e.g. under the Public Functions section). Set it to
784  \c NO to prevent subgrouping. Alternatively, this can be done per class using
785  the \ref cmdnosubgrouping "\\nosubgrouping" command.
786 ]]>
787       </docs>
788     </option>
789     <option type='bool' id='INLINE_GROUPED_CLASSES' defval='0'>
790       <docs>
791 <![CDATA[
792  When the \c INLINE_GROUPED_CLASSES tag is set to \c YES, classes, structs and
793  unions are shown inside the group in which they are included
794  (e.g. using \ref cmdingroup "\\ingroup") instead of on a separate page (for HTML and Man pages)
795  or section (for \f$\mbox{\LaTeX}\f$ and RTF).
796  <br>Note that this feature does not work in
797  combination with \ref cfg_separate_member_pages "SEPARATE_MEMBER_PAGES".
798 ]]>
799       </docs>
800     </option>
801     <option type='bool' id='INLINE_SIMPLE_STRUCTS' defval='0'>
802       <docs>
803 <![CDATA[
804  When the \c INLINE_SIMPLE_STRUCTS tag is set to \c YES, structs, classes, and
805  unions with only public data fields or simple typedef fields will be shown
806  inline in the documentation of the scope in which they are defined (i.e. file,
807  namespace, or group documentation), provided this scope is documented. If set
808  to \c NO, structs, classes, and unions are shown on a separate
809  page (for HTML and Man pages) or section (for \f$\mbox{\LaTeX}\f$ and RTF).
810 ]]>
811       </docs>
812     </option>
813     <option type='bool' id='TYPEDEF_HIDES_STRUCT' defval='0'>
814       <docs>
815 <![CDATA[
816  When \c TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or enum
817  is documented as struct, union, or enum with the name of the typedef. So
818  <code>typedef struct TypeS {} TypeT</code>, will appear in the documentation as a struct
819  with name \c TypeT. When disabled the typedef will appear as a member of a file,
820  namespace, or class. And the struct will be named \c TypeS. This can typically
821  be useful for C code in case the coding convention dictates that all compound
822  types are typedef'ed and only the typedef is referenced, never the tag name.
823 ]]>
824       </docs>
825     </option>
826     <option type='int' id='LOOKUP_CACHE_SIZE' minval='0' maxval='9' defval='0'>
827       <!-- be careful when changing these formulas as they are hard coded in the conversion script -->
828       <docs>
829 <![CDATA[
830  The size of the symbol lookup cache can be
831  set using \c LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given
832  their name and scope. Since this can be an expensive process and often the
833  same symbol appears multiple times in the code, doxygen keeps a cache of
834  pre-resolved symbols. If the cache is too small doxygen will become slower.
835  If the cache is too large, memory is wasted. The cache size is given by this
836  formula: \f$2^{(16+\mbox{LOOKUP\_CACHE\_SIZE})}\f$. The valid range is 0..9, the default is 0,
837  corresponding to a cache size of \f$2^{16} = 65536\f$ symbols.
838  At the end of a run doxygen will report the cache usage and suggest the
839  optimal cache size from a speed point of view.
840 ]]>
841       </docs>
842     </option>
843     <option type='int' id='NUM_PROC_THREADS' defval='1' minval='0' maxval='32'>
844       <docs>
845 <![CDATA[
846  The \c NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use during
847  processing. When set to \c 0 doxygen will based this on the number of cores
848  available in the system. You can set it explicitly to a value larger than 0
849  to get more control over the balance between CPU load and processing speed.
850  At this moment only the input processing can be done using multiple threads.
851  Since this is still an experimental feature the default is set to 1,
852  which effectively disables parallel processing. Please report any issues you
853  encounter.
854  Generating dot graphs in parallel is controlled by the \c DOT_NUM_THREADS setting.
855 ]]>
856       </docs>
857     </option>
858   </group>
859   <group name='Build' docs='Build related configuration options'>
860     <option type='bool' id='EXTRACT_ALL' defval='0'>
861       <docs>
862 <![CDATA[
863  If the \c EXTRACT_ALL tag is set to \c YES, doxygen will assume all
864  entities in documentation are documented, even if no documentation was
865  available. Private class members and static file members will be hidden
866  unless the \ref cfg_extract_private "EXTRACT_PRIVATE" respectively
867  \ref cfg_extract_static "EXTRACT_STATIC" tags are set to \c YES.
868
869  \note This will also disable the warnings about undocumented members
870  that are normally produced when \ref cfg_warnings "WARNINGS" is
871  set to \c YES.
872 ]]>
873       </docs>
874     </option>
875     <option type='bool' id='EXTRACT_PRIVATE' defval='0'>
876       <docs>
877 <![CDATA[
878  If the \c EXTRACT_PRIVATE tag is set to \c YES, all private members of a
879  class will be included in the documentation.
880 ]]>
881       </docs>
882     </option>
883     <option type='bool' id='EXTRACT_PRIV_VIRTUAL' defval='0'>
884       <docs>
885 <![CDATA[
886  If the \c EXTRACT_PRIV_VIRTUAL tag is set to \c YES, documented private
887  virtual methods of a class will be included in the documentation.
888 ]]>
889       </docs>
890     </option>
891     <option type='bool' id='EXTRACT_PACKAGE' defval='0'>
892       <docs>
893 <![CDATA[
894  If the \c EXTRACT_PACKAGE tag is set to \c YES, all members with package
895  or internal scope will be included in the documentation.
896 ]]>
897       </docs>
898     </option>
899     <option type='bool' id='EXTRACT_STATIC' defval='0'>
900       <docs>
901 <![CDATA[
902  If the \c EXTRACT_STATIC tag is set to \c YES, all static members of a file
903  will be included in the documentation.
904 ]]>
905       </docs>
906     </option>
907     <option type='bool' id='EXTRACT_LOCAL_CLASSES' defval='1'>
908       <docs>
909 <![CDATA[
910  If the \c EXTRACT_LOCAL_CLASSES tag is set to \c YES, classes (and structs)
911  defined locally in source files will be included in the documentation.
912  If set to \c NO, only classes defined in header files are included. Does not
913  have any effect for Java sources.
914 ]]>
915       </docs>
916     </option>
917     <option type='bool' id='EXTRACT_LOCAL_METHODS' defval='0'>
918       <docs>
919 <![CDATA[
920  This flag is only useful for Objective-C code. If set to \c YES, local
921  methods, which are defined in the implementation section but not in
922  the interface are included in the documentation.
923  If set to \c NO, only methods in the interface are included.
924 ]]>
925       </docs>
926     </option>
927     <option type='bool' id='EXTRACT_ANON_NSPACES' defval='0'>
928       <docs>
929 <![CDATA[
930  If this flag is set to \c YES, the members of anonymous namespaces will be extracted
931  and appear in the documentation as a namespace called 'anonymous_namespace{file}',
932  where file will be replaced with the base name of the file that contains the anonymous
933  namespace. By default anonymous namespace are hidden.
934 ]]>
935       </docs>
936     </option>
937     <option type='bool' id='RESOLVE_UNNAMED_PARAMS' defval='1'>
938       <docs>
939 <![CDATA[
940  If this flag is set to \c YES, the name of an unnamed parameter in a declaration will be
941  determined by the corresponding definition. By default unnamed parameters remain unnamed
942  in the output.
943 ]]>
944       </docs>
945     </option>
946     <option type='bool' id='HIDE_UNDOC_MEMBERS' defval='0'>
947       <docs>
948 <![CDATA[
949  If the \c HIDE_UNDOC_MEMBERS tag is set to \c YES, doxygen will hide all
950  undocumented members inside documented classes or files.
951  If set to \c NO these members will be included in the
952  various overviews, but no documentation section is generated.
953  This option has no effect if \ref cfg_extract_all "EXTRACT_ALL" is enabled.
954 ]]>
955       </docs>
956     </option>
957     <option type='bool' id='HIDE_UNDOC_CLASSES' defval='0'>
958       <docs>
959 <![CDATA[
960  If the \c HIDE_UNDOC_CLASSES tag is set to \c YES, doxygen will hide all
961  undocumented classes that are normally visible in the class hierarchy.
962  If set to \c NO, these classes will be included in the
963  various overviews.
964  This option has no effect if \ref cfg_extract_all "EXTRACT_ALL" is enabled.
965 ]]>
966       </docs>
967     </option>
968     <option type='bool' id='HIDE_FRIEND_COMPOUNDS' defval='0'>
969       <docs>
970 <![CDATA[
971  If the \c HIDE_FRIEND_COMPOUNDS tag is set to \c YES, doxygen will hide all
972  friend declarations.
973  If set to \c NO, these declarations will be included in the
974  documentation.
975 ]]>
976       </docs>
977     </option>
978     <option type='bool' id='HIDE_IN_BODY_DOCS' defval='0'>
979       <docs>
980 <![CDATA[
981  If the \c HIDE_IN_BODY_DOCS tag is set to \c YES, doxygen will hide any
982  documentation blocks found inside the body of a function.
983  If set to \c NO, these blocks will be appended to the
984  function's detailed documentation block.
985 ]]>
986       </docs>
987     </option>
988     <option type='bool' id='INTERNAL_DOCS' defval='0'>
989       <docs>
990 <![CDATA[
991  The \c INTERNAL_DOCS tag determines if documentation
992  that is typed after a \ref cmdinternal "\\internal" command is included. If the tag is set
993  to \c NO then the documentation will be excluded.
994  Set it to \c YES to include the internal documentation.
995 ]]>
996       </docs>
997     </option>
998     <option type='enum' id='CASE_SENSE_NAMES' defval='SYSTEM'>
999       <docs>
1000 <![CDATA[
1001  With the correct setting of option \c CASE_SENSE_NAMES doxygen will better be able to match the
1002  capabilities of the underlying filesystem.
1003
1004  In case the filesystem is case sensitive (i.e. it supports files in the same directory
1005  whose names only differ in casing), the option must be set to \c YES to properly deal with such files
1006  in case they appear in the input.
1007
1008  For filesystems that are not case sensitive the option should be set to \c NO to properly
1009  deal with output files written for symbols that only differ in casing, such as for two classes,
1010  one named \c CLASS and the other named \c Class, and to also support references to files without
1011  having to specify the exact matching casing.
1012
1013  On Windows (including Cygwin) and MacOS, users should typically set this option to \c NO,
1014  whereas on Linux or other Unix flavors it should typically be set to \c YES.
1015 ]]>
1016       </docs>
1017       <value name="SYSTEM" />
1018       <value name="NO"/>
1019       <value name="YES" />
1020     </option>
1021     <option type='bool' id='HIDE_SCOPE_NAMES' defval='0'>
1022       <docs>
1023 <![CDATA[
1024  If the \c HIDE_SCOPE_NAMES tag is set to \c NO then doxygen
1025  will show members with their full class and namespace scopes in the
1026  documentation. If set to \c YES, the scope will be hidden.
1027 ]]>
1028       </docs>
1029     </option>
1030     <option type='bool' id='HIDE_COMPOUND_REFERENCE' defval='0'>
1031       <docs>
1032 <![CDATA[
1033  If the \c HIDE_COMPOUND_REFERENCE tag is set to \c NO (default) then
1034  doxygen will append additional text to a page's title, such as Class Reference.
1035  If set to \c YES the compound reference will be hidden.
1036 ]]>
1037       </docs>
1038     </option>
1039     <option type='bool' id='SHOW_HEADERFILE' defval='1'>
1040       <docs>
1041 <![CDATA[
1042  If the \c SHOW_HEADERFILE tag is set to \c YES then the documentation
1043  for a class will show which file needs to be included to use the class.
1044 ]]>
1045       </docs>
1046     </option>
1047     <option type='bool' id='SHOW_INCLUDE_FILES' defval='1'>
1048       <docs>
1049 <![CDATA[
1050  If the \c SHOW_INCLUDE_FILES tag is set to \c YES then doxygen
1051  will put a list of the files that are included by a file in the documentation
1052  of that file.
1053 ]]>
1054       </docs>
1055     </option>
1056     <option type='bool' id='SHOW_GROUPED_MEMB_INC' defval='0'>
1057       <docs>
1058 <![CDATA[
1059  If the SHOW_GROUPED_MEMB_INC tag is set to \c YES then Doxygen
1060  will add for each grouped member an include statement to the documentation,
1061  telling the reader which file to include in order to use the member.
1062 ]]>
1063       </docs>
1064     </option>
1065     <option type='bool' id='FORCE_LOCAL_INCLUDES' defval='0'>
1066       <docs>
1067 <![CDATA[
1068  If the \c FORCE_LOCAL_INCLUDES tag is set to \c YES then doxygen
1069  will list include files with double quotes in the documentation
1070  rather than with sharp brackets.
1071 ]]>
1072       </docs>
1073     </option>
1074     <option type='bool' id='INLINE_INFO' defval='1'>
1075       <docs>
1076 <![CDATA[
1077  If the \c INLINE_INFO tag is set to \c YES then a tag [inline]
1078  is inserted in the documentation for inline members.
1079 ]]>
1080       </docs>
1081     </option>
1082     <option type='bool' id='SORT_MEMBER_DOCS' defval='1'>
1083       <docs>
1084 <![CDATA[
1085  If the \c SORT_MEMBER_DOCS tag is set to \c YES then doxygen
1086  will sort the (detailed) documentation of file and class members
1087  alphabetically by member name. If set to \c NO, the members will appear in
1088  declaration order.
1089 ]]>
1090       </docs>
1091     </option>
1092     <option type='bool' id='SORT_BRIEF_DOCS' defval='0'>
1093       <docs>
1094 <![CDATA[
1095  If the \c SORT_BRIEF_DOCS tag is set to \c YES then doxygen will sort the
1096  brief descriptions of file, namespace and class members alphabetically
1097  by member name. If set to \c NO, the members will appear in
1098  declaration order. Note that this will also influence the order of the
1099  classes in the class list.
1100 ]]>
1101       </docs>
1102     </option>
1103     <option type='bool' id='SORT_MEMBERS_CTORS_1ST' defval='0'>
1104       <docs>
1105 <![CDATA[
1106  If the \c SORT_MEMBERS_CTORS_1ST tag is set to \c YES then doxygen
1107  will sort the (brief and detailed) documentation of class members so that
1108  constructors and destructors are listed first. If set to \c NO
1109  the constructors will appear in the respective orders defined by
1110  \ref cfg_sort_brief_docs "SORT_BRIEF_DOCS" and \ref cfg_sort_member_docs "SORT_MEMBER_DOCS".
1111  \note If \ref cfg_sort_brief_docs "SORT_BRIEF_DOCS" is set to \c NO this option is ignored for
1112        sorting brief member documentation.
1113  \note If \ref cfg_sort_member_docs "SORT_MEMBER_DOCS" is set to \c NO this option is ignored for
1114        sorting detailed member documentation.
1115 ]]>
1116       </docs>
1117     </option>
1118     <option type='bool' id='SORT_GROUP_NAMES' defval='0'>
1119       <docs>
1120 <![CDATA[
1121  If the \c SORT_GROUP_NAMES tag is set to \c YES then doxygen will sort the
1122  hierarchy of group names into alphabetical order. If set to \c NO
1123  the group names will appear in their defined order.
1124 ]]>
1125       </docs>
1126     </option>
1127     <option type='bool' id='SORT_BY_SCOPE_NAME' defval='0'>
1128       <docs>
1129 <![CDATA[
1130  If the \c SORT_BY_SCOPE_NAME tag is set to \c YES, the class list will be
1131  sorted by fully-qualified names, including namespaces. If set to
1132  \c NO, the class list will be sorted only by class name,
1133  not including the namespace part.
1134  \note This option is not very useful if \ref cfg_hide_scope_names "HIDE_SCOPE_NAMES" is set to \c YES.
1135  \note This option applies only to the class list, not to the
1136        alphabetical list.
1137 ]]>
1138       </docs>
1139     </option>
1140     <option type='bool' id='STRICT_PROTO_MATCHING' defval='0'>
1141       <docs>
1142 <![CDATA[
1143  If the \c STRICT_PROTO_MATCHING option is enabled and doxygen fails to
1144  do proper type resolution of all parameters of a function it will reject a
1145  match between the prototype and the implementation of a member function even
1146  if there is only one candidate or it is obvious which candidate to choose
1147  by doing a simple string match. By disabling \c STRICT_PROTO_MATCHING doxygen
1148  will still accept a match between prototype and implementation in such cases.
1149 ]]>
1150       </docs>
1151     </option>
1152     <option type='bool' id='GENERATE_TODOLIST' defval='1'>
1153       <docs>
1154 <![CDATA[
1155  The \c GENERATE_TODOLIST tag can be used to enable (\c YES) or
1156  disable (\c NO) the todo list. This list is created by
1157  putting \ref cmdtodo "\\todo" commands in the documentation.
1158 ]]>
1159       </docs>
1160     </option>
1161     <option type='bool' id='GENERATE_TESTLIST' defval='1'>
1162       <docs>
1163 <![CDATA[
1164  The \c GENERATE_TESTLIST tag can be used to enable (\c YES) or
1165  disable (\c NO) the test list. This list is created by
1166  putting \ref cmdtest "\\test" commands in the documentation.
1167 ]]>
1168       </docs>
1169     </option>
1170     <option type='bool' id='GENERATE_BUGLIST' defval='1'>
1171       <docs>
1172 <![CDATA[
1173  The \c GENERATE_BUGLIST tag can be used to enable (\c YES) or
1174  disable (\c NO) the bug list. This list is created by
1175  putting \ref cmdbug "\\bug" commands in the documentation.
1176 ]]>
1177       </docs>
1178     </option>
1179     <option type='bool' id='GENERATE_DEPRECATEDLIST' defval='1'>
1180       <docs>
1181 <![CDATA[
1182  The \c GENERATE_DEPRECATEDLIST tag can be used to enable (\c YES) or
1183  disable (\c NO) the deprecated list. This list is created by
1184  putting \ref cmddeprecated "\\deprecated"
1185  commands in the documentation.
1186 ]]>
1187       </docs>
1188     </option>
1189     <option type='list' id='ENABLED_SECTIONS' format='string'>
1190       <docs>
1191 <![CDATA[
1192  The \c ENABLED_SECTIONS tag can be used to enable conditional
1193  documentation sections, marked by \ref cmdif "\\if" \<section_label\> ...
1194  \ref cmdendif "\\endif" and \ref cmdcond "\\cond" \<section_label\> ...
1195  \ref cmdendcond "\\endcond" blocks.
1196 ]]>
1197       </docs>
1198     </option>
1199     <option type='int' id='MAX_INITIALIZER_LINES' minval='0' maxval='10000' defval='30'>
1200       <docs>
1201 <![CDATA[
1202  The \c MAX_INITIALIZER_LINES tag determines the maximum number of lines
1203  that the initial value of a variable or macro / define can have for it to appear in
1204  the documentation. If the initializer
1205  consists of more lines than specified here it will be hidden. Use a value
1206  of 0 to hide initializers completely. The appearance of the value of
1207  individual variables and macros / defines can be controlled using \ref cmdshowinitializer "\\showinitializer"
1208  or \ref cmdhideinitializer "\\hideinitializer" command in the documentation regardless of this setting.
1209 ]]>
1210       </docs>
1211     </option>
1212     <option type='bool' id='SHOW_USED_FILES' defval='1'>
1213       <docs>
1214 <![CDATA[
1215  Set the \c SHOW_USED_FILES tag to \c NO to disable the list of files generated
1216  at the bottom of the documentation of classes and structs. If set to \c YES, the
1217  list will mention the files that were used to generate the documentation.
1218 ]]>
1219       </docs>
1220     </option>
1221     <option type='bool' id='SHOW_FILES' defval='1'>
1222       <docs>
1223 <![CDATA[
1224  Set the \c SHOW_FILES tag to \c NO to disable the generation of the Files page.
1225  This will remove the Files entry from the Quick Index and from the
1226  Folder Tree View (if specified).
1227 ]]>
1228       </docs>
1229     </option>
1230     <option type='bool' id='SHOW_NAMESPACES' defval='1'>
1231       <docs>
1232 <![CDATA[
1233  Set the \c SHOW_NAMESPACES tag to \c NO to disable the generation of the
1234  Namespaces page. This will remove the Namespaces entry from the Quick Index
1235  and from the Folder Tree View (if specified).
1236 ]]>
1237       </docs>
1238     </option>
1239     <option type='string' id='FILE_VERSION_FILTER' format='file' defval=''>
1240       <docs>
1241 <![CDATA[
1242  The \c FILE_VERSION_FILTER tag can be used to specify a program or script that
1243  doxygen should invoke to get the current version for each file (typically from the
1244  version control system). Doxygen will invoke the program by executing (via
1245  <code>popen()</code>) the command <code>command input-file</code>, where \c command is
1246  the value of the \c FILE_VERSION_FILTER tag, and \c input-file is the name
1247  of an input file provided by doxygen.
1248  Whatever the program writes to standard output is used as the file version.
1249 ]]>
1250       </docs>
1251       <docs doxywizard='0' doxyfile='0'>
1252 <![CDATA[
1253 <br>
1254 <br>
1255 Example of using a shell script as a filter for Unix:
1256 \verbatim
1257  FILE_VERSION_FILTER = "/bin/sh versionfilter.sh"
1258 \endverbatim
1259 <br>
1260 Example shell script for CVS:
1261 \verbatim
1262 #!/bin/sh
1263 cvs status $1 | sed -n 's/^[ \]*Working revision:[ \t]*\([0-9][0-9\.]*\).*/\1/p'
1264 \endverbatim
1265 <br>
1266 Example shell script for Subversion:
1267 \verbatim
1268 #!/bin/sh
1269 svn stat -v $1 | sed -n 's/^[ A-Z?\*|!]\{1,15\}/r/;s/ \{1,15\}/\/r/;s/ .*//p'
1270 \endverbatim
1271 <br>
1272 Example filter for ClearCase:
1273 \verbatim
1274 FILE_VERSION_FILTER = "cleartool desc -fmt \%Vn"
1275 \endverbatim
1276 ]]>
1277       </docs>
1278       <docs documentation='0'>
1279 <![CDATA[
1280  For an example see the documentation.
1281 ]]>
1282       </docs>
1283     </option>
1284     <option type='string' id='LAYOUT_FILE' format='file' defval=''>
1285       <docs>
1286 <![CDATA[
1287  The \c LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
1288  doxygen. The layout file controls the global structure of the generated output files
1289  in an output format independent way. To create the layout file that represents
1290  doxygen's defaults, run doxygen with the `-l` option. You can optionally specify a
1291  file name after the option, if omitted \c DoxygenLayout.xml will be used as the name
1292  of the layout file.
1293  See also section \ref layout for information.
1294  <br>Note that if you run doxygen from a directory containing
1295  a file called \c DoxygenLayout.xml, doxygen will parse it automatically even if
1296  the \c LAYOUT_FILE tag is left empty.
1297 ]]>
1298       </docs>
1299     </option>
1300     <option type='list' id='CITE_BIB_FILES' format='file'>
1301       <docs>
1302 <![CDATA[
1303  The \c CITE_BIB_FILES tag can be used to specify one or more \c bib files
1304  containing the reference definitions. This must be a list of <code>.bib</code> files. The
1305  <code>.bib</code> extension is automatically appended if omitted. This requires the
1306  \c bibtex tool to be installed. See also https://en.wikipedia.org/wiki/BibTeX for
1307  more info. For \f$\mbox{\LaTeX}\f$ the style of the bibliography can be controlled
1308  using \ref cfg_latex_bib_style "LATEX_BIB_STYLE".
1309  To use this feature you need \c bibtex and \c perl available in the search path.
1310  See also \ref cmdcite "\\cite" for info how to create references.
1311 ]]>
1312       </docs>
1313     </option>
1314   </group>
1315   <group name='Messages' docs='Configuration options related to warning and progress messages'>
1316     <option type='bool' id='QUIET' defval='0'>
1317       <docs>
1318 <![CDATA[
1319  The \c QUIET tag can be used to turn on/off the messages that are generated
1320  to standard output by doxygen. If \c QUIET is set to \c YES this implies that the messages are off.
1321 ]]>
1322       </docs>
1323     </option>
1324     <option type='bool' id='WARNINGS' defval='1'>
1325       <docs>
1326 <![CDATA[
1327  The \c WARNINGS tag can be used to turn on/off the warning messages that are
1328  generated to standard error (\c stderr) by doxygen. If \c WARNINGS is set to
1329  \c YES this implies that the warnings are on.
1330 <br>
1331  \b Tip: Turn warnings on while writing the documentation.
1332 ]]>
1333       </docs>
1334     </option>
1335     <option type='bool' id='WARN_IF_UNDOCUMENTED' defval='1'>
1336       <docs>
1337 <![CDATA[
1338  If the \c WARN_IF_UNDOCUMENTED tag is set to \c YES then doxygen will generate warnings
1339  for undocumented members. If \ref cfg_extract_all "EXTRACT_ALL" is set to \c YES then this flag will
1340  automatically be disabled.
1341 ]]>
1342       </docs>
1343     </option>
1344     <option type='bool' id='WARN_IF_DOC_ERROR' defval='1'>
1345       <docs>
1346 <![CDATA[
1347  If the \c WARN_IF_DOC_ERROR tag is set to \c YES, doxygen will generate warnings for
1348  potential errors in the documentation, such as documenting some
1349  parameters in a documented function twice, or documenting parameters that
1350  don't exist or using markup commands wrongly.
1351 ]]>
1352       </docs>
1353     </option>
1354     <option type='bool' id='WARN_IF_INCOMPLETE_DOC' defval='1'>
1355       <docs>
1356 <![CDATA[
1357  If \c WARN_IF_INCOMPLETE_DOC is set to \c YES, doxygen will warn about
1358  incomplete function parameter documentation.
1359  If set to \c NO, doxygen will accept that some parameters have no
1360  documentation without warning.
1361 ]]>
1362       </docs>
1363     </option>
1364     <option type='bool' id='WARN_NO_PARAMDOC' defval='0'>
1365       <docs>
1366 <![CDATA[
1367  This \c WARN_NO_PARAMDOC option can be enabled to get warnings for
1368  functions that are documented, but have no documentation for their parameters
1369  or return value. If set to \c NO, doxygen will only warn about
1370  wrong parameter documentation, but not about the absence of
1371  documentation.
1372  If \ref cfg_extract_all "EXTRACT_ALL" is set to \c YES then this flag will
1373  automatically be disabled.
1374  See also \ref cfg_warn_if_incomplete_doc "WARN_IF_INCOMPLETE_DOC"
1375 ]]>
1376       </docs>
1377     </option>
1378     <option type='enum' id='WARN_AS_ERROR' defval='NO'>
1379       <docs>
1380 <![CDATA[
1381  If the \c WARN_AS_ERROR tag is set to \c YES then doxygen will immediately stop
1382  when a warning is encountered.
1383  If the \c WARN_AS_ERROR tag is set to \c FAIL_ON_WARNINGS then doxygen will continue
1384  running as if \c WARN_AS_ERROR tag is set to \c NO, but at the end of the doxygen
1385  process doxygen will return with a non-zero status.
1386 ]]>
1387       </docs>
1388       <value name="NO"/>
1389       <value name="YES" />
1390       <value name="FAIL_ON_WARNINGS" />
1391     </option>
1392     <option type='string' id='WARN_FORMAT' format='string' defval='$file:$line: $text'>
1393       <docs>
1394 <![CDATA[
1395  The \c WARN_FORMAT tag determines the format of the warning messages that
1396  doxygen can produce. The string should contain the <code>\$file</code>,
1397  <code>\$line</code>, and <code>\$text</code>
1398  tags, which will be replaced by the file and line number from which the
1399  warning originated and the warning text.
1400  Optionally the format may contain
1401  <code>$version</code>, which will be replaced by the version of the file (if it could
1402  be obtained via \ref cfg_file_version_filter "FILE_VERSION_FILTER")
1403
1404  \sa \ref cfg_warn_line_format "WARN_LINE_FORMAT"
1405 ]]>
1406       </docs>
1407     </option>
1408     <option type='string' id='WARN_LINE_FORMAT' format='string' defval='at line $line of file $file'>
1409       <docs>
1410 <![CDATA[
1411  In the `$text` part of the \ref cfg_warn_format "WARN_FORMAT" command it is
1412  possible that a reference to a more specific place is given.  To make it easier
1413  to jump to this place (outside of doxygen) the user can define a custom
1414  "cut" / "paste" string.
1415
1416  Example:
1417  \verbatim
1418   WARN_LINE_FORMAT = "'vi $file +$line'"
1419  \endverbatim
1420
1421  \sa \ref cfg_warn_format "WARN_FORMAT"
1422 ]]>
1423       </docs>
1424     </option>
1425     <option type='string' id='WARN_LOGFILE' format='file' defval=''>
1426       <docs>
1427 <![CDATA[
1428  The \c WARN_LOGFILE tag can be used to specify a file to which warning
1429  and error messages should be written. If left blank the output is written
1430  to standard error (`stderr`). In case the file specified cannot be opened for
1431  writing the warning and error messages are written to standard error. When as
1432  file `-` is specified the warning and error messages are written to standard output
1433  (`stdout`).
1434 ]]>
1435       </docs>
1436     </option>
1437   </group>
1438   <group name='Input' docs='Configuration options related to the input files'>
1439     <option type='list' id='INPUT' format='filedir'>
1440       <docs>
1441 <![CDATA[
1442  The \c INPUT tag is used to specify the files and/or directories that contain
1443  documented source files. You may enter file names like
1444  \c myfile.cpp or directories like \c /usr/src/myproject.
1445  Separate the files or directories with spaces. See also
1446  \ref cfg_file_patterns "FILE_PATTERNS"  and
1447  \ref cfg_extension_mapping "EXTENSION_MAPPING"
1448
1449  \note If this tag is empty the current directory is searched.
1450 ]]>
1451       </docs>
1452     </option>
1453     <option type='string' id='INPUT_ENCODING' format='string' defval='UTF-8'>
1454       <docs>
1455 <![CDATA[
1456  This tag can be used to specify the character encoding of the source files that
1457  doxygen parses. Internally doxygen uses the UTF-8 encoding.
1458  Doxygen uses `libiconv` (or the `iconv` built into `libc`) for the transcoding.
1459  See <a href="https://www.gnu.org/software/libiconv/">the libiconv documentation</a> for
1460  the list of possible encodings.
1461
1462  \sa  \ref cfg_input_file_encoding "INPUT_FILE_ENCODING"
1463 ]]>
1464       </docs>
1465     </option>
1466     <option type='list' id='INPUT_FILE_ENCODING' format='string'>
1467       <docs>
1468 <![CDATA[
1469  This tag can be used to specify the character encoding of the source files that doxygen
1470  parses
1471  The \c INPUT_FILE_ENCODING tag can be used to specify character encoding on a per file pattern
1472  basis. Doxygen will compare the file name with each pattern and apply the
1473  encoding instead of the default \ref cfg_input_encoding "INPUT_ENCODING") if there is a match.
1474  The character encodings are a list of the form: pattern=encoding (like `*.php=ISO-8859-1`).
1475
1476  See cfg_input_encoding "INPUT_ENCODING" for further information on supported encodings.
1477 ]]>
1478       </docs>
1479     </option>
1480     <option type='list' id='FILE_PATTERNS' format='string'>
1481       <docs>
1482 <![CDATA[
1483  If the value of the \ref cfg_input "INPUT" tag contains directories, you can use the
1484  \c FILE_PATTERNS tag to specify one or more wildcard patterns
1485  (like `*.cpp` and `*.h`) to filter out the source-files
1486  in the directories.<br>
1487  Note that for custom extensions or not directly supported extensions you also
1488  need to set \ref cfg_extension_mapping "EXTENSION_MAPPING" for the extension
1489  otherwise the files are not read by doxygen.<br>
1490  Note the list of default checked file patterns might differ from the list of
1491  \ref default_file_extension_mapping "default file extension mappings".<br>
1492  If left blank the following patterns are tested:
1493 ]]>
1494       </docs>
1495       <value name='*.c'/>
1496       <value name='*.cc'/>
1497       <value name='*.cxx'/>
1498       <value name='*.cpp'/>
1499       <value name='*.c++'/>
1500       <value name='*.java'/>
1501       <value name='*.ii'/>
1502       <value name='*.ixx'/>
1503       <value name='*.ipp'/>
1504       <value name='*.i++'/>
1505       <value name='*.inl'/>
1506       <value name='*.idl'/>
1507       <value name='*.ddl'/>
1508       <value name='*.odl'/>
1509       <value name='*.h'/>
1510       <value name='*.hh'/>
1511       <value name='*.hxx'/>
1512       <value name='*.hpp'/>
1513       <value name='*.h++'/>
1514       <value name='*.l'/>
1515       <value name='*.cs'/>
1516       <value name='*.d'/>
1517       <value name='*.php'/>
1518       <value name='*.php4'/>
1519       <value name='*.php5'/>
1520       <value name='*.phtml'/>
1521       <value name='*.inc'/>
1522       <value name='*.m'/>
1523       <value name='*.markdown'/>
1524       <value name='*.md'/>
1525       <value name='*.mm'/>
1526       <value name='*.dox' desc='(to be provided as doxygen C comment)'/>
1527       <value name='*.py'/>
1528       <value name='*.pyw'/>
1529       <value name='*.f90'/>
1530       <value name='*.f95'/>
1531       <value name='*.f03'/>
1532       <value name='*.f08'/>
1533       <value name='*.f18'/>
1534       <value name='*.f'/>
1535       <value name='*.for'/>
1536       <value name='*.vhd'/>
1537       <value name='*.vhdl'/>
1538       <value name='*.ucf'/>
1539       <value name='*.qsf'/>
1540       <value name='*.ice'/>
1541     </option>
1542     <option type='bool' id='RECURSIVE' defval='0'>
1543       <docs>
1544 <![CDATA[
1545  The \c RECURSIVE tag can be used to specify whether or not subdirectories
1546  should be searched for input files as well.
1547 ]]>
1548       </docs>
1549     </option>
1550     <option type='list' id='EXCLUDE' format='filedir'>
1551       <docs>
1552 <![CDATA[
1553  The \c EXCLUDE tag can be used to specify files and/or directories that should be
1554  excluded from the \ref cfg_input "INPUT" source files. This way you can easily exclude a
1555  subdirectory from a directory tree whose root is specified with the \ref cfg_input "INPUT" tag.
1556  <br>Note that relative paths are relative to the directory from which doxygen is run.
1557 ]]>
1558       </docs>
1559     </option>
1560     <option type='bool' id='EXCLUDE_SYMLINKS' defval='0'>
1561       <docs>
1562 <![CDATA[
1563  The \c EXCLUDE_SYMLINKS tag can be used to select whether or not files or directories
1564  that are symbolic links (a Unix file system feature) are excluded from the input.
1565 ]]>
1566       </docs>
1567     </option>
1568     <option type='list' id='EXCLUDE_PATTERNS' format='string'>
1569       <docs>
1570 <![CDATA[
1571  If the value of the \ref cfg_input "INPUT" tag contains directories, you can use the
1572  \c EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
1573  certain files from those directories.
1574  <br>Note that the wildcards are matched
1575  against the file with absolute path, so to exclude all test directories
1576  for example use the pattern `*``/test/``*`
1577 ]]>
1578       </docs>
1579     </option>
1580     <option type='list' id='EXCLUDE_SYMBOLS' format='string'>
1581       <docs>
1582 <![CDATA[
1583  The \c EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
1584  (namespaces, classes, functions, etc.) that should be excluded from the
1585  output. The symbol name can be a fully qualified name, a word, or if the
1586  wildcard `*` is used, a substring. Examples: `ANamespace`, `AClass`,
1587  `ANamespace::AClass`, `ANamespace::*Test`
1588  <br>Note that the wildcards are matched against the file with absolute path,
1589  so to exclude all test directories use the pattern
1590  `*``/test/``*`
1591 ]]>
1592       </docs>
1593     </option>
1594     <option type='list' id='EXAMPLE_PATH' format='filedir'>
1595       <docs>
1596 <![CDATA[
1597  The \c EXAMPLE_PATH tag can be used to specify one or more files or
1598  directories that contain example code fragments that are included (see
1599  the \ref cmdinclude "\\include" command).
1600 ]]>
1601       </docs>
1602     </option>
1603     <option type='list' id='EXAMPLE_PATTERNS' format='string'>
1604       <docs>
1605 <![CDATA[
1606  If the value of the \ref cfg_example_path "EXAMPLE_PATH" tag contains directories,
1607  you can use the
1608  \c EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like `*.cpp`
1609  and `*.h`) to filter out the source-files in the directories. If left
1610  blank all files are included.
1611 ]]>
1612       </docs>
1613       <value name='*' show_docu='NO'/>
1614     </option>
1615     <option type='bool' id='EXAMPLE_RECURSIVE' defval='0'>
1616       <docs>
1617 <![CDATA[
1618  If the \c EXAMPLE_RECURSIVE tag is set to \c YES then subdirectories will be
1619  searched for input files to be used with the \ref cmdinclude "\\include" or
1620  \ref cmddontinclude "\\dontinclude"
1621  commands irrespective of the value of the \ref cfg_recursive "RECURSIVE" tag.
1622 ]]>
1623       </docs>
1624     </option>
1625     <option type='list' id='IMAGE_PATH' format='filedir'>
1626       <docs>
1627 <![CDATA[
1628  The \c IMAGE_PATH tag can be used to specify one or more files or
1629  directories that contain images that are to be included in the
1630  documentation (see the \ref cmdimage "\\image" command).
1631 ]]>
1632       </docs>
1633     </option>
1634     <option type='string' id='INPUT_FILTER' format='file' defval=''>
1635       <docs>
1636 <![CDATA[
1637  The \c INPUT_FILTER tag can be used to specify a program that doxygen should
1638  invoke to filter for each input file. Doxygen will invoke the filter program
1639  by executing (via <code>popen()</code>) the command:
1640  <br>
1641    <code>\<filter\> \<input-file\></code>
1642  <br>
1643  where <code>\<filter\></code>
1644  is the value of the \c INPUT_FILTER tag, and <code>\<input-file\></code> is the name of an
1645  input file. Doxygen will then use the output that the filter program writes
1646  to standard output.  If \ref cfg_filter_patterns "FILTER_PATTERNS" is specified, this tag will be ignored.
1647  <br>Note that the filter must not add or remove lines; it is applied before the
1648  code is scanned, but not when the output code is generated. If lines are added
1649  or removed, the anchors will not be placed correctly.
1650  <br>Note that doxygen will use the data processed and written to standard output for further processing,
1651  therefore nothing else, like debug statements or used commands (so in case of a Windows batch file
1652  always use `@echo OFF`), should be written to standard output.
1653  <br>Note that for custom extensions or not directly supported extensions you also
1654  need to set \ref cfg_extension_mapping "EXTENSION_MAPPING" for the extension
1655  otherwise the files are not properly processed by doxygen.<br>
1656
1657 ]]>
1658       </docs>
1659     </option>
1660     <option type='list' id='FILTER_PATTERNS' format='string'>
1661       <docs>
1662 <![CDATA[
1663  The \c FILTER_PATTERNS tag can be used to specify filters on a per file pattern
1664  basis. Doxygen will compare the file name with each pattern and apply the
1665  filter if there is a match. The filters are a list of the form:
1666  pattern=filter (like `*.cpp=my_cpp_filter`). See \ref cfg_input_filter "INPUT_FILTER" for further
1667  information on how filters are used. If the \c FILTER_PATTERNS tag is empty or if
1668  none of the patterns match the file name, \ref cfg_input_filter "INPUT_FILTER" is
1669  applied.
1670  <br>Note that for custom extensions or not directly supported extensions you also
1671  need to set \ref cfg_extension_mapping "EXTENSION_MAPPING" for the extension
1672  otherwise the files are not properly processed by doxygen.<br>
1673 ]]>
1674       </docs>
1675     </option>
1676     <option type='bool' id='FILTER_SOURCE_FILES' defval='0'>
1677       <docs>
1678 <![CDATA[
1679  If the \c FILTER_SOURCE_FILES tag is set to \c YES, the input filter (if set using
1680  \ref cfg_input_filter "INPUT_FILTER") will also be used to filter the input
1681  files that are used for producing the source files to browse
1682  (i.e. when \ref cfg_source_browser "SOURCE_BROWSER" is set to \c YES).
1683 ]]>
1684       </docs>
1685     </option>
1686     <option type='list' id='FILTER_SOURCE_PATTERNS' format='string' depends='FILTER_SOURCE_FILES'>
1687       <docs>
1688 <![CDATA[
1689  The \c FILTER_SOURCE_PATTERNS tag can be used to specify source filters per
1690  file pattern. A pattern will override the setting
1691  for \ref cfg_filter_patterns "FILTER_PATTERN" (if any)
1692  and it is also possible to disable source filtering for a specific pattern
1693  using `*.ext=` (so without naming a filter).
1694 ]]>
1695       </docs>
1696     </option>
1697     <option type='string' id='USE_MDFILE_AS_MAINPAGE' format='string' defval=''>
1698       <docs>
1699 <![CDATA[
1700  If the \c USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
1701  is part of the input, its contents will be placed on the main page (`index.html`).
1702  This can be useful if you have a project on for instance GitHub and want to reuse
1703  the introduction page also for the doxygen output.
1704 ]]>
1705       </docs>
1706     </option>
1707     <option type='int' id='FORTRAN_COMMENT_AFTER' defval='72' minval='7' maxval='10000'>
1708       <docs>
1709 <![CDATA[
1710  The Fortran standard specifies that for fixed formatted Fortran code all characters
1711  from position 72 are to be considered as comment. A common extension is to allow
1712  longer lines before the automatic comment starts.
1713  The setting \c FORTRAN_COMMENT_AFTER will also make it possible that longer lines can be
1714  processed before the automatic comment starts.
1715 ]]>
1716       </docs>
1717     </option>
1718   </group>
1719   <group name='Source_Browser' docs='Configuration options related to source browsing'>
1720     <option type='bool' id='SOURCE_BROWSER' defval='0'>
1721       <docs>
1722 <![CDATA[
1723  If the \c SOURCE_BROWSER tag is set to \c YES then a list of source files will
1724  be generated. Documented entities will be cross-referenced with these sources.
1725  <br>Note: To get rid of all source code in the generated output, make sure that also
1726  \ref cfg_verbatim_headers "VERBATIM_HEADERS" is set to \c NO.
1727 ]]>
1728       </docs>
1729     </option>
1730     <option type='bool' id='INLINE_SOURCES' defval='0'>
1731       <docs>
1732 <![CDATA[
1733  Setting the \c INLINE_SOURCES tag to \c YES will include the body
1734  of functions, classes and enums directly into the documentation.
1735 ]]>
1736       </docs>
1737     </option>
1738     <option type='bool' id='STRIP_CODE_COMMENTS' defval='1'>
1739       <docs>
1740 <![CDATA[
1741  Setting the \c STRIP_CODE_COMMENTS tag to \c YES will instruct
1742  doxygen to hide any special comment blocks from generated source code
1743  fragments. Normal C, C++ and Fortran comments will always remain visible.
1744 ]]>
1745       </docs>
1746     </option>
1747     <option type='bool' id='REFERENCED_BY_RELATION' defval='0'>
1748       <docs>
1749 <![CDATA[
1750  If the \c REFERENCED_BY_RELATION tag is set to \c YES
1751  then for each documented entity all documented
1752  functions referencing it will be listed.
1753 ]]>
1754       </docs>
1755     </option>
1756     <option type='bool' id='REFERENCES_RELATION' defval='0'>
1757       <docs>
1758 <![CDATA[
1759  If the \c REFERENCES_RELATION tag is set to \c YES
1760  then for each documented function all documented entities
1761  called/used by that function will be listed.
1762 ]]>
1763       </docs>
1764     </option>
1765     <option type='bool' id='REFERENCES_LINK_SOURCE' defval='1'>
1766       <docs>
1767 <![CDATA[
1768  If the \c REFERENCES_LINK_SOURCE tag is set to \c YES
1769  and \ref cfg_source_browser "SOURCE_BROWSER" tag is set to \c YES then the hyperlinks from
1770  functions in \ref cfg_references_relation "REFERENCES_RELATION" and
1771  \ref cfg_referenced_by_relation "REFERENCED_BY_RELATION" lists will
1772  link to the source code.  Otherwise they will link to the documentation.
1773 ]]>
1774       </docs>
1775     </option>
1776     <option type='bool' id='SOURCE_TOOLTIPS' defval='1' depends='SOURCE_BROWSER'>
1777       <docs>
1778 <![CDATA[
1779 If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
1780 source code will show a tooltip with additional information such as prototype,
1781 brief description and links to the definition and documentation. Since this will
1782 make the HTML file larger and loading of large files a bit slower, you can opt
1783 to disable this feature.
1784 ]]>
1785       </docs>
1786     </option>
1787     <option type='bool' id='USE_HTAGS' defval='0' depends='SOURCE_BROWSER'>
1788       <docs>
1789 <![CDATA[
1790  If the \c USE_HTAGS tag is set to \c YES then the references to source code
1791  will point to the HTML generated by the \c htags(1) tool instead of doxygen
1792  built-in source browser. The \c htags tool is part of GNU's global source
1793  tagging system (see https://www.gnu.org/software/global/global.html). You
1794  will need version 4.8.6 or higher.
1795 <br>
1796  To use it do the following:
1797  -# Install the latest version of \c global
1798  -# Enable \ref cfg_source_browser "SOURCE_BROWSER" and \c USE_HTAGS in the configuration file
1799  -# Make sure the \ref cfg_input "INPUT" points to the root of the source tree
1800  -# Run \c doxygen as normal
1801 <br>
1802  Doxygen will invoke \c htags (and that will in turn invoke \c gtags), so these tools
1803  must be available from the command line (i.e. in the search path).
1804 <br>
1805  The result: instead of the source browser generated by doxygen, the links to
1806  source code will now point to the output of \c htags.
1807 ]]>
1808       </docs>
1809     </option>
1810
1811     <option type='bool' id='VERBATIM_HEADERS' defval='1'>
1812       <docs>
1813 <![CDATA[
1814   If the \c VERBATIM_HEADERS tag is set the \c YES then doxygen
1815   will generate a verbatim copy of the header file for each class for
1816   which an include is specified. Set to \c NO to disable this.
1817   \sa Section \ref cmdclass "\\class".
1818 ]]>
1819       </docs>
1820     </option>
1821     <option type='bool' id='CLANG_ASSISTED_PARSING' setting='USE_LIBCLANG' defval='0'>
1822       <docs>
1823 <![CDATA[
1824   If the \c CLANG_ASSISTED_PARSING tag is set to \c YES then doxygen will use the
1825   <a href="http://clang.llvm.org/">clang parser</a> for more accurate parsing
1826   at the cost of reduced performance. This can be particularly helpful with
1827   template rich C++ code for which doxygen's built-in parser lacks the
1828   necessary type information.
1829
1830   @note The availability of this option depends on whether or not doxygen
1831   was generated with the `-Duse_libclang=ON` option for CMake.
1832 ]]>
1833       </docs>
1834     </option>
1835     <option type='bool' id='CLANG_ADD_INC_PATHS' setting='USE_LIBCLANG' depends='CLANG_ASSISTED_PARSING' defval='1'>
1836       <docs>
1837 <![CDATA[
1838   If the \c CLANG_ASSISTED_PARSING tag is set to \c YES and the \c CLANG_ADD_INC_PATHS
1839   tag is set to \c YES then doxygen will add the directory of each input to the
1840   include path.
1841 ]]>
1842       </docs>
1843     </option>
1844     <option type='list' id='CLANG_OPTIONS' format='string' setting='USE_LIBCLANG' depends='CLANG_ASSISTED_PARSING'>
1845       <docs>
1846 <![CDATA[
1847  If clang assisted parsing is enabled you can provide the compiler with command
1848  line options that you would normally use when invoking the compiler. Note that
1849  the include paths will already be set by doxygen for the files and directories
1850  specified with \ref cfg_input "INPUT" and \ref cfg_include_path "INCLUDE_PATH".
1851 ]]>
1852       </docs>
1853     </option>
1854     <option type='string' id='CLANG_DATABASE_PATH' setting='USE_LIBCLANG' defval=''>
1855       <docs>
1856 <![CDATA[
1857  If clang assisted parsing is enabled you can provide the clang parser with the
1858  path to the directory containing a file called `compile_commands.json`.
1859  This file is the <a href="http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html">
1860  compilation database</a> containing the options used when the source files were built.
1861  This is equivalent to specifying the `-p` option to a clang tool, such as `clang-check`.
1862  These options will then be passed to the parser. Any options specified with
1863  \ref cfg_clang_options "CLANG_OPTIONS" will be added as well.
1864
1865  @note The availability of this option depends on whether or not doxygen
1866  was generated with the `-Duse_libclang=ON` option for CMake.
1867  ]]>
1868         </docs>
1869     </option>
1870   </group>
1871   <group name='Index' docs='Configuration options related to the alphabetical class index'>
1872     <option type='bool' id='ALPHABETICAL_INDEX' defval='1'>
1873       <docs>
1874 <![CDATA[
1875  If the \c ALPHABETICAL_INDEX tag is set to \c YES, an alphabetical index
1876  of all compounds will be generated. Enable this if the project contains
1877  a lot of classes, structs, unions or interfaces.
1878 ]]>
1879       </docs>
1880     </option>
1881     <option type='list' id='IGNORE_PREFIX' format='string' depends='ALPHABETICAL_INDEX'>
1882       <docs>
1883 <![CDATA[
1884  In case all classes in a project start with a common prefix, all classes will
1885  be put under the same header in the alphabetical index.
1886  The \c IGNORE_PREFIX tag can be used to specify a prefix
1887  (or a list of prefixes) that should be ignored while generating the index headers.
1888 ]]>
1889       </docs>
1890     </option>
1891   </group>
1892   <group name='HTML' docs='Configuration options related to the HTML output'>
1893     <option type='bool' id='GENERATE_HTML' defval='1'>
1894       <docs>
1895 <![CDATA[
1896  If the \c GENERATE_HTML tag is set to \c YES, doxygen will
1897  generate HTML output
1898 ]]>
1899       </docs>
1900     </option>
1901     <option type='string' id='HTML_OUTPUT' format='dir' defval='html' depends='GENERATE_HTML'>
1902       <docs>
1903 <![CDATA[
1904  The \c HTML_OUTPUT tag is used to specify where the HTML docs will be put.
1905  If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
1906  put in front of it.
1907 ]]>
1908       </docs>
1909     </option>
1910     <option type='string' id='HTML_FILE_EXTENSION' format='string' defval='.html' depends='GENERATE_HTML'>
1911       <docs>
1912 <![CDATA[
1913  The \c HTML_FILE_EXTENSION tag can be used to specify the file extension for
1914  each generated HTML page (for example: <code>.htm, .php, .asp</code>).
1915 ]]>
1916       </docs>
1917     </option>
1918     <option type='string' id='HTML_HEADER' format='file' defval='' depends='GENERATE_HTML'>
1919       <docs>
1920 <![CDATA[
1921  The \c HTML_HEADER tag can be used to specify a user-defined HTML
1922  header file for each generated HTML page.
1923  If the tag is left blank doxygen will generate a
1924  standard header.
1925 <br>
1926  To get valid HTML the header file that
1927  includes any scripts and style sheets that doxygen
1928  needs, which is dependent on the configuration options used (e.g. the
1929  setting \ref cfg_generate_treeview "GENERATE_TREEVIEW").
1930  It is highly recommended to start with a default header using
1931 \verbatim
1932 doxygen -w html new_header.html new_footer.html new_stylesheet.css YourConfigFile
1933 \endverbatim
1934  and then modify the file \c new_header.html.
1935
1936  See also section \ref doxygen_usage for information on how to generate
1937  the default header that doxygen normally uses.
1938
1939  @note The header is subject to change so you typically
1940  have to regenerate the default header when upgrading to a newer version of
1941  doxygen.
1942 ]]>
1943       </docs>
1944       <docs doxywizard='0' doxyfile='0'>
1945 <![CDATA[
1946  The following markers have a special meaning inside the header and footer:
1947  <dl>
1948  <dt><code>$title</code><dd>will be replaced with the title of the page.
1949  <dt><code>$datetime</code><dd>will be replaced with current the date and time.
1950  <dt><code>$date</code><dd>will be replaced with the current date.
1951  <dt><code>$year</code><dd>will be replaces with the current year.
1952  <dt><code>$doxygenversion</code><dd>will be replaced with the version of doxygen
1953  <dt><code>$projectname</code><dd>will be replaced with the name of
1954             the project (see \ref cfg_project_name "PROJECT_NAME")
1955  <dt><code>$projectnumber</code><dd>will be replaced with the project number
1956             (see \ref cfg_project_number "PROJECT_NUMBER")
1957  <dt><code>$projectbrief</code><dd>will be replaced with the project brief
1958             description (see \ref cfg_project_brief "PROJECT_BRIEF")
1959  <dt><code>$projectlogo</code><dd>will be replaced with the project logo
1960             (see \ref cfg_project_logo "PROJECT_LOGO")
1961  <dt><code>$generatedby</code><dd>will be replaced with the output language dependent
1962             version of the text "Generated by" or when the
1963             \ref cfg_html_timestamp "HTML_TIMESTAMP" is set by the output language
1964             dependent version of the text &quot;Generated on `$datetime` for `$projectname` by&quot;.
1965  <dt><code>$stylesheet</code><dd>will be replaced with the setting of
1966             \ref cfg_html_stylesheet "HTML_STYLESHEET" unless it is empty or the file in which case
1967             it is replaced by the default setting `doxygen.css`.
1968  <dt><code>$extrastylesheet</code><dd>will be replaced with the setting of
1969             \ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET" including the required
1970             HTML tags for each extra stylesheet.
1971  <dt><code>$treeview</code><dd>will be replaced with links to
1972             the javascript and style sheets needed for the navigation tree
1973             (or an empty string when \ref cfg_generate_treeview "GENERATE_TREEVIEW"
1974             is disabled).
1975  <dt><code>$search</code><dd>will be replaced with a links to
1976             the javascript and style sheets needed for the search engine
1977             (or an empty string when \ref cfg_searchengine "SEARCHENGINE"
1978             is disabled).
1979  <dt><code>$searchbox</code><dd>will be replaced with the HTML code needed for
1980             the search box to be shown
1981             (or an empty string when \ref cfg_searchengine "SEARCHENGINE"
1982             is disabled).
1983  <dt><code>$mathjax</code><dd>will be replaced with a links to
1984             the javascript and style sheets needed for the MathJax feature
1985             (or an empty string when \ref cfg_use_mathjax "USE_MATHJAX" is disabled).
1986  <dt><code>$relpath^</code><dd>
1987             If \ref cfg_create_subdirs "CREATE_SUBDIRS" is enabled, the command <code>$relpath^</code> can be
1988             used to produce a relative path to the root of the HTML output directory,
1989             e.g. use <code>$relpath^doxygen.css</code>, to refer to the standard style sheet.
1990  <dt><code>$navpath</code><dd>will be replaced with a path as required by
1991             \ref cfg_generate_treeview "GENERATE_TREEVIEW"
1992  </dl>
1993
1994  To cope with differences in the layout of the header and footer that depend on
1995  configuration settings, the header can also contain special blocks that
1996  will be copied to the output or skipped depending on the configuration.
1997  Such blocks have the following form:
1998 \verbatim
1999  <!--BEGIN BLOCKNAME-->
2000  Some context copied when condition BLOCKNAME holds
2001  <!--END BLOCKNAME-->
2002  <!--BEGIN !BLOCKNAME-->
2003  Some context copied when condition BLOCKNAME does not hold
2004  <!--END !BLOCKNAME-->
2005 \endverbatim
2006  The following block names are supported:
2007  <dl>
2008  <dt><code>DISABLE_INDEX</code><dd>Content within this block is copied to the output
2009      if the \ref cfg_disable_index "DISABLE_INDEX" option is enabled (so when the index is disabled).
2010  <dt><code>GENERATE_TREEVIEW</code><dd>Content within this block is copied to the output
2011      if the \ref cfg_generate_treeview "GENERATE_TREEVIEW" option is enabled.
2012  <dt><code>SEARCHENGINE</code><dd>Content within this block is copied to the output
2013      if the \ref cfg_searchengine "SEARCHENGINE" option is enabled.
2014  <dt><code>PROJECT_NAME</code><dd>Content within the block is copied to the output
2015      if the \ref cfg_project_name "PROJECT_NAME" option is not empty.
2016  <dt><code>PROJECT_NUMBER</code><dd>Content within the block is copied to the output
2017      if the \ref cfg_project_number "PROJECT_NUMBER" option is not empty.
2018  <dt><code>PROJECT_BRIEF</code><dd>Content within the block is copied to the output
2019      if the \ref cfg_project_brief "PROJECT_BRIEF" option is not empty.
2020  <dt><code>PROJECT_LOGO</code><dd>Content within the block is copied to the output
2021      if the \ref cfg_project_logo "PROJECT_LOGO" option is not empty.
2022  <dt><code>FULL_SIDEBAR</code><dd>Content within the block is copied to the output
2023      if the \ref cfg_full_sidebar "FULL_SIDEBAR",
2024      \ref cfg_disable_index "DISABLE_INDEX" and \ref cfg_generate_treeview "GENERATE_TREEVIEW"
2025      options are all enabled.
2026  <dt><code>TITLEAREA</code><dd>Content within this block is copied to the output
2027      if a title is visible at the top of each page. This is the case
2028      if either \ref cfg_project_name "PROJECT_NAME",
2029      \ref cfg_project_brief "PROJECT_BRIEF", \ref cfg_project_logo "PROJECT_LOGO"
2030      is filled in or if both \ref cfg_disable_index "DISABLE_INDEX" and
2031      \ref cfg_searchengine "SEARCHENGINE" are enabled.
2032  </dl>
2033 ]]>
2034       </docs>
2035       <docs documentation='0'>
2036 <![CDATA[
2037  For a description of the possible markers and block names see the documentation.
2038 ]]>
2039       </docs>
2040     </option>
2041
2042     <option type='string' id='HTML_FOOTER' format='file' defval='' depends='GENERATE_HTML'>
2043       <docs>
2044 <![CDATA[
2045  The \c HTML_FOOTER tag can be used to specify a user-defined HTML footer for
2046  each generated HTML page.
2047  If the tag is left blank doxygen will generate a standard footer.
2048
2049  See \ref cfg_html_header "HTML_HEADER" for more information on
2050  how to generate a default footer and what special commands can be
2051  used inside the footer.
2052
2053  See also section \ref doxygen_usage for information on how to generate
2054  the default footer that doxygen normally uses.
2055 ]]>
2056       </docs>
2057     </option>
2058     <option type='string' id='HTML_STYLESHEET' format='file' defval='' depends='GENERATE_HTML'>
2059       <docs>
2060 <![CDATA[
2061  The \c HTML_STYLESHEET tag can be used to specify a user-defined cascading
2062  style sheet that is used by each HTML page. It can be used to
2063  fine-tune the look of the HTML output. If left blank doxygen
2064  will generate a default style sheet.
2065
2066  See also section \ref doxygen_usage for information on how to generate
2067  the style sheet that doxygen normally uses.
2068
2069  \note It is recommended to use
2070  \ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET" instead of this tag,
2071  as it is more robust and
2072  this tag (<code>HTML_STYLESHEET</code>) will in the future become obsolete.
2073 ]]>
2074       </docs>
2075     </option>
2076     <option type='list' id='HTML_EXTRA_STYLESHEET' format='file' defval='' depends='GENERATE_HTML'>
2077       <docs>
2078 <![CDATA[
2079  The \c HTML_EXTRA_STYLESHEET tag can be used to specify additional
2080  user-defined cascading style sheets that are included after the standard
2081  style sheets created by doxygen. Using this option one can overrule
2082  certain style aspects. This is preferred over using \ref cfg_html_stylesheet "HTML_STYLESHEET"
2083  since it does not replace the standard style sheet and is therefore more
2084  robust against future updates. Doxygen will copy the style sheet files to
2085  the output directory.
2086  \note The order of the extra style sheet files is of importance (e.g. the last
2087  style sheet in the list overrules the setting of the previous ones in the list).
2088 ]]>
2089       </docs>
2090       <docs doxywizard='0' doxyfile='0'>
2091 <![CDATA[
2092  Here is an example style sheet that gives the contents area a fixed width:
2093 \verbatim
2094 body {
2095         background-color: #CCC;
2096         color: black;
2097         margin: 0;
2098 }
2099
2100 div.contents {
2101         margin-bottom: 10px;
2102         padding: 12px;
2103         margin-left: auto;
2104         margin-right: auto;
2105         width: 960px;
2106         background-color: white;
2107         border-radius: 8px;
2108 }
2109
2110 #titlearea {
2111         background-color: white;
2112 }
2113
2114 hr.footer {
2115         display: none;
2116 }
2117
2118 .footer {
2119         background-color: #AAA;
2120 }
2121 \endverbatim
2122 ]]>
2123       </docs>
2124       <docs documentation='0'>
2125 <![CDATA[
2126  For an example see the documentation.
2127 ]]>
2128       </docs>
2129     </option>
2130     <option type='list' id='HTML_EXTRA_FILES' format='file' depends='GENERATE_HTML'>
2131       <docs>
2132 <![CDATA[
2133  The \c HTML_EXTRA_FILES tag can be used to specify one or more extra images or
2134  other source files which should be copied to the HTML output directory. Note
2135  that these files will be copied to the base HTML output directory. Use the
2136  <code>$relpath^</code> marker in the \ref cfg_html_header "HTML_HEADER" and/or
2137  \ref cfg_html_footer "HTML_FOOTER" files to load these
2138  files. In the \ref cfg_html_stylesheet "HTML_STYLESHEET" file, use the file name only. Also note that
2139  the files will be copied as-is; there are no commands or markers available.
2140 ]]>
2141       </docs>
2142     </option>
2143     <option type='enum' id='HTML_COLORSTYLE' defval='AUTO_LIGHT' depends='GENERATE_HTML'>
2144       <docs>
2145 <![CDATA[
2146  The \c HTML_COLORSTYLE tag can be used to specify if the generated HTML output should be rendered with
2147  a dark or light theme. Default setting \c AUTO_LIGHT enables light output unless the user preference is dark output.
2148  Other options are \c DARK to always use dark mode, \c LIGHT to always use light mode, \c AUTO_DARK to default to dark
2149  mode unless the user prefers light mode, and \c TOGGLE to let the user toggle between dark and light mode via a button. 
2150 ]]>
2151       </docs>
2152       <value name="LIGHT" desc="Always generate light output."/>
2153       <value name="DARK" desc="Always generate dark output."/>
2154       <value name="AUTO_LIGHT" desc="Automatically set the mode according to the user preference, use light mode if no preference is set (the default)."/>
2155       <value name="AUTO_DARK" desc="Automatically set the mode according to the user preference, use dark mode if no preference is set."/>
2156       <value name="TOGGLE" desc="Allow to user to switch between light and dark mode via a button."/>
2157     </option>
2158     <option type='int' id='HTML_COLORSTYLE_HUE' minval='0' maxval='359' defval='220' depends='GENERATE_HTML'>
2159       <docs>
2160 <![CDATA[
2161  The \c HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
2162  Doxygen will adjust the colors in the style sheet and background images
2163  according to this color. Hue is specified as an angle on a color-wheel,
2164  see https://en.wikipedia.org/wiki/Hue for more information.
2165  For instance the value 0 represents red, 60 is yellow, 120 is green,
2166  180 is cyan, 240 is blue, 300 purple, and 360 is red again.
2167 ]]>
2168       </docs>
2169     </option>
2170     <option type='int' id='HTML_COLORSTYLE_SAT' minval='0' maxval='255' defval='100' depends='GENERATE_HTML'>
2171       <docs>
2172 <![CDATA[
2173  The \c HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
2174  the colors in the HTML output. For a value of 0 the output will use
2175  gray-scales only. A value of 255 will produce the most vivid colors.
2176 ]]>
2177       </docs>
2178     </option>
2179     <option type='int' id='HTML_COLORSTYLE_GAMMA' minval='40' maxval='240' defval='80' depends='GENERATE_HTML'>
2180       <docs>
2181 <![CDATA[
2182  The \c HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
2183  the luminance component of the colors in the HTML output. Values below
2184  100 gradually make the output lighter, whereas values above 100 make
2185  the output darker. The value divided by 100 is the actual gamma applied,
2186  so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
2187  and 100 does not change the gamma.
2188 ]]>
2189       </docs>
2190     </option>
2191     <option type='bool' id='HTML_TIMESTAMP' defval='0' depends='GENERATE_HTML'>
2192       <docs>
2193 <![CDATA[
2194  If the \c HTML_TIMESTAMP tag is set to \c YES then the footer of
2195  each generated HTML page will contain the date and time when the page
2196  was generated. Setting this to \c YES can help to show when doxygen was last run
2197  and thus if the documentation is up to date.
2198 ]]>
2199       </docs>
2200     </option>
2201     <option type='bool' id='HTML_DYNAMIC_MENUS' defval='1' depends='GENERATE_HTML'>
2202       <docs>
2203 <![CDATA[
2204  If the \c HTML_DYNAMIC_MENUS tag is set to \c YES then the generated HTML
2205  documentation will contain a main index with vertical navigation menus that
2206  are dynamically created via JavaScript. If disabled, the navigation index will consists of
2207  multiple levels of tabs that are statically embedded in every HTML page.
2208  Disable this option to support browsers that do not have JavaScript, like
2209  the Qt help browser.
2210 ]]>
2211       </docs>
2212     </option>
2213     <option type='bool' id='HTML_DYNAMIC_SECTIONS' defval='0' depends='GENERATE_HTML'>
2214       <docs>
2215 <![CDATA[
2216  If the \c HTML_DYNAMIC_SECTIONS tag is set to \c YES then the generated HTML
2217  documentation will contain sections that can be hidden and shown after the
2218  page has loaded.
2219 ]]>
2220       </docs>
2221     </option>
2222     <option type='int' id='HTML_INDEX_NUM_ENTRIES' minval='0' maxval='9999' defval='100' depends='GENERATE_HTML'>
2223       <docs>
2224 <![CDATA[
2225  With \c HTML_INDEX_NUM_ENTRIES one can control the preferred number of
2226  entries shown in the various tree structured indices initially; the user
2227  can expand and collapse entries dynamically later on. Doxygen will expand
2228  the tree to such a level that at most the specified number of entries are
2229  visible (unless a fully collapsed tree already exceeds this amount).
2230  So setting the number of entries 1 will produce a full collapsed tree by
2231  default. 0 is a special value representing an infinite number of entries
2232  and will result in a full expanded tree by default.
2233 ]]>
2234       </docs>
2235     </option>
2236     <option type='bool' id='GENERATE_DOCSET' defval='0' depends='GENERATE_HTML'>
2237       <docs>
2238 <![CDATA[
2239  If the \c GENERATE_DOCSET tag is set to \c YES, additional index files
2240  will be generated that can be used as input for
2241  <a href="https://developer.apple.com/xcode/">Apple's Xcode 3
2242  integrated development environment</a>, introduced with OSX 10.5 (Leopard).
2243  To create a documentation set, doxygen will generate a Makefile in the
2244  HTML output directory. Running \c make will produce the docset in that
2245  directory and running <code>make install</code> will install the docset in
2246  <code>~/Library/Developer/Shared/Documentation/DocSets</code>
2247  so that Xcode will find it at startup. See
2248  https://developer.apple.com/library/archive/featuredarticles/DoxygenXcode/_index.html
2249  for more information.
2250 ]]>
2251       </docs>
2252     </option>
2253     <option type='string' id='DOCSET_FEEDNAME' format='string' defval='Doxygen generated docs' depends='GENERATE_DOCSET'>
2254       <docs>
2255 <![CDATA[
2256  This tag determines the name of the docset
2257  feed. A documentation feed provides an umbrella under which multiple
2258  documentation sets from a single provider (such as a company or product suite)
2259  can be grouped.
2260 ]]>
2261       </docs>
2262     </option>
2263     <option type='string' id='DOCSET_FEEDURL' format='string' depends='GENERATE_DOCSET'>
2264       <docs>
2265 <![CDATA[
2266  This tag determines the URL of the docset
2267  feed. A documentation feed provides an umbrella under which multiple
2268  documentation sets from a single provider (such as a company or product suite)
2269  can be grouped.
2270 ]]>
2271       </docs>
2272     </option>
2273     <option type='string' id='DOCSET_BUNDLE_ID' format='string' defval='org.doxygen.Project' depends='GENERATE_DOCSET'>
2274       <docs>
2275 <![CDATA[
2276  This tag specifies a string that
2277  should uniquely identify the documentation set bundle. This should be a
2278  reverse domain-name style string, e.g. <code>com.mycompany.MyDocSet</code>.
2279  Doxygen will append <code>.docset</code> to the name.
2280 ]]>
2281       </docs>
2282     </option>
2283     <option type='string' id='DOCSET_PUBLISHER_ID' format='string' defval='org.doxygen.Publisher' depends='GENERATE_DOCSET'>
2284       <docs>
2285 <![CDATA[
2286 The \c DOCSET_PUBLISHER_ID
2287 tag specifies a string that should uniquely identify
2288 the documentation publisher. This should be a reverse domain-name style
2289 string, e.g. <code>com.mycompany.MyDocSet.documentation</code>.
2290 ]]>
2291       </docs>
2292     </option>
2293     <option type='string' id='DOCSET_PUBLISHER_NAME' format='string' defval='Publisher' depends='GENERATE_DOCSET'>
2294       <docs>
2295 <![CDATA[
2296 The \c DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
2297 ]]>
2298       </docs>
2299     </option>
2300     <option type='bool' id='GENERATE_HTMLHELP' defval='0' depends='GENERATE_HTML'>
2301       <docs>
2302 <![CDATA[
2303  If the \c GENERATE_HTMLHELP tag is set to \c YES then
2304  doxygen generates three additional HTML index files:
2305  \c index.hhp, \c index.hhc, and \c index.hhk. The \c index.hhp is a
2306  project file that can be read by Microsoft's HTML Help Workshop
2307  on Windows.
2308   In the beginning of 2021 Microsoft took the original page, with a.o. the download links,
2309   offline the HTML help workshop was already many years in maintenance mode).
2310   You can download the HTML help workshop from the web archives at
2311   <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>.
2312 <br>
2313  The HTML Help Workshop contains a compiler that can convert all HTML output
2314  generated by doxygen into a single compiled HTML file (`.chm`). Compiled
2315  HTML files are now used as the Windows 98 help format, and will replace
2316  the old Windows help format (`.hlp`) on all Windows platforms in the future.
2317  Compressed HTML files also contain an index, a table of contents,
2318  and you can search for words in the documentation.
2319  The HTML workshop also contains a viewer for compressed HTML files.
2320 ]]>
2321       </docs>
2322     </option>
2323     <option type='string' id='CHM_FILE' format='file' defval='' depends='GENERATE_HTMLHELP'>
2324       <docs>
2325 <![CDATA[
2326   The \c CHM_FILE tag can
2327   be used to specify the file name of the resulting `.chm` file. You
2328   can add a path in front of the file if the result should not be
2329   written to the html output directory.
2330 ]]>
2331       </docs>
2332     </option>
2333     <option type='string' id='HHC_LOCATION' format='file' defval='' depends='GENERATE_HTMLHELP' abspath='1'>
2334       <docs>
2335 <![CDATA[
2336   The \c HHC_LOCATION tag can
2337   be used to specify the location (absolute path including file name) of
2338   the HTML help compiler (\c hhc.exe). If non-empty, doxygen will try to run
2339   the HTML help compiler on the generated \c index.hhp.
2340 ]]>
2341       </docs>
2342     </option>
2343     <option type='bool' id='GENERATE_CHI' defval='0' depends='GENERATE_HTMLHELP'>
2344       <docs>
2345 <![CDATA[
2346  The \c GENERATE_CHI flag
2347  controls if a separate `.chi` index file is generated (\c YES) or that
2348  it should be included in the main `.chm` file (\c NO).
2349 ]]>
2350       </docs>
2351     </option>
2352     <option type='string' id='CHM_INDEX_ENCODING' format='string' defval='' depends='GENERATE_HTMLHELP'>
2353       <docs>
2354 <![CDATA[
2355  The \c CHM_INDEX_ENCODING
2356  is used to encode HtmlHelp index (\c hhk), content (\c hhc) and project file
2357  content.
2358 ]]>
2359       </docs>
2360     </option>
2361     <option type='bool' id='BINARY_TOC' defval='0' depends='GENERATE_HTMLHELP'>
2362       <docs>
2363 <![CDATA[
2364  The \c BINARY_TOC flag
2365  controls whether a binary table of contents is generated (\c YES) or a
2366  normal table of contents (\c NO) in the `.chm` file. Furthermore it enables
2367  the `Previous` and `Next` buttons.
2368 ]]>
2369       </docs>
2370     </option>
2371     <option type='bool' id='TOC_EXPAND' defval='0' depends='GENERATE_HTMLHELP'>
2372       <docs>
2373 <![CDATA[
2374  The \c TOC_EXPAND flag can be set to \c YES to add extra items for
2375  group members to the table of contents of the HTML help documentation
2376  and to the tree view.
2377 ]]>
2378       </docs>
2379     </option>
2380     <option type='bool' id='GENERATE_QHP' defval='0' depends='GENERATE_HTML'>
2381       <docs>
2382 <![CDATA[
2383  If the \c GENERATE_QHP tag is set to \c YES and both \ref cfg_qhp_namespace "QHP_NAMESPACE"
2384  and \ref cfg_qhp_virtual_folder "QHP_VIRTUAL_FOLDER" are set, an additional index file will
2385  be generated that can be used as input for Qt's qhelpgenerator
2386  to generate a Qt Compressed Help (`.qch`) of the generated HTML
2387  documentation.
2388 ]]>
2389       </docs>
2390     </option>
2391     <option type='string' id='QCH_FILE' format='file' defval='' depends='GENERATE_QHP'>
2392       <docs>
2393 <![CDATA[
2394  If the \ref cfg_qhg_location "QHG_LOCATION" tag is specified, the \c QCH_FILE tag can
2395  be used to specify the file name of the resulting `.qch` file.
2396  The path specified is relative to the HTML output folder.
2397 ]]>
2398       </docs>
2399     </option>
2400     <option type='string' id='QHP_NAMESPACE' format='string' defval='org.doxygen.Project' depends='GENERATE_QHP'>
2401       <docs>
2402 <![CDATA[
2403  The \c QHP_NAMESPACE tag specifies the namespace to use when generating
2404  Qt Help Project output. For more information please see
2405  <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace">Qt Help Project / Namespace</a>.
2406 ]]>
2407       </docs>
2408     </option>
2409     <option type='string' id='QHP_VIRTUAL_FOLDER' format='string' defval='doc' depends='GENERATE_QHP'>
2410       <docs>
2411 <![CDATA[
2412  The \c QHP_VIRTUAL_FOLDER tag specifies the namespace to use when
2413  generating Qt Help Project output. For more information please see
2414  <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders">Qt Help Project / Virtual Folders</a>.
2415 ]]>
2416       </docs>
2417     </option>
2418     <option type='string' id='QHP_CUST_FILTER_NAME' format='string' defval='' depends='GENERATE_QHP'>
2419       <docs>
2420 <![CDATA[
2421   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
2422   <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
2423 ]]>
2424       </docs>
2425     </option>
2426     <option type='string' id='QHP_CUST_FILTER_ATTRS' format='string' defval='' depends='GENERATE_QHP'>
2427       <docs>
2428 <![CDATA[
2429   The \c QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the custom filter to add.
2430   For more information please see
2431   <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
2432 ]]>
2433       </docs>
2434     </option>
2435     <option type='string' id='QHP_SECT_FILTER_ATTRS' format='string' defval='' depends='GENERATE_QHP'>
2436       <docs>
2437 <![CDATA[
2438   The \c QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's filter section matches.
2439   <a href="https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
2440 ]]>
2441       </docs>
2442     </option>
2443     <option type='string' id='QHG_LOCATION' format='file' defval='' depends='GENERATE_QHP'>
2444       <docs>
2445 <![CDATA[
2446  The \c QHG_LOCATION tag can
2447  be used to specify the location (absolute path including file name) of
2448  Qt's qhelpgenerator.
2449  If non-empty doxygen will try to run qhelpgenerator on the generated `.qhp` file.
2450 ]]>
2451       </docs>
2452     </option>
2453     <option type='bool' id='GENERATE_ECLIPSEHELP' defval='0' depends='GENERATE_HTML'>
2454       <docs>
2455 <![CDATA[
2456  If the \c GENERATE_ECLIPSEHELP tag is set to \c YES, additional index files
2457  will be generated, together with the HTML files, they form an `Eclipse` help
2458  plugin.
2459
2460  To install this plugin and make it available under the help contents
2461  menu in `Eclipse`, the contents of the directory containing the HTML and XML
2462  files needs to be copied into the plugins directory of eclipse. The name of
2463  the directory within the plugins directory should be the same as
2464  the \ref cfg_eclipse_doc_id "ECLIPSE_DOC_ID" value.
2465
2466  After copying `Eclipse` needs to be restarted before the help appears.
2467 ]]>
2468       </docs>
2469     </option>
2470     <option type='string' id='ECLIPSE_DOC_ID' format='string' defval='org.doxygen.Project' depends='GENERATE_ECLIPSEHELP'>
2471       <docs>
2472 <![CDATA[
2473  A unique identifier for the `Eclipse` help plugin. When installing the plugin
2474  the directory name containing the HTML and XML files should also have
2475  this name. Each documentation set should have its own identifier.
2476 ]]>
2477       </docs>
2478     </option>
2479     <option type='bool' id='DISABLE_INDEX' defval='0' depends='GENERATE_HTML'>
2480       <docs>
2481 <![CDATA[
2482  If you want full control over the layout of the generated HTML pages it
2483  might be necessary to disable the index and replace it with your own.
2484  The \c DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at
2485  top of each HTML page. A value of \c NO enables the index and the
2486  value \c YES disables it. Since the tabs in the index contain the same
2487  information as the navigation tree, you can set this option to \c YES if
2488  you also set \ref cfg_generate_treeview "GENERATE_TREEVIEW" to \c YES.
2489 ]]>
2490       </docs>
2491     </option>
2492     <option type='bool' id='GENERATE_TREEVIEW' defval='0' depends='GENERATE_HTML'>
2493       <docs>
2494 <![CDATA[
2495  The \c GENERATE_TREEVIEW tag is used to specify whether a tree-like index
2496  structure should be generated to display hierarchical information.
2497  If the tag value is set to \c YES, a side panel will be generated
2498  containing a tree-like index structure (just like the one that
2499  is generated for HTML Help). For this to work a browser that supports
2500  JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
2501  Windows users are probably better off using the HTML help feature.
2502
2503  Via custom style sheets (see \ref cfg_html_extra_stylesheet "HTML_EXTRA_STYLESHEET")
2504  one can further fine tune the look of the index (see \ref doxygen_finetune).
2505  As an example, the default style sheet generated by doxygen has an
2506  example that shows how to put an image at the root of the tree instead of
2507  the \ref cfg_project_name "PROJECT_NAME".
2508
2509  Since the tree basically has the same information as the tab index, you could
2510  consider setting \ref cfg_disable_index "DISABLE_INDEX" to \c YES when
2511  enabling this option.
2512 ]]>
2513       </docs>
2514     </option>
2515     <option type='bool' id='FULL_SIDEBAR' defval='0' depends='GENERATE_HTML'>
2516       <docs>
2517 <![CDATA[
2518   When both \ref cfg_generate_treeview "GENERATE_TREEVIEW" and \ref cfg_disable_index "DISABLE_INDEX"
2519   are set to \c YES, then the
2520   \c FULL_SIDEBAR option determines if the side bar is limited to only the
2521   treeview area (value \c NO) or if it should extend to the full height of the
2522   window (value \c YES). Setting this to \c YES gives a layout similar to
2523   https://docs.readthedocs.io with more room for contents,
2524   but less room for the project logo, title, and description.
2525
2526   If either \ref cfg_generate_treeview "GENERATE_TREEVIEW" or \ref cfg_disable_index "DISABLE_INDEX"
2527   is set to \c NO, this option
2528   has no effect.
2529 ]]>
2530       </docs>
2531     </option>
2532     <option type='int' id='ENUM_VALUES_PER_LINE' minval='0' maxval='20' defval='4' depends='GENERATE_HTML'>
2533       <docs>
2534 <![CDATA[
2535  The \c ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
2536  that doxygen will group on one line in the generated HTML documentation.
2537  <br>Note that a value of 0 will completely suppress the enum values from
2538  appearing in the overview section.
2539 ]]>
2540       </docs>
2541     </option>
2542     <option type='int' id='TREEVIEW_WIDTH' minval='0' maxval='1500' defval='250' depends='GENERATE_HTML'>
2543       <docs>
2544 <![CDATA[
2545  If the treeview is enabled (see \ref cfg_generate_treeview "GENERATE_TREEVIEW") then this tag can be
2546  used to set the initial width (in pixels) of the frame in which the tree
2547  is shown.
2548 ]]>
2549       </docs>
2550     </option>
2551     <option type='bool' id='EXT_LINKS_IN_WINDOW' defval='0' depends='GENERATE_HTML'>
2552       <docs>
2553 <![CDATA[
2554  If the \c EXT_LINKS_IN_WINDOW option is set to \c YES, doxygen will open
2555  links to external symbols imported via tag files in a separate window.
2556 ]]>
2557       </docs>
2558     </option>
2559     <option type='bool' id='OBFUSCATE_EMAILS' defval='1' depends='GENERATE_HTML'>
2560       <docs>
2561 <![CDATA[
2562 If the \c OBFUSCATE_EMAILS tag is set to \c YES, doxygen will
2563 obfuscate email addresses.
2564 ]]>
2565       </docs>
2566     </option>
2567     <option type='enum' id='HTML_FORMULA_FORMAT' defval='png' depends='GENERATE_HTML'>
2568       <docs>
2569 <![CDATA[
2570  If the \c HTML_FORMULA_FORMAT option is set to \c svg, doxygen will use the pdf2svg
2571  tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see https://inkscape.org)
2572  to generate formulas as SVG images instead of
2573  PNGs for the HTML output. These images will generally look nicer at scaled resolutions.
2574 ]]>
2575       </docs>
2576       <value name="png" desc="(the default)"/>
2577       <value name="svg" desc="(looks nicer but requires the pdf2svg or inkscape tool)"/>
2578     </option>
2579     <option type='int' id='FORMULA_FONTSIZE' minval='8' maxval='50' defval='10' depends='GENERATE_HTML'>
2580       <docs>
2581 <![CDATA[
2582  Use this tag to change the font size of \f$\mbox{\LaTeX}\f$ formulas included
2583  as images in the HTML documentation.
2584  When you change the font size after a successful doxygen run you need
2585  to manually remove any `form_*.png` images from the HTML
2586  output directory to force them to be regenerated.
2587 ]]>
2588       </docs>
2589     </option>
2590     <option type='string' id='FORMULA_MACROFILE' format='file' defval=''>
2591       <docs>
2592 <![CDATA[
2593  The \c FORMULA_MACROFILE can contain \f$\mbox{\LaTeX}\f$ `\newcommand` and
2594  `\renewcommand` commands to create new \f$\mbox{\LaTeX}\f$ commands to be used
2595  in formulas as building blocks.
2596  See the section \ref formulas for details.
2597 ]]>
2598       </docs>
2599     </option>
2600     <option type='bool' id='USE_MATHJAX' defval='0' depends='GENERATE_HTML'>
2601       <docs>
2602 <![CDATA[
2603  Enable the \c USE_MATHJAX option to render \f$\mbox{\LaTeX}\f$ formulas using MathJax
2604  (see https://www.mathjax.org) which uses client side JavaScript for the
2605  rendering instead of using pre-rendered bitmaps. Use this if you do not
2606  have \f$\mbox{\LaTeX}\f$ installed or if you want to formulas look prettier in the HTML
2607  output. When enabled you may also need to install MathJax separately and
2608  configure the path to it using the \ref cfg_mathjax_relpath "MATHJAX_RELPATH"
2609  option.
2610 ]]>
2611       </docs>
2612     </option>
2613     <option type='enum' id='MATHJAX_VERSION' defval='MathJax_2' depends='USE_MATHJAX'>
2614       <docs>
2615 <![CDATA[
2616  With \c MATHJAX_VERSION it is possible to specify the MathJax version to be used.
2617  Note that the different versions of MathJax have different requirements with regards to
2618  the different settings, so it is possible that also other MathJax settings have to be changed
2619  when switching between the different MathJax versions.
2620 ]]>
2621       </docs>
2622       <value name="MathJax_2"/>
2623       <value name="MathJax_3"/>
2624     </option>
2625     <option type='enum' id='MATHJAX_FORMAT' defval='HTML-CSS' depends='USE_MATHJAX'>
2626       <docs>
2627 <![CDATA[
2628  When MathJax is enabled you can set the default output format to be used for
2629  the MathJax output.
2630  For more details about the output format see <a href="http://docs.mathjax.org/en/v2.7-latest/output.html">MathJax version 2</a>
2631  and <a href="http://docs.mathjax.org/en/latest/web/components/output.html">MathJax version 3</a>.
2632 ]]>
2633       </docs>
2634       <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)"/>
2635       <value name="NativeMML" desc="(i.e. MathML. Only supported for NathJax 2. For MathJax version 3 \c chtml will be used instead.)"/>
2636       <value name="chtml" desc="(This is the name for Mathjax version 3, for MathJax version 2 this will be translated into \c HTML-CSS)"/>
2637       <value name="SVG"/>
2638     </option>
2639     <option type='string' id='MATHJAX_RELPATH' format='string' depends='USE_MATHJAX'>
2640       <docs>
2641 <![CDATA[
2642  When MathJax is enabled you need to specify the location relative to the
2643  HTML output directory using the \c MATHJAX_RELPATH option. The destination
2644  directory should contain the `MathJax.js` script. For instance, if the \c mathjax
2645  directory is located at the same level as the HTML output directory, then
2646  \c MATHJAX_RELPATH should be <code>../mathjax</code>. The default value points to
2647  the MathJax Content Delivery Network so you can quickly see the result without
2648  installing MathJax.  However, it is strongly recommended to install a local
2649  copy of MathJax from https://www.mathjax.org before deployment.
2650
2651  The default value is:
2652  - in case of  MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2
2653  - in case of  MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3
2654 ]]>
2655       </docs>
2656     </option>
2657     <option type='list' id='MATHJAX_EXTENSIONS' format='string' depends='USE_MATHJAX'>
2658       <docs>
2659 <![CDATA[
2660  The \c MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax extension
2661  names that should be enabled during MathJax rendering. For example for MathJax version 2
2662  (see https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions):
2663 \verbatim
2664 MATHJAX_EXTENSIONS     = TeX/AMSmath TeX/AMSsymbols
2665 \endverbatim
2666 For example for MathJax version 3 (see http://docs.mathjax.org/en/latest/input/tex/extensions/index.html):
2667 \verbatim
2668 MATHJAX_EXTENSIONS     = ams
2669 \endverbatim
2670 ]]>
2671       </docs>
2672     </option>
2673     <option type='string' id='MATHJAX_CODEFILE' format='string' depends='USE_MATHJAX'>
2674       <docs>
2675 <![CDATA[
2676  The \c MATHJAX_CODEFILE tag can be used to specify a file with javascript
2677  pieces of code that will be used on startup of the MathJax code.
2678  See
2679 <a href="http://docs.mathjax.org/en/v2.7-latest/output.html">the MathJax site</a>
2680  for more details.
2681 ]]>
2682       </docs>
2683       <docs doxywizard='0' doxyfile='0'>
2684 <![CDATA[
2685  As an example to disable the "Math Renderer" menu item in the "Math
2686  Settings" menu of MathJax:
2687 \verbatim
2688 MATHJAX_CODEFILE = disableRenderer.js
2689 \endverbatim
2690   with in the file <code>disableRenderer.js</code>:
2691 \verbatim
2692   MathJax.Hub.Config({
2693    menuSettings: {
2694     showRenderer: false,
2695    }
2696   });
2697 \endverbatim
2698 ]]>
2699       </docs>
2700       <docs documentation='0'>
2701 <![CDATA[
2702  For an example see the documentation.
2703 ]]>
2704       </docs>
2705     </option>
2706     <option type='bool' id='SEARCHENGINE' defval='1' depends='GENERATE_HTML'>
2707       <docs>
2708 <![CDATA[
2709  When the \c SEARCHENGINE tag is enabled doxygen will generate a search box
2710  for the HTML output. The underlying search engine uses javascript
2711  and DHTML and should work on any modern browser. Note that when using
2712  HTML help (\ref cfg_generate_htmlhelp "GENERATE_HTMLHELP"),
2713  Qt help (\ref cfg_generate_qhp "GENERATE_QHP"), or docsets
2714  (\ref cfg_generate_docset "GENERATE_DOCSET") there is already a search
2715  function so this one should typically be disabled. For large projects
2716  the javascript based search engine can be slow, then enabling
2717  \ref cfg_server_based_search "SERVER_BASED_SEARCH" may provide a
2718  better solution.
2719
2720  It is possible to search using the keyboard;
2721  to jump to the search box use <code>\<access key\> + S</code> (what the <code>\<access key\></code> is
2722  depends on the OS and browser, but it is typically <code>\<CTRL\></code>, <code>\<ALT\></code>/<code>\<option\></code>, or both).
2723  Inside the search box use the <code>\<cursor down key\></code> to jump into the search
2724  results window, the results can be navigated using the <code>\<cursor keys\></code>.
2725  Press <code>\<Enter\></code> to select an item or <code>\<escape\></code> to cancel the search. The
2726  filter options can be selected when the cursor is inside the search box
2727  by pressing <code>\<Shift\>+\<cursor down\></code>. Also here use the <code>\<cursor keys\></code> to
2728  select a filter and <code>\<Enter\></code> or <code>\<escape\></code> to activate or cancel the filter option.
2729 ]]>
2730       </docs>
2731     </option>
2732     <option type='bool' id='SERVER_BASED_SEARCH' defval='0' depends='SEARCHENGINE'>
2733       <docs>
2734 <![CDATA[
2735 When the \c SERVER_BASED_SEARCH tag is enabled the search engine will be
2736 implemented using a web server instead of a web client using JavaScript.
2737
2738 There are two flavors of web server based searching depending on the
2739 \ref cfg_external_search "EXTERNAL_SEARCH" setting. When disabled,
2740 doxygen will generate a PHP script for searching and an index file used
2741 by the script. When \ref cfg_external_search "EXTERNAL_SEARCH" is
2742 enabled the indexing and searching needs to be provided by external tools.
2743 See the section \ref extsearch for details.
2744 ]]>
2745       </docs>
2746     </option>
2747     <option type='bool' id='EXTERNAL_SEARCH' defval='0' depends='SEARCHENGINE'>
2748       <docs>
2749 <![CDATA[
2750  When \c EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
2751  script for searching. Instead the search results are written to an XML file
2752  which needs to be processed by an external indexer. Doxygen will invoke an
2753  external search engine pointed to by the
2754  \ref cfg_searchengine_url "SEARCHENGINE_URL" option to obtain
2755  the search results.
2756  <br>Doxygen ships with an example indexer (\c doxyindexer) and
2757  search engine (<code>doxysearch.cgi</code>) which are based on the open source search
2758  engine library <a href="https://xapian.org/">Xapian</a>.
2759  <br>See the section \ref extsearch for details.
2760 ]]>
2761       </docs>
2762     </option>
2763     <option type='string' id='SEARCHENGINE_URL' format='string' defval='' depends='SEARCHENGINE'>
2764       <docs>
2765 <![CDATA[
2766  The \c SEARCHENGINE_URL should point to a search engine hosted by a web server
2767  which will return the search results when \ref cfg_external_search "EXTERNAL_SEARCH"
2768  is enabled.
2769  <br>Doxygen ships with an example indexer (\c doxyindexer) and
2770  search engine (<code>doxysearch.cgi</code>) which are based on the open source search
2771  engine library <a href="https://xapian.org/">Xapian</a>.
2772  See the section \ref extsearch for details.
2773 ]]>
2774       </docs>
2775     </option>
2776     <option type='string' id='SEARCHDATA_FILE' format='file' defval='searchdata.xml' depends='SEARCHENGINE'>
2777       <docs>
2778 <![CDATA[
2779 When \ref cfg_server_based_search "SERVER_BASED_SEARCH" and
2780 \ref cfg_external_search "EXTERNAL_SEARCH" are both enabled the unindexed
2781 search data is written to a file for indexing by an external tool. With the
2782 \c SEARCHDATA_FILE tag the name of this file can be specified.
2783 ]]>
2784       </docs>
2785     </option>
2786     <option type='string' id='EXTERNAL_SEARCH_ID' format='string' defval='' depends='SEARCHENGINE'>
2787       <docs>
2788 <![CDATA[
2789 When \ref cfg_server_based_search "SERVER_BASED_SEARCH" and
2790 \ref cfg_external_search "EXTERNAL_SEARCH" are both enabled the
2791 \c EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
2792 useful in combination with \ref cfg_extra_search_mappings "EXTRA_SEARCH_MAPPINGS"
2793 to search through multiple projects and redirect the results back to the right project.
2794 ]]>
2795       </docs>
2796     </option>
2797     <option type='list' id='EXTRA_SEARCH_MAPPINGS' format='string' depends='SEARCHENGINE'>
2798       <docs>
2799 <![CDATA[
2800  The \c EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
2801  projects other than the one defined by this configuration file, but that are
2802  all added to the same external search index. Each project needs to have a
2803  unique id set via \ref cfg_external_search_id "EXTERNAL_SEARCH_ID".
2804  The search mapping then maps the id of to a relative location where the
2805  documentation can be found.
2806
2807  The format is:
2808 \verbatim
2809 EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
2810 \endverbatim
2811 ]]>
2812       </docs>
2813     </option>
2814   </group>
2815   <group name='LaTeX' docs='Configuration options related to the LaTeX output'>
2816     <option type='bool' id='GENERATE_LATEX' defval='1'>
2817       <docs>
2818 <![CDATA[
2819  If the \c GENERATE_LATEX tag is set to \c YES, doxygen will
2820  generate \f$\mbox{\LaTeX}\f$ output.
2821 ]]>
2822       </docs>
2823     </option>
2824     <option type='string' id='LATEX_OUTPUT' format='dir' defval='latex' depends='GENERATE_LATEX'>
2825       <docs>
2826 <![CDATA[
2827  The \c LATEX_OUTPUT tag is used to specify where the \f$\mbox{\LaTeX}\f$
2828  docs will be put.
2829  If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
2830  put in front of it.
2831 ]]>
2832       </docs>
2833     </option>
2834     <option type='string' id='LATEX_CMD_NAME' format='file' defval='' depends='GENERATE_LATEX'>
2835       <docs>
2836 <![CDATA[
2837  The \c LATEX_CMD_NAME tag can be used to specify the \f$\mbox{\LaTeX}\f$ command name to be invoked.
2838  <br>Note that when  not enabling \ref cfg_use_pdflatex "USE_PDFLATEX" the default is \c latex when
2839  enabling \ref cfg_use_pdflatex "USE_PDFLATEX" the default is \c pdflatex and when in the later case
2840  \c latex is chosen this is overwritten by \c pdflatex. For specific output languages the default can
2841  have been set differently, this depends on the implementation of the output language.
2842 ]]>
2843       </docs>
2844     </option>
2845     <option type='string' id='MAKEINDEX_CMD_NAME' format='file' defval='makeindex' depends='GENERATE_LATEX'>
2846       <docs>
2847 <![CDATA[
2848  The \c MAKEINDEX_CMD_NAME tag can be used to specify the command name to
2849  generate index for \f$\mbox{\LaTeX}\f$.
2850
2851  @note This tag is used in the `Makefile` / `make.bat`.
2852  \sa  \ref cfg_latex_makeindex_cmd "LATEX_MAKEINDEX_CMD" for the part in the generated output file (`.tex`).
2853 ]]>
2854       </docs>
2855     </option>
2856     <option type='string' id='LATEX_MAKEINDEX_CMD' defval='makeindex' depends='GENERATE_LATEX'>
2857       <docs>
2858 <![CDATA[
2859  The \c LATEX_MAKEINDEX_CMD tag can be used to specify the command name to
2860  generate index for \f$\mbox{\LaTeX}\f$. In case there is no backslash (`\`) as first character it
2861  will be automatically added in the \f$\mbox{\LaTeX}\f$ code.
2862
2863  @note This tag is used in the generated output file (`.tex`).
2864  \sa  \ref cfg_makeindex_cmd_name "MAKEINDEX_CMD_NAME" for the part in the `Makefile` / `make.bat`.
2865 ]]>
2866       </docs>
2867     </option>
2868     <option type='bool' id='COMPACT_LATEX' defval='0' depends='GENERATE_LATEX'>
2869       <docs>
2870 <![CDATA[
2871  If the \c COMPACT_LATEX tag is set to \c YES, doxygen generates more compact
2872  \f$\mbox{\LaTeX}\f$ documents. This may be useful for small projects and may help to
2873  save some trees in general.
2874 ]]>
2875       </docs>
2876     </option>
2877     <option type='enum' id='PAPER_TYPE' defval='a4' depends='GENERATE_LATEX'>
2878       <docs>
2879 <![CDATA[
2880  The \c PAPER_TYPE tag can be used to set the paper type that is used
2881  by the printer.
2882 ]]>
2883       </docs>
2884       <value name='a4' desc='(210 x 297 mm)'/>
2885       <value name='letter' desc='(8.5 x 11 inches)'/>
2886       <value name='legal' desc='(8.5 x 14 inches)'/>
2887       <value name='executive' desc='(7.25 x 10.5 inches)'/>
2888     </option>
2889     <option type='list' id='EXTRA_PACKAGES' format='string' depends='GENERATE_LATEX'>
2890       <docs>
2891 <![CDATA[
2892  The \c EXTRA_PACKAGES tag can be used to specify one or more \f$\mbox{\LaTeX}\f$
2893  package names that should be included in the \f$\mbox{\LaTeX}\f$ output. The package
2894  can be specified just by its name or with the correct syntax as to be used with the
2895  \f$\mbox{\LaTeX}\f$ `\usepackage` command.
2896
2897  To get the `times` font for instance you can specify :
2898 \verbatim
2899   EXTRA_PACKAGES=times
2900 or
2901   EXTRA_PACKAGES={times}
2902 \endverbatim
2903  To use the option `intlimits` with the `amsmath` package you can specify:
2904 \verbatim
2905    EXTRA_PACKAGES=[intlimits]{amsmath}
2906 \endverbatim
2907  If left blank no extra packages will be included.
2908 ]]>
2909       </docs>
2910     </option>
2911     <option type='string' id='LATEX_HEADER' format='file' defval='' depends='GENERATE_LATEX'>
2912       <docs>
2913 <![CDATA[
2914  The \c LATEX_HEADER tag can be used to specify a user-defined \f$\mbox{\LaTeX}\f$
2915  header for the generated \f$\mbox{\LaTeX}\f$ document.
2916  The header should contain everything until the first chapter.
2917  If it is left blank doxygen will generate a
2918  standard header.
2919
2920  It is highly recommended to start with a default header using
2921 \verbatim
2922 doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty
2923 \endverbatim
2924  and then modify the file \c new_header.tex.
2925
2926  See also section \ref doxygen_usage for information on how to generate
2927  the default header that doxygen normally uses.
2928
2929  <br>Note: Only use a user-defined header if you know what you are doing!
2930
2931  @note The header is subject to change so you typically
2932  have to regenerate the default header when upgrading to a newer version of
2933  doxygen.
2934  The following commands have a special meaning inside the header (and footer):
2935 ]]>
2936       </docs>
2937       <docs doxywizard='0' doxyfile='0'>
2938 <![CDATA[
2939  <dl>
2940  <dt><code>$title</code><dd>will be replaced with the project name.
2941  <dt><code>$datetime</code><dd>will be replaced with current the date and time.
2942  <dt><code>$date</code><dd>will be replaced with the current date.
2943  <dt><code>$year</code><dd>will be replaces with the current year.
2944  <dt><code>$doxygenversion</code><dd>will be replaced with the version of doxygen
2945  <dt><code>$projectname</code><dd>will be replaced with the name of
2946            the project (see \ref cfg_project_name "PROJECT_NAME")
2947  <dt><code>$projectnumber</code><dd>will be replaced with the project number
2948            (see \ref cfg_project_number "PROJECT_NUMBER")
2949  <dt><code>$projectbrief</code><dd>will be replaced with the project brief
2950            description (see \ref cfg_project_brief "PROJECT_BRIEF")
2951  <dt><code>$projectlogo</code><dd>will be replaced with the project logo
2952            (see \ref cfg_project_logo "PROJECT_LOGO")
2953  <dt><code>$latexdocumentpre</code><dd>will be replaced by an output language dependent setting
2954            e.g. embed the entire document in a special environment (for Chinese, Japanese etc.)
2955            Commonly used together with `$latexdocumentpost` in the footer.
2956  <dt><code>$latexdocumentpost</code><dd>will be replaced by an output language dependent setting
2957            e.g. embed the entire document in a special environment (for Chinese, Japanese etc.)
2958            Commonly used together with `$latexdocumentpre` in the header.
2959  <dt><code>$generatedby</code><dd>will be replaced with the output language dependent
2960            version of the text "Generated by" or when the
2961            \ref cfg_latex_timestamp "LATEX_TIMESTAMP" is set by the output language
2962            dependent version of the text &quot;Generated on `$datetime` for `$projectname` by&quot;.
2963  <dt><code>$latexcitereference</code><dd>will be replaced by the output language dependent$
2964            version of the word "Bibliography".
2965            This setting is typically used in combination with the block name `CITATIONS_PRESENT`.
2966  <dt><code>$latexbibstyle</code><dd>will be replaced with the latex bib style to be used as
2967            set by \ref cfg_latex_bib_style "LATEX_BIB_STYLE", in case nothing is set the bib style
2968            `plain` is used.
2969            This setting is typically used in combination with the block name `CITATIONS_PRESENT`.
2970  <dt><code>$latexbibfiles</code><dd>will be replaced by the comma separated list of `bib`. files
2971            as set by \ref cfg_cite_bib_files "CITE_BIB_FILES" (when necessary a missing `.bib` is
2972            automatically added).
2973            This setting is typically used in combination with the block name `CITATIONS_PRESENT`.
2974  <dt><code>$papertype</code><dd>will be replaced by the paper type as set in
2975            \ref cfg_paper_type "PAPER_TYPE" and the word "paper" is directly appended to it to have
2976            a correct \f$\mbox{\LaTeX}\f$ paper type.
2977  <dt><code>$langISO</code><dd>will be replaced by the ISO language name.
2978  <dt><code>$languagesupport</code><dd>will be replaced by an output language dependent setting
2979            of packages required for translating terms of the specified language.
2980  <dt><code>$latexfontenc</code><dd>will be replaced by an output language dependent setting
2981            of the fontencoding to be used.
2982            This setting is typically used in combination with the block name `LATEX_FONTENC`.
2983  <dt><code>$latexfont</code><dd>will be replaced by an output language dependent setting
2984            of the fonts to be used.
2985  <dt><code>$latexemojidirectory</code><dd>will be replaced by the directory as set in
2986            \ref cfg_latex_emoji_directory "LATEX_EMOJI_DIRECTORY" with the backslashes replaced by
2987            forward slashes (so usable by \f$\mbox{\LaTeX}\f$). In case the
2988            \ref cfg_latex_emoji_directory "LATEX_EMOJI_DIRECTORY" is
2989            empty, the current directory will be used.
2990  <dt><code>$makeindex</code><dd>will be replaced by the command as set in
2991            \ref cfg_latex_makeindex_cmd "LATEX_MAKEINDEX_CMD". Then the command doesn't start with
2992            a backslash, a backslash is automatically prepended. In case the setting is empty the
2993            command `\makeindex` is used.
2994  <dt><code>$extralatexpackages</code><dd>will be replaced by commands for using the packages set
2995            in \ref cfg_extra_packages "EXTRA_PACKAGES".
2996  <dt><code>$extralatexstylesheet</code><dd>will be replaced by commands for using the packages set
2997            in \ref cfg_latex_extra_stylesheet "LATEX_EXTRA_STYLESHEET" (when the extension is the default
2998            extension, `.sty`, this extension is stripped for the package name).
2999  <dt><code>$latexspecialformulachars</code><dd>will be replaced by the code for some special
3000            unicode characters that are commonly used (i.e. superscript minus, superscript 2 and superscript 3)
3001  <dt><code>$formulamacrofile</code><dd>will be replaced by the name of the file as set
3002            in \ref cfg_formula_macrofile "FORMULA_MACROFILE".
3003            This setting is typically used in combination with the block name `FORMULA_MACROFILE`.
3004  </dl>
3005
3006 To cope with differences in the layout of the header and footer that depend on
3007  configuration settings, the header and footer can also contain special blocks that
3008  will be copied to the output or skipped depending on the configuration.
3009  Such blocks have the following form:
3010 \verbatim
3011  %%BEGIN BLOCKNAME
3012  Some context copied when condition BLOCKNAME holds
3013  %%END BLOCKNAME
3014  %%BEGIN !BLOCKNAME
3015  Some context copied when condition BLOCKNAME does not hold
3016  %%END !BLOCKNAME
3017 \endverbatim
3018 The following block names are set based on the used settings in the
3019  configuration file:
3020  <dl>
3021  <dt><code>COMPACT_LATEX</code><dd>Content within this block is copied to the output
3022      when the \ref cfg_compact_latex "COMPACT_LATEX" option is enabled.
3023  <dt><code>PDF_HYPERLINKS</code><dd>Content within this block is copied to the output
3024      when the \ref cfg_pdf_hyperlinks "PDF_HYPERLINKS" option is enabled.
3025  <dt><code>USE_PDFLATEX</code><dd>Content within this block is copied to the output
3026      when the \ref cfg_use_pdflatex "USE_PDFLATEX" option is enabled.
3027  <dt><code>LATEX_BATCHMODE</code><dd>Content within this block is copied to the output
3028      when the \ref cfg_latex_batchmode "LATEX_BATCHMODE" option is enabled.
3029  <dt><code>LATEX_TIMESTAMP</code><dd>Content within this block is copied to the output
3030      when the \ref cfg_latex_timestamp "LATEX_TIMESTAMP" option is enabled.
3031  </dl>
3032 The following block names are set based on the fact whether or not the tag has a
3033  value in the used configuration file:
3034  <dl>
3035  <dt><code>LATEX_FONTENC</code><dd>Content within this block is copied to the output
3036      when the doxygen latex translator function returns a value for the font encoding
3037      to be used. It is to be used in combination with the above mentioned `$latexfontenc`.
3038  <dt><code>FORMULA_MACROFILE</code><dd>Content within this block is copied to the output
3039      when the \ref cfg_formula_macrofile "FORMULA_MACROFILE" option is not empty. It is
3040      to be used in combination with the above mentioned `$formulamacrofile`.
3041  </dl>
3042 The following block name is set based on whether or not a feature is used in the
3043  documentation:
3044  <dl>
3045  <dt><code>CITATIONS_PRESENT</code><dd>Content within this block is copied to the output
3046      when in the documentation citations are present and the relevant .. are present.
3047      It is to be used in combination with the above mentioned `$latexcitereference`,
3048      `$latexbibstyle` and `$latexbibfiles`.
3049  </dl>
3050 ]]>
3051       </docs>
3052       <docs documentation='0'>
3053 <![CDATA[
3054  For a description of the possible markers and block names see the documentation.
3055 ]]>
3056       </docs>
3057     </option>
3058     <option type='string' id='LATEX_FOOTER' format='file' defval='' depends='GENERATE_LATEX'>
3059       <docs>
3060 <![CDATA[
3061  The \c LATEX_FOOTER tag can be used to specify a user-defined \f$\mbox{\LaTeX}\f$ footer for
3062  the generated \f$\mbox{\LaTeX}\f$ document. The footer should contain everything after
3063  the last chapter. If it is left blank doxygen will generate a
3064  standard footer.
3065
3066  See \ref cfg_latex_header "LATEX_HEADER" for more information on
3067  how to generate a default footer and what special commands can be
3068  used inside the footer.
3069
3070  See also section \ref doxygen_usage for information on how to generate
3071  the default footer that doxygen normally uses.
3072
3073  Note: Only use a user-defined footer if you know what you are doing!
3074 ]]>
3075       </docs>
3076     </option>
3077     <option type='list' id='LATEX_EXTRA_STYLESHEET' format='file' defval='' depends='GENERATE_LATEX'>
3078       <docs>
3079 <![CDATA[
3080  The \c LATEX_EXTRA_STYLESHEET tag can be used to specify additional
3081  user-defined \f$\mbox{\LaTeX}\f$ style sheets that are included after the standard
3082  style sheets created by doxygen. Using this option one can overrule
3083  certain style aspects. Doxygen will copy the style sheet files to
3084  the output directory.
3085  \note The order of the extra style sheet files is of importance (e.g. the last
3086  style sheet in the list overrules the setting of the previous ones in the list).
3087 ]]>
3088       </docs>
3089     </option>
3090     <option type='list' id='LATEX_EXTRA_FILES' format='file' depends='GENERATE_LATEX'>
3091       <docs>
3092 <![CDATA[
3093  The \c LATEX_EXTRA_FILES tag can be used to specify one or more extra images
3094  or other source files which should be copied to the \ref cfg_latex_output "LATEX_OUTPUT"
3095  output directory.
3096  Note that the files will be copied as-is; there are no commands or markers
3097  available.
3098 ]]>
3099       </docs>
3100     </option>
3101     <option type='bool' id='PDF_HYPERLINKS' defval='1' depends='GENERATE_LATEX'>
3102       <docs>
3103 <![CDATA[
3104  If the \c PDF_HYPERLINKS tag is set to \c YES, the \f$\mbox{\LaTeX}\f$ that
3105  is generated is prepared for conversion to PDF (using \c ps2pdf or \c pdflatex).
3106  The PDF file will
3107  contain links (just like the HTML output) instead of page references.
3108  This makes the output suitable for online browsing using a PDF viewer.
3109 ]]>
3110       </docs>
3111     </option>
3112     <option type='bool' id='USE_PDFLATEX' defval='1' depends='GENERATE_LATEX'>
3113       <docs>
3114 <![CDATA[
3115  If the \c USE_PDFLATEX tag is set to \c YES, doxygen will use the engine
3116  as specified with \ref cfg_latex_cmd_name "LATEX_CMD_NAME"
3117  to generate the PDF file directly from the \f$\mbox{\LaTeX}\f$
3118  files.  Set this option to \c YES, to get a higher quality PDF documentation.
3119 <br>
3120  See also section \ref cfg_latex_cmd_name "LATEX_CMD_NAME" for selecting the engine.
3121 ]]>
3122       </docs>
3123     </option>
3124     <option type='bool' id='LATEX_BATCHMODE' defval='0' depends='GENERATE_LATEX'>
3125       <docs>
3126 <![CDATA[
3127  If the \c LATEX_BATCHMODE tag is set to \c YES, doxygen will add the \c \\batchmode
3128  command to the generated \f$\mbox{\LaTeX}\f$ files. This will
3129  instruct \f$\mbox{\LaTeX}\f$ to keep running if errors occur, instead of
3130  asking the user for help.
3131 ]]>
3132       </docs>
3133     </option>
3134     <option type='bool' id='LATEX_HIDE_INDICES' defval='0' depends='GENERATE_LATEX'>
3135       <docs>
3136 <![CDATA[
3137  If the \c LATEX_HIDE_INDICES tag is set to \c YES then doxygen will not
3138  include the index chapters (such as File Index, Compound Index, etc.)
3139  in the output.
3140 ]]>
3141       </docs>
3142     </option>
3143     <option type='string' id='LATEX_BIB_STYLE' format='string' defval='plain' depends='GENERATE_LATEX'>
3144       <docs>
3145 <![CDATA[
3146  The \c LATEX_BIB_STYLE tag can be used to specify the style to use for the
3147  bibliography, e.g. \c plainnat, or \c ieeetr.
3148  See https://en.wikipedia.org/wiki/BibTeX and \ref cmdcite "\\cite"
3149  for more info.
3150 ]]>
3151       </docs>
3152     </option>
3153     <option type='bool' id='LATEX_TIMESTAMP' defval='0' depends='GENERATE_LATEX'>
3154       <docs>
3155 <![CDATA[
3156  If the \c LATEX_TIMESTAMP tag is set to \c YES then the footer of
3157  each generated page will contain the date and time when the page
3158  was generated. Setting this to \c NO can help when comparing the output of
3159  multiple runs.
3160 ]]>
3161       </docs>
3162     </option>
3163     <option type='string' id='LATEX_EMOJI_DIRECTORY' format='dir' defval='' depends='GENERATE_LATEX'>
3164       <docs>
3165 <![CDATA[
3166  The \c LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)
3167  path from which the emoji images will be read.
3168  If a relative path is entered, it will be relative to the \ref cfg_latex_output "LATEX_OUTPUT"
3169  directory. If left blank the \ref cfg_latex_output "LATEX_OUTPUT" directory will be used.
3170 ]]>
3171       </docs>
3172     </option>
3173   </group>
3174   <group name='RTF' docs='Configuration options related to the RTF output'>
3175     <option type='bool' id='GENERATE_RTF' defval='0'>
3176       <docs>
3177 <![CDATA[
3178  If the \c GENERATE_RTF tag is set to \c YES, doxygen will generate RTF output.
3179  The RTF output is optimized for Word 97 and may not look too pretty with
3180  other RTF readers/editors.
3181 ]]>
3182       </docs>
3183     </option>
3184     <option type='string' id='RTF_OUTPUT' format='dir' defval='rtf' depends='GENERATE_RTF'>
3185       <docs>
3186 <![CDATA[
3187  The \c RTF_OUTPUT tag is used to specify where the RTF docs will be put.
3188  If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
3189  put in front of it.
3190 ]]>
3191       </docs>
3192     </option>
3193     <option type='bool' id='COMPACT_RTF' defval='0' depends='GENERATE_RTF'>
3194       <docs>
3195 <![CDATA[
3196  If the \c COMPACT_RTF tag is set to \c YES, doxygen generates more compact
3197  RTF documents. This may be useful for small projects and may help to
3198  save some trees in general.
3199 ]]>
3200       </docs>
3201     </option>
3202     <option type='bool' id='RTF_HYPERLINKS' defval='0' depends='GENERATE_RTF'>
3203       <docs>
3204 <![CDATA[
3205  If the \c RTF_HYPERLINKS tag is set to \c YES, the RTF that is generated
3206  will contain hyperlink fields. The RTF file will
3207  contain links (just like the HTML output) instead of page references.
3208  This makes the output suitable for online browsing using Word or some other
3209  Word compatible readers that support those fields.
3210
3211  <br>Note: WordPad (write) and others do not support links.
3212 ]]>
3213       </docs>
3214     </option>
3215     <option type='string' id='RTF_STYLESHEET_FILE' format='file' defval='' depends='GENERATE_RTF'>
3216       <docs>
3217 <![CDATA[
3218  Load stylesheet definitions from file. Syntax is similar to doxygen's
3219  configuration file, i.e. a series of assignments. You only have to provide
3220  replacements, missing definitions are set to their default value.
3221 <br>
3222  See also section \ref doxygen_usage for information on how to generate
3223  the default style sheet that doxygen normally uses.
3224
3225 ]]>
3226       </docs>
3227     </option>
3228     <option type='string' id='RTF_EXTENSIONS_FILE' format='file' defval='' depends='GENERATE_RTF'>
3229       <docs>
3230 <![CDATA[
3231  Set optional variables used in the generation of an RTF document.
3232  Syntax is similar to doxygen's configuration file.
3233  A template extensions file can be generated using
3234  <code>doxygen -e rtf extensionFile</code>.
3235 ]]>
3236       </docs>
3237     </option>
3238   </group>
3239   <group name='Man' docs='Configuration options related to the man page output'>
3240     <option type='bool' id='GENERATE_MAN' defval='0'>
3241       <docs>
3242 <![CDATA[
3243  If the \c GENERATE_MAN tag is set to \c YES, doxygen will
3244  generate man pages for classes and files.
3245 ]]>
3246       </docs>
3247     </option>
3248     <option type='string' id='MAN_OUTPUT' format='dir' defval='man' depends='GENERATE_MAN'>
3249       <docs>
3250 <![CDATA[
3251  The \c MAN_OUTPUT tag is used to specify where the man pages will be put.
3252  If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
3253  put in front of it.
3254  A directory \c man3 will be created inside the directory specified by
3255  \c MAN_OUTPUT.
3256 ]]>
3257       </docs>
3258     </option>
3259     <option type='string' id='MAN_EXTENSION' format='string' defval='.3' depends='GENERATE_MAN'>
3260       <docs>
3261 <![CDATA[
3262  The \c MAN_EXTENSION tag determines the extension that is added to
3263  the generated man pages. In case
3264  the manual section does not start with a number, the number 3 is prepended.
3265  The dot (.) at the beginning of the \c MAN_EXTENSION tag is optional.
3266 ]]>
3267       </docs>
3268     </option>
3269     <option type='string' id='MAN_SUBDIR' format='string' defval='' depends='GENERATE_MAN'>
3270       <docs>
3271 <![CDATA[
3272  The \c MAN_SUBDIR tag determines the name of the directory created within \c MAN_OUTPUT
3273  in which the man pages are placed. If defaults to man followed by \c MAN_EXTENSION
3274  with the initial . removed.
3275 ]]>
3276       </docs>
3277     </option>
3278     <option type='bool' id='MAN_LINKS' defval='0' depends='GENERATE_MAN'>
3279       <docs>
3280 <![CDATA[
3281  If the \c MAN_LINKS tag is set to \c YES and doxygen generates man output,
3282  then it will generate one additional man file for each entity documented in
3283  the real man page(s). These additional files only source the real man page,
3284  but without them the \c man command would be unable to find the correct page.
3285 ]]>
3286       </docs>
3287     </option>
3288   </group>
3289   <group name='XML' docs='Configuration options related to the XML output'>
3290     <option type='bool' id='GENERATE_XML' defval='0'>
3291       <docs>
3292 <![CDATA[
3293  If the \c GENERATE_XML tag is set to \c YES, doxygen will
3294  generate an XML file that captures the structure of
3295  the code including all documentation.
3296 ]]>
3297       </docs>
3298     </option>
3299     <option type='string' id='XML_OUTPUT' format='dir' defval='xml' depends='GENERATE_XML'>
3300       <docs>
3301 <![CDATA[
3302  The \c XML_OUTPUT tag is used to specify where the XML pages will be put.
3303  If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
3304  put in front of it.
3305 ]]>
3306       </docs>
3307     </option>
3308     <option type='bool' id='XML_PROGRAMLISTING' defval='1' depends='GENERATE_XML'>
3309       <docs>
3310 <![CDATA[
3311  If the \c XML_PROGRAMLISTING tag is set to \c YES, doxygen will
3312  dump the program listings (including syntax highlighting
3313  and cross-referencing information) to the XML output. Note that
3314  enabling this will significantly increase the size of the XML output.
3315 ]]>
3316       </docs>
3317     </option>
3318     <option type='bool' id='XML_NS_MEMB_FILE_SCOPE' defval='0' depends='GENERATE_XML'>
3319       <docs>
3320 <![CDATA[
3321  If the \c XML_NS_MEMB_FILE_SCOPE tag is set to \c YES, doxygen
3322  will include namespace members in file scope as well, matching the HTML
3323  output.
3324 ]]>
3325       </docs>
3326     </option>
3327   </group>
3328   <group name='Docbook' docs='Configuration options related to the DOCBOOK output'>
3329     <option type='bool' id='GENERATE_DOCBOOK' defval='0'>
3330       <docs>
3331 <![CDATA[
3332 If the \c GENERATE_DOCBOOK tag is set to \c YES, doxygen will generate Docbook files
3333 that can be used to generate PDF.
3334 ]]>
3335       </docs>
3336     </option>
3337     <option type='string' id='DOCBOOK_OUTPUT' format='dir' defval='docbook' depends='GENERATE_DOCBOOK'>
3338       <docs>
3339 <![CDATA[
3340 The \c DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
3341 If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be put in
3342 front of it.
3343 ]]>
3344       </docs>
3345     </option>
3346   </group>
3347   <group name='AutoGen' docs='Configuration options for the AutoGen Definitions output'>
3348     <option type='bool' id='GENERATE_AUTOGEN_DEF' defval='0'>
3349       <docs>
3350 <![CDATA[
3351  If the \c GENERATE_AUTOGEN_DEF tag is set to \c YES, doxygen will
3352  generate an AutoGen Definitions (see http://autogen.sourceforge.net/) file
3353  that captures the structure of the code including all
3354  documentation. Note that this feature is still experimental
3355  and incomplete at the moment.
3356 ]]>
3357       </docs>
3358     </option>
3359   </group>
3360   <group name='Sqlite3' setting='USE_SQLITE3' docs='Configuration options related to Sqlite3 output'>
3361     <option type='bool' id='GENERATE_SQLITE3' setting='USE_SQLITE3' defval='0'>
3362       <docs>
3363 <![CDATA[
3364 If the \c GENERATE_SQLITE3 tag is set to \c YES doxygen will generate a
3365 \c Sqlite3 database with symbols found by doxygen stored in tables.
3366
3367   @note The availability of this option depends on whether or not doxygen
3368   was generated with the `-Duse_sqlite3=ON` option for CMake.
3369 ]]>
3370       </docs>
3371     </option>
3372     <option type='string' id='SQLITE3_OUTPUT' format='dir' defval='sqlite3' setting='USE_SQLITE3' depends='GENERATE_SQLITE3'>
3373       <docs>
3374 <![CDATA[
3375 The \c SQLITE3_OUTPUT tag is used to specify where the \c Sqlite3 database will be put.
3376 If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be
3377 put in front of it.
3378
3379   @note The availability of this option depends on whether or not doxygen
3380   was generated with the `-Duse_sqlite3=ON` option for CMake.
3381 ]]>
3382       </docs>
3383     </option>
3384     <option type='bool' id='SQLITE3_RECREATE_DB' defval='1' setting='USE_SQLITE3' depends='GENERATE_SQLITE3'>
3385       <docs>
3386 <![CDATA[
3387 The \c SQLITE3_OVERWRITE_DB tag is set to \c YES, the existing doxygen_sqlite3.db
3388 database file will be recreated with each doxygen run.
3389 If set to \c NO, doxygen will warn if an a database file is already found and not modify it.
3390
3391   @note The availability of this option depends on whether or not doxygen
3392   was generated with the `-Duse_sqlite3=ON` option for CMake.
3393 ]]>
3394       </docs>
3395     </option>
3396
3397   </group>
3398   <group name='PerlMod' docs='Configuration options related to the Perl module output'>
3399     <option type='bool' id='GENERATE_PERLMOD' defval='0'>
3400       <docs>
3401 <![CDATA[
3402  If the \c GENERATE_PERLMOD tag is set to \c YES, doxygen will
3403  generate a Perl module file that captures the structure of
3404  the code including all documentation.
3405  <br>Note that this
3406  feature is still experimental and incomplete at the
3407  moment.
3408 ]]>
3409       </docs>
3410     </option>
3411     <option type='bool' id='PERLMOD_LATEX' defval='0' depends='GENERATE_PERLMOD'>
3412       <docs>
3413 <![CDATA[
3414  If the \c PERLMOD_LATEX tag is set to \c YES, doxygen will generate
3415  the necessary \c Makefile rules, \c Perl scripts and \f$\mbox{\LaTeX}\f$ code to be able
3416  to generate PDF and DVI output from the Perl module output.
3417 ]]>
3418       </docs>
3419     </option>
3420     <option type='bool' id='PERLMOD_PRETTY' defval='1' depends='GENERATE_PERLMOD'>
3421       <docs>
3422 <![CDATA[
3423  If the \c PERLMOD_PRETTY tag is set to \c YES, the Perl module output will be
3424  nicely formatted so it can be parsed by a human reader.  This is useful
3425  if you want to understand what is going on. On the other hand, if this
3426  tag is set to \c NO, the size of the Perl module output will be much smaller
3427  and Perl will parse it just the same.
3428 ]]>
3429       </docs>
3430     </option>
3431     <option type='string' id='PERLMOD_MAKEVAR_PREFIX' format='string' defval='' depends='GENERATE_PERLMOD'>
3432       <docs>
3433 <![CDATA[
3434  The names of the make variables in the generated `doxyrules.make` file
3435  are prefixed with the string contained in \c PERLMOD_MAKEVAR_PREFIX.
3436  This is useful so different `doxyrules.make` files included by the same
3437  `Makefile` don't overwrite each other's variables.
3438 ]]>
3439       </docs>
3440     </option>
3441   </group>
3442   <group name='Preprocessor' docs='Configuration options related to the preprocessor'>
3443     <option type='bool' id='ENABLE_PREPROCESSING' defval='1'>
3444       <docs>
3445 <![CDATA[
3446  If the \c ENABLE_PREPROCESSING tag is set to \c YES, doxygen will
3447  evaluate all C-preprocessor directives found in the sources and include
3448  files.
3449 ]]>
3450       </docs>
3451     </option>
3452     <option type='bool' id='MACRO_EXPANSION' defval='0' depends='ENABLE_PREPROCESSING'>
3453       <docs>
3454 <![CDATA[
3455  If the \c MACRO_EXPANSION tag is set to \c YES, doxygen will expand all macro
3456  names in the source code. If set to \c NO, only conditional
3457  compilation will be performed. Macro expansion can be done in a controlled
3458  way by setting \ref cfg_expand_only_predef "EXPAND_ONLY_PREDEF" to \c YES.
3459 ]]>
3460       </docs>
3461     </option>
3462     <option type='bool' id='EXPAND_ONLY_PREDEF' defval='0' depends='ENABLE_PREPROCESSING'>
3463       <docs>
3464 <![CDATA[
3465  If the \c EXPAND_ONLY_PREDEF and \ref cfg_macro_expansion "MACRO_EXPANSION" tags are both set to \c YES
3466  then the macro expansion is limited to the macros specified with the
3467  \ref cfg_predefined "PREDEFINED" and \ref cfg_expand_as_defined "EXPAND_AS_DEFINED" tags.
3468 ]]>
3469       </docs>
3470     </option>
3471     <option type='bool' id='SEARCH_INCLUDES' defval='1' depends='ENABLE_PREPROCESSING'>
3472       <docs>
3473 <![CDATA[
3474  If the \c SEARCH_INCLUDES tag is set to \c YES, the include files
3475  in the \ref cfg_include_path "INCLUDE_PATH" will be searched if a \c \#include is found.
3476 ]]>
3477       </docs>
3478     </option>
3479     <option type='list' id='INCLUDE_PATH' format='dir' depends='SEARCH_INCLUDES'>
3480       <docs>
3481 <![CDATA[
3482  The \c INCLUDE_PATH tag can be used to specify one or more directories that
3483  contain include files that are not input files but should be processed by
3484  the preprocessor.
3485
3486  Note that the \c INCLUDE_PATH is not recursive, so the setting of \ref cfg_recursive "RECURSIVE" 
3487  has no effect here.
3488 ]]>
3489       </docs>
3490     </option>
3491     <option type='list' id='INCLUDE_FILE_PATTERNS' format='string' depends='ENABLE_PREPROCESSING'>
3492       <docs>
3493 <![CDATA[
3494  You can use the \c INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
3495  patterns (like `*.h` and `*.hpp`) to filter out the header-files in the
3496  directories. If left blank, the patterns specified with \ref cfg_file_patterns "FILE_PATTERNS" will
3497  be used.
3498 ]]>
3499       </docs>
3500     </option>
3501     <option type='list' id='PREDEFINED' format='string' depends='ENABLE_PREPROCESSING'>
3502       <docs>
3503 <![CDATA[
3504  The \c PREDEFINED tag can be used to specify one or more macro names that
3505  are defined before the preprocessor is started (similar to the `-D` option of
3506  e.g. \c gcc). The argument of the tag is a list of macros of the form:
3507  <code>name</code> or <code>name=definition</code> (no spaces).
3508  If the definition and the \c "=" are omitted,  \c "=1" is assumed. To prevent
3509  a macro definition from being undefined via \c \#undef or recursively expanded
3510  use the <code>:=</code> operator instead of the \c = operator.
3511 ]]>
3512       </docs>
3513     </option>
3514     <option type='list' id='EXPAND_AS_DEFINED' format='string' depends='ENABLE_PREPROCESSING'>
3515       <docs>
3516 <![CDATA[
3517  If the \ref cfg_macro_expansion "MACRO_EXPANSION" and
3518  \ref cfg_expand_only_predef "EXPAND_ONLY_PREDEF" tags are set to \c YES then
3519  this tag can be used to specify a list of macro names that should be expanded.
3520  The macro definition that is found in the sources will be used.
3521  Use the \ref cfg_predefined "PREDEFINED" tag if you want to use a different macro definition that
3522  overrules the definition found in the source code.
3523 ]]>
3524       </docs>
3525     </option>
3526     <option type='bool' id='SKIP_FUNCTION_MACROS' defval='1' depends='ENABLE_PREPROCESSING'>
3527       <docs>
3528 <![CDATA[
3529  If the \c SKIP_FUNCTION_MACROS tag is set to \c YES then
3530  doxygen's preprocessor will remove all references to function-like macros that are alone
3531  on a line, have an all uppercase name, and do not end with a semicolon.
3532  Such function macros are typically
3533  used for boiler-plate code, and will confuse the parser if not removed.
3534 ]]>
3535       </docs>
3536     </option>
3537   </group>
3538   <group name='External' docs='Configuration options related to external references'>
3539     <option type='list' id='TAGFILES' format='file'>
3540       <docs>
3541 <![CDATA[
3542  The \c TAGFILES tag can be used to specify one or more tag files.
3543
3544 For each
3545 tag file the location of the external documentation should be added. The
3546 format of a tag file without this location is as follows:
3547 \verbatim
3548   TAGFILES = file1 file2 ...
3549 \endverbatim
3550 Adding location for the tag files is done as follows:
3551 \verbatim
3552   TAGFILES = file1=loc1 "file2 = loc2" ...
3553 \endverbatim
3554 where `loc1` and `loc2` can be relative or absolute paths or URLs.
3555  See the section \ref external for more information about the use of tag files.
3556
3557  \note
3558   Each tag file must have a unique name
3559   (where the name does \e NOT include the path).
3560   If a tag file is not located in the directory in which doxygen
3561   is run, you must also specify the path to the tagfile here.
3562 ]]>
3563       </docs>
3564     </option>
3565     <option type='string' id='GENERATE_TAGFILE' format='file' defval=''>
3566       <docs>
3567 <![CDATA[
3568  When a file name is specified after \c GENERATE_TAGFILE, doxygen will create
3569  a tag file that is based on the input files it reads.
3570  See section \ref external for more information about the usage of
3571  tag files.
3572 ]]>
3573       </docs>
3574     </option>
3575     <option type='bool' id='ALLEXTERNALS' defval='0'>
3576       <docs>
3577 <![CDATA[
3578  If the \c ALLEXTERNALS tag is set to \c YES, all external class will be listed
3579  in the class index. If set to \c NO, only the inherited external classes
3580  will be listed.
3581 ]]>
3582       </docs>
3583     </option>
3584     <option type='bool' id='EXTERNAL_GROUPS' defval='1'>
3585       <docs>
3586 <![CDATA[
3587  If the \c EXTERNAL_GROUPS tag is set to \c YES, all external groups will be listed
3588  in the modules index. If set to \c NO, only the current project's groups will
3589  be listed.
3590 ]]>
3591       </docs>
3592     </option>
3593     <option type='bool' id='EXTERNAL_PAGES' defval='1'>
3594       <docs>
3595 <![CDATA[
3596  If the \c EXTERNAL_PAGES tag is set to \c YES, all external pages will be listed
3597  in the related pages index. If set to \c NO, only the current project's
3598  pages will be listed.
3599 ]]>
3600       </docs>
3601     </option>
3602   </group>
3603   <group name='Dot' docs='Configuration options related to the dot tool'>
3604     <option type='string' id='DIA_PATH' format='dir' defval=''>
3605       <docs>
3606 <![CDATA[
3607 You can include diagrams made with dia in doxygen documentation. Doxygen will then run
3608 dia to produce the diagram and insert it in the documentation. The DIA_PATH tag allows
3609 you to specify the directory where the dia binary resides. If left empty dia is assumed
3610 to be found in the default search path.
3611 ]]>
3612       </docs>
3613     </option>
3614     <option type='bool' id='HIDE_UNDOC_RELATIONS' defval='1'>
3615       <docs>
3616 <![CDATA[
3617  If set to \c YES the inheritance and collaboration graphs will hide
3618  inheritance and usage relations if the target is undocumented
3619  or is not a class.
3620 ]]>
3621       </docs>
3622     </option>
3623     <option type='bool' id='HAVE_DOT' defval='0'>
3624       <docs>
3625 <![CDATA[
3626  If you set the \c HAVE_DOT tag to \c YES then doxygen will assume the \c dot tool is
3627  available from the \c path. This tool is part of
3628  <a href="http://www.graphviz.org/">Graphviz</a>, a graph
3629  visualization toolkit from AT\&T and Lucent Bell Labs. The other options in
3630  this section have no effect if this option is set to \c NO
3631 ]]>
3632       </docs>
3633     </option>
3634     <option type='int' id='DOT_NUM_THREADS' defval='0' minval='0' maxval='32' depends='HAVE_DOT'>
3635       <docs>
3636 <![CDATA[
3637  The \c DOT_NUM_THREADS specifies the number of \c dot invocations doxygen is
3638  allowed to run in parallel. When set to \c 0 doxygen will
3639  base this on the number of processors available in the system. You can set it
3640  explicitly to a value larger than 0 to get control over the balance
3641  between CPU load and processing speed.
3642 ]]>
3643       </docs>
3644     </option>
3645     <option type='string' id='DOT_COMMON_ATTR' format='string' depends='HAVE_DOT'
3646       defval='fontname=Helvetica,fontsize=10'>
3647       <docs>
3648 <![CDATA[
3649  \c DOT_COMMON_ATTR is common attributes for nodes, edges and labels of subgraphs.
3650  When you want a differently looking font in the dot files that doxygen generates
3651  you can specify fontname, fontcolor and fontsize attributes.
3652  For details please see
3653  <a href=https://graphviz.org/doc/info/attrs.html>Node, Edge and Graph Attributes specification</a>
3654  You need to make sure dot is able to find the font,
3655  which can be done by putting it in a standard location
3656  or by setting the \c DOTFONTPATH environment variable or by
3657  setting \ref cfg_dot_fontpath "DOT_FONTPATH" to the
3658  directory containing the font.
3659  Default graphviz fontsize is 14.
3660 ]]>
3661       </docs>
3662     </option>
3663     <option type='string' id='DOT_EDGE_ATTR' format='string' depends='HAVE_DOT'
3664       defval='labelfontname=Helvetica,labelfontsize=10'>
3665       <docs>
3666 <![CDATA[
3667  \c DOT_EDGE_ATTR is concatenated with \ref cfg_dot_common_attr "DOT_COMMON_ATTR".
3668  For elegant style you can add 'arrowhead=open, arrowtail=open, arrowsize=0.5'.
3669  <a href=https://graphviz.org/doc/info/arrows.html>Complete documentation about arrows shapes.</a>
3670 ]]>
3671       </docs>
3672     </option>
3673     <option type='string' id='DOT_NODE_ATTR' format='string' depends='HAVE_DOT'
3674       defval='shape=box,height=0.2,width=0.4'>
3675       <docs>
3676 <![CDATA[
3677  \c DOT_NODE_ATTR is concatenated with \ref cfg_dot_common_attr "DOT_COMMON_ATTR".
3678  For view without boxes around nodes set 'shape=plain' or 'shape=plaintext'
3679  <a href=https://www.graphviz.org/doc/info/shapes.html>Shapes specification</a>
3680 ]]>
3681       </docs>
3682     </option>
3683     <option type='string' id='DOT_FONTPATH' format='dir' defval='' depends='HAVE_DOT'>
3684       <docs>
3685 <![CDATA[
3686  You can set the path where \c dot can find font specified with
3687  fontname in \ref cfg_dot_common_attr "DOT_COMMON_ATTR" and others dot attributes.
3688 ]]>
3689       </docs>
3690     </option>
3691     <option type='enum' id='CLASS_GRAPH' defval='YES'>
3692       <docs>
3693 <![CDATA[
3694  If the \c CLASS_GRAPH tag is set to \c YES (or \c GRAPH) then doxygen
3695  will generate a graph for each documented class showing the direct and
3696  indirect inheritance relations. In case \ref cfg_have_dot "HAVE_DOT" is set as well
3697  `dot` will be used to draw the graph, otherwise the built-in generator will be used.
3698  If the \c CLASS_GRAPH tag is set to \c TEXT the direct and indirect inheritance relations
3699  will be shown as texts / links.
3700 ]]>
3701       </docs>
3702       <value name="NO" bool_representation="NO" />
3703       <value name="YES" bool_representation="YES" />
3704       <value name="TEXT" bool_representation="YES" />
3705       <value name="GRAPH" bool_representation="YES" />
3706     </option>
3707     <option type='bool' id='COLLABORATION_GRAPH' defval='1' depends='HAVE_DOT'>
3708       <docs>
3709 <![CDATA[
3710  If the \c COLLABORATION_GRAPH tag is set to \c YES then doxygen
3711  will generate a graph for each documented class showing the direct and
3712  indirect implementation dependencies (inheritance, containment, and
3713  class references variables) of the class with other documented classes.
3714 ]]>
3715       </docs>
3716     </option>
3717     <option type='bool' id='GROUP_GRAPHS' defval='1' depends='HAVE_DOT'>
3718       <docs>
3719 <![CDATA[
3720  If the \c GROUP_GRAPHS tag is set to \c YES then doxygen
3721  will generate a graph for groups, showing the direct groups dependencies.
3722
3723  See also the chapter \ref grouping "Grouping" in the manual.
3724 ]]>
3725       </docs>
3726     </option>
3727     <option type='bool' id='UML_LOOK' defval='0' depends='HAVE_DOT'>
3728       <docs>
3729 <![CDATA[
3730  If the \c UML_LOOK tag is set to \c YES, doxygen will generate inheritance and
3731  collaboration diagrams in a style similar to the OMG's Unified Modeling
3732  Language.
3733 ]]>
3734       </docs>
3735     </option>
3736     <option type='int' id='UML_LIMIT_NUM_FIELDS' defval='10' minval='0' maxval='100' depends='UML_LOOK'>
3737       <docs>
3738 <![CDATA[
3739  If the \ref cfg_uml_look "UML_LOOK" tag is enabled, the fields and methods are shown inside
3740  the class node. If there are many fields or methods and many nodes the
3741  graph may become too big to be useful. The \c UML_LIMIT_NUM_FIELDS
3742  threshold limits the number of items for each type to make the size more
3743  manageable. Set this to 0 for no limit. Note that the threshold may be
3744  exceeded by 50% before the limit is enforced. So when you set the threshold
3745  to 10, up to 15 fields may appear, but if the number exceeds 15, the
3746  total amount of fields shown is limited to 10.
3747 ]]>
3748       </docs>
3749     </option>
3750     <option type='enum' id='DOT_UML_DETAILS' defval='NO' depends='UML_LOOK'>
3751       <docs>
3752 <![CDATA[
3753 If the \c DOT_UML_DETAILS tag is set to \c NO, doxygen will
3754 show attributes and methods without types and arguments in the UML graphs.
3755 If the \c DOT_UML_DETAILS tag is set to \c YES, doxygen will
3756 add type and arguments for attributes and methods in the UML graphs.
3757 If the \c DOT_UML_DETAILS tag is set to \c NONE, doxygen will not generate
3758 fields with class member information in the UML graphs.
3759 The class diagrams will look similar to the default class diagrams but using
3760 UML notation for the relationships.
3761 ]]>
3762       </docs>
3763       <value name="NO" />
3764       <value name="YES" />
3765       <value name="NONE" />
3766     </option>
3767     <option type='int' id='DOT_WRAP_THRESHOLD' defval='17' minval='0' maxval='1000' depends='HAVE_DOT'>
3768       <docs>
3769 <![CDATA[
3770  The \c DOT_WRAP_THRESHOLD tag can be used to set the maximum number of characters to display on
3771  a single line. If the actual line length exceeds this threshold significantly it will wrapped
3772  across multiple lines. Some heuristics are apply to avoid ugly line breaks.
3773 ]]>
3774       </docs>
3775     </option>
3776     <option type='bool' id='TEMPLATE_RELATIONS' defval='0' depends='HAVE_DOT'>
3777       <docs>
3778 <![CDATA[
3779  If the \c TEMPLATE_RELATIONS tag is set to \c YES then
3780  the inheritance and collaboration graphs will show the relations between templates and their instances.
3781 ]]>
3782       </docs>
3783     </option>
3784     <option type='bool' id='INCLUDE_GRAPH' defval='1' depends='HAVE_DOT'>
3785       <docs>
3786 <![CDATA[
3787  If the \c INCLUDE_GRAPH, \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" and
3788  \ref cfg_search_includes "SEARCH_INCLUDES"
3789  tags are set to \c YES then doxygen will generate a graph for each documented file
3790  showing the direct and indirect include dependencies of the file with other
3791  documented files.
3792 ]]>
3793       </docs>
3794     </option>
3795     <option type='bool' id='INCLUDED_BY_GRAPH' defval='1' depends='HAVE_DOT'>
3796       <docs>
3797 <![CDATA[
3798  If the \c INCLUDED_BY_GRAPH, \ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" and
3799  \ref cfg_search_includes "SEARCH_INCLUDES"
3800  tags are set to \c YES then doxygen will generate a graph for each documented file
3801  showing the direct and indirect include dependencies of the file with other
3802  documented files.
3803 ]]>
3804       </docs>
3805     </option>
3806     <option type='bool' id='CALL_GRAPH' defval='0' depends='HAVE_DOT'>
3807       <docs>
3808 <![CDATA[
3809  If the \c CALL_GRAPH tag is set to \c YES then doxygen will
3810  generate a call dependency graph for every global function or class method.
3811  <br>Note that enabling this option will significantly increase the time of a run.
3812  So in most cases it will be better to enable call graphs for selected
3813  functions only using the \ref cmdcallgraph "\\callgraph" command.
3814  Disabling a call graph can be accomplished by means of the command
3815  \ref cmdhidecallgraph "\\hidecallgraph".
3816 ]]>
3817       </docs>
3818     </option>
3819     <option type='bool' id='CALLER_GRAPH' defval='0' depends='HAVE_DOT'>
3820       <docs>
3821 <![CDATA[
3822  If the \c CALLER_GRAPH tag is set to \c YES then doxygen will
3823  generate a caller dependency graph for every global function or class method.
3824  <br>Note that enabling this option will significantly increase the time of a run.
3825  So in most cases it will be better to enable caller graphs for selected
3826  functions only using the \ref cmdcallergraph "\\callergraph" command.
3827  Disabling a caller graph can be accomplished by means of the command
3828  \ref cmdhidecallergraph "\\hidecallergraph".
3829 ]]>
3830       </docs>
3831     </option>
3832     <option type='bool' id='GRAPHICAL_HIERARCHY' defval='1' depends='HAVE_DOT'>
3833       <docs>
3834 <![CDATA[
3835  If the \c GRAPHICAL_HIERARCHY tag is set to \c YES then
3836  doxygen will graphical hierarchy of all classes instead of a textual one.
3837 ]]>
3838       </docs>
3839     </option>
3840     <option type='bool' id='DIRECTORY_GRAPH' defval='1' depends='HAVE_DOT'>
3841       <docs>
3842 <![CDATA[
3843  If the \c DIRECTORY_GRAPH tag is set
3844  to \c YES then doxygen will show the dependencies a directory has on other directories
3845  in a graphical way. The dependency relations are determined by the \c \#include
3846  relations between the files in the directories.
3847 ]]>
3848       </docs>
3849     </option>
3850     <option type='int' id='DIR_GRAPH_MAX_DEPTH' minval='1' maxval='25' defval='1' depends='DIRECTORY_GRAPH'>
3851       <docs>
3852 <![CDATA[
3853  The \c DIR_GRAPH_MAX_DEPTH tag can be used to limit the maximum number of
3854  levels of child directories generated in directory dependency graphs by \c dot.
3855 ]]>
3856       </docs>
3857     </option>
3858     <option type='enum' id='DOT_IMAGE_FORMAT' defval='png' depends='HAVE_DOT'>
3859       <docs>
3860 <![CDATA[
3861  The \c DOT_IMAGE_FORMAT tag can be used to set the image format of the images
3862  generated by \c dot. For an explanation of the image formats see the section output formats
3863  in the documentation of the \c dot tool
3864  (<a href="http://www.graphviz.org/">Graphviz</a>).
3865  \note If you choose \c svg you need to set
3866  \ref cfg_html_file_extension "HTML_FILE_EXTENSION" to \c xhtml in order to make the SVG files
3867  visible in IE 9+ (other browsers do not have this requirement).
3868 ]]>
3869       </docs>
3870       <value name='png'/>
3871       <value name='jpg'/>
3872       <value name='gif'/>
3873       <value name='svg'/>
3874       <value name='png:gd'/>
3875       <value name='png:gd:gd'/>
3876       <value name='png:cairo'/>
3877       <value name='png:cairo:gd'/>
3878       <value name='png:cairo:cairo'/>
3879       <value name='png:cairo:gdiplus'/>
3880       <value name='png:gdiplus'/>
3881       <value name='png:gdiplus:gdiplus'/>
3882     </option>
3883     <option type='bool' id='INTERACTIVE_SVG' defval='0' depends='HAVE_DOT'>
3884       <docs>
3885 <![CDATA[
3886  If \ref cfg_dot_image_format "DOT_IMAGE_FORMAT" is set to \c svg, then this option can be set to \c YES to
3887  enable generation of interactive SVG images that allow zooming and panning.
3888  <br>Note that this requires a modern browser other than Internet Explorer.
3889  Tested and working are Firefox, Chrome, Safari, and Opera.
3890  \note For IE 9+ you need to set \ref cfg_html_file_extension "HTML_FILE_EXTENSION" to \c xhtml in order
3891  to make the SVG files visible. Older versions of IE do not have SVG support.
3892 ]]>
3893       </docs>
3894     </option>
3895     <option type='string' id='DOT_PATH' format='filedir' defval='' depends='HAVE_DOT'>
3896       <docs>
3897 <![CDATA[
3898  The \c DOT_PATH tag can be used to specify the path where the \c dot tool can be found.
3899  If left blank, it is assumed the \c dot tool can be found in the \c path.
3900 ]]>
3901       </docs>
3902     </option>
3903     <option type='list' id='DOTFILE_DIRS' format='dir' depends='HAVE_DOT'>
3904       <docs>
3905 <![CDATA[
3906  The \c DOTFILE_DIRS tag can be used to specify one or more directories that
3907  contain dot files that are included in the documentation (see the
3908  \ref cmddotfile "\\dotfile" command).
3909 ]]>
3910       </docs>
3911     </option>
3912     <option type='list' id='MSCFILE_DIRS' format='dir'>
3913       <docs>
3914 <![CDATA[
3915  The \c MSCFILE_DIRS tag can be used to specify one or more directories that
3916  contain msc files that are included in the documentation (see the
3917  \ref cmdmscfile "\\mscfile" command).
3918 ]]>
3919       </docs>
3920     </option>
3921     <option type='list' id='DIAFILE_DIRS' format='dir'>
3922       <docs>
3923 <![CDATA[
3924  The \c DIAFILE_DIRS tag can be used to specify one or more directories that
3925  contain dia files that are included in the documentation (see the
3926  \ref cmddiafile "\\diafile" command).
3927 ]]>
3928       </docs>
3929     </option>
3930     <option type='string' id='PLANTUML_JAR_PATH' format='filedir' defval=''>
3931       <docs>
3932 <![CDATA[
3933  When using plantuml, the \c PLANTUML_JAR_PATH tag should be used to specify the path where
3934  java can find the \c plantuml.jar file or to the filename of \c jar file to be used.
3935  If left blank, it is assumed PlantUML is not used or
3936  called during a preprocessing step. Doxygen will generate a warning when it encounters a
3937  \ref cmdstartuml "\\startuml" command in this case and will not generate output for the diagram.
3938 ]]>
3939       </docs>
3940     </option>
3941     <option type='string' id='PLANTUML_CFG_FILE' format='file' defval=''>
3942       <docs>
3943 <![CDATA[
3944  When using plantuml, the \c PLANTUML_CFG_FILE tag can be used to specify a configuration
3945  file for plantuml.
3946 ]]>
3947       </docs>
3948     </option>
3949     <option type='list' id='PLANTUML_INCLUDE_PATH' format='dir' defval=''>
3950       <docs>
3951 <![CDATA[
3952  When using plantuml, the specified paths are searched for files specified by the \c !include
3953  statement in a plantuml block.
3954 ]]>
3955       </docs>
3956     </option>
3957     <option type='int' id='DOT_GRAPH_MAX_NODES' minval='0' maxval='10000' defval='50' depends='HAVE_DOT'>
3958       <docs>
3959 <![CDATA[
3960  The \c DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
3961  nodes that will be shown in the graph. If the number of nodes in a graph
3962  becomes larger than this value, doxygen will truncate the graph, which is
3963  visualized by representing a node as a red box. Note that doxygen if the number
3964  of direct children of the root node in a graph is already larger than
3965  \c DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
3966  that the size of a graph can be further restricted by \ref cfg_max_dot_graph_depth "MAX_DOT_GRAPH_DEPTH".
3967 ]]>
3968       </docs>
3969     </option>
3970     <option type='int' id='MAX_DOT_GRAPH_DEPTH' minval='0' maxval='1000' defval='0' depends='HAVE_DOT'>
3971       <docs>
3972 <![CDATA[
3973  The \c MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
3974  graphs generated by \c dot. A depth value of 3 means that only nodes reachable
3975  from the root by following a path via at most 3 edges will be shown. Nodes
3976  that lay further from the root node will be omitted. Note that setting this
3977  option to 1 or 2 may greatly reduce the computation time needed for large
3978  code bases. Also note that the size of a graph can be further restricted by
3979  \ref cfg_dot_graph_max_nodes "DOT_GRAPH_MAX_NODES". Using a depth of 0 means no depth restriction.
3980 ]]>
3981       </docs>
3982     </option>
3983     <option type='bool' id='DOT_MULTI_TARGETS' defval='0' depends='HAVE_DOT'>
3984       <docs>
3985 <![CDATA[
3986  Set the \c DOT_MULTI_TARGETS tag to \c YES to allow dot to generate multiple output
3987  files in one run (i.e. multiple -o and -T options on the command line). This
3988  makes \c dot run faster, but since only newer versions of \c dot (>1.8.10)
3989  support this, this feature is disabled by default.
3990 ]]>
3991       </docs>
3992     </option>
3993     <option type='bool' id='GENERATE_LEGEND' defval='1' depends='HAVE_DOT'>
3994       <docs>
3995 <![CDATA[
3996  If the \c GENERATE_LEGEND tag is set to \c YES doxygen will
3997  generate a legend page explaining the meaning of the various boxes and
3998  arrows in the dot generated graphs.
3999  \note This tag requires that \ref cfg_uml_look "UML_LOOK" isn't set, i.e. the
4000  doxygen internal graphical representation for inheritance and collaboration diagrams
4001  is used.
4002 ]]>
4003       </docs>
4004     </option>
4005     <option type='bool' id='DOT_CLEANUP' defval='1'>
4006       <docs>
4007 <![CDATA[
4008 If the \c DOT_CLEANUP tag is set to \c YES, doxygen will
4009 remove the intermediate files that are used to generate the various graphs.
4010  <br>Note:
4011 This setting is not only used for dot files but also for msc temporary files.
4012 ]]>
4013       </docs>
4014     </option>
4015     <option type='obsolete' orgtype='bool' id='USE_WINDOWS_ENCODING'/>
4016     <option type='obsolete' orgtype='bool' id='DETAILS_AT_TOP'/>
4017     <option type='obsolete' orgtype='string' id='QTHELP_FILE'/>
4018     <option type='obsolete' orgtype='string' id='QTHELP_CONFIG'/>
4019     <option type='obsolete' orgtype='string' id='DOXYGEN2QTHELP_LOC'/>
4020     <option type='obsolete' orgtype='int' id='MAX_DOT_GRAPH_WIDTH'/>
4021     <option type='obsolete' orgtype='int' id='MAX_DOT_GRAPH_HEIGHT'/>
4022     <option type='obsolete' orgtype='string' id='CGI_NAME'/>
4023     <option type='obsolete' orgtype='string' id='CGI_URL'/>
4024     <option type='obsolete' orgtype='string' id='DOC_URL'/>
4025     <option type='obsolete' orgtype='string' id='DOC_ABSPATH'/>
4026     <option type='obsolete' orgtype='string' id='BIN_ABSPATH'/>
4027     <option type='obsolete' orgtype='list' id='EXT_DOC_PATHS'/>
4028     <option type='obsolete' orgtype='bool' id='USE_INLINE_TREES'/>
4029     <option type='obsolete' orgtype='bool' id='SHOW_DIRECTORIES'/>
4030     <option type='obsolete' orgtype='bool' id='HTML_ALIGN_MEMBERS'/>
4031     <option type='obsolete' orgtype='int' id='SYMBOL_CACHE_SIZE'/>
4032     <option type='obsolete' orgtype='string' id='XML_SCHEMA'/>
4033     <option type='obsolete' orgtype='string' id='XML_DTD'/>
4034     <option type='obsolete' orgtype='string' id='PERL_PATH'/>
4035     <option type='obsolete' orgtype='string' id='MSCGEN_PATH'/>
4036     <option type='obsolete' orgtype='list' id='TCL_SUBST'/>
4037     <option type='obsolete' orgtype='int' id='COLS_IN_ALPHA_INDEX'/>
4038     <option type='obsolete' orgtype='enum' id='OUTPUT_TEXT_DIRECTION'/>
4039     <option type='obsolete' orgtype='bool' id='DOCBOOK_PROGRAMLISTING'/>
4040     <option type='obsolete' orgtype='bool' id='RTF_SOURCE_CODE'/>
4041     <option type='obsolete' orgtype='bool' id='LATEX_SOURCE_CODE'/>
4042     <option type='obsolete' orgtype='bool' id='CLASS_DIAGRAMS'/>
4043     <option type='obsolete' orgtype='int' id='DOT_FONTSIZE'/>
4044     <option type='obsolete' orgtype='string' id='DOT_FONTNAME'/>
4045     <option type='obsolete' orgtype='bool' id='FORMULA_TRANSPARENT'/>
4046     <option type='obsolete' orgtype='bool' id='DOT_TRANSPARENT'/>
4047   </group>
4048 </doxygenconfig>