Browse code

Add source code of the firmware for the IO Board

Pawel Jablonski authored on 05/06/2023 17:01:27
Showing 64 changed files
... ...
@@ -23,11 +23,11 @@ FS_DIR = ../fs
23 23
 FS_APP = app
24 24
 FS_FILE = file
25 25
 
26
-#IO_SRC_DIR = ../io/firmware/src
27
-#IO_HEX = io.hex
26
+FW_DIR = ../fw
27
+FW_HEX = Objects/io.hex
28 28
 
29 29
 .PHONY: all
30
-all: urom rom fs io
30
+all: urom rom fs fw
31 31
 
32 32
 urom: tools
33 33
 	rm -rf urom
... ...
@@ -60,11 +60,11 @@ fs: tools rom
60 60
 	cp -r $(FS_DIR)/$(FS_APP) fs
61 61
 	cp -r $(FS_DIR)/$(FS_FILE) fs
62 62
 
63
-io:
64
-	#rm -rf io
65
-	#$(MAKE) -C $(IO_SRC_DIR)
66
-	#mkdir -p io
67
-	#cp $(IO_SRC)/$(IO_HEX) $(IO_DST)/
63
+fw:
64
+	rm -rf fw
65
+	$(MAKE) -C $(FW_DIR)
66
+	mkdir -p fw
67
+	cp -f $(FW_DIR)/src/$(FW_HEX) fw | true
68 68
 
69 69
 tools: tools_urom tools_asm tools_emu
70 70
 	rm -rf tools
... ...
@@ -98,9 +98,10 @@ clean:
98 98
 	$(MAKE) -C $(ASM_DIR) clean
99 99
 	$(MAKE) -C $(EMU_DIR) clean
100 100
 	$(MAKE) -C $(FS_DIR) clean
101
+	$(MAKE) -C $(FW_DIR) clean
101 102
 	
102 103
 	rm -rf tools
103 104
 	rm -rf urom
104 105
 	rm -rf rom
105 106
 	rm -rf fs
106
-	rm -rf io
107
+	rm -rf fw
... ...
@@ -1,10 +1,10 @@
1 1
 UROM_DOC_DIR = ../urom/doc
2 2
 ASM_DOC_DIR = ../asm/doc
3 3
 EMU_DOC_DIR = ../emu/doc
4
-IO_DOC_DIR = ../io/firmware/doc
4
+FW_DOC_DIR = ../fw/doc
5 5
 
6 6
 .PHONY: all
7
-all: urom asm emu io
7
+all: urom asm emu fw
8 8
 
9 9
 .PHONY: urom
10 10
 urom:
... ...
@@ -24,20 +24,20 @@ emu:
24 24
 	$(MAKE) -C $(EMU_DOC_DIR)
25 25
 	cp -R $(EMU_DOC_DIR)/html emu
26 26
 
27
-.PHONY: io
28
-io:
29
-	#rm -rf io
30
-	#$(MAKE) -C $(IO_DOC_DIR)
31
-	#cp -R $(IO_DOC_DIR)/html io
27
+.PHONY: fw
28
+fw:
29
+	rm -rf fw
30
+	$(MAKE) -C $(FW_DOC_DIR)
31
+	cp -R $(FW_DOC_DIR)/html fw
32 32
 
33 33
 .PHONY: clean
34 34
 clean:
35 35
 	$(MAKE) -C $(UROM_DOC_DIR) clean
36 36
 	$(MAKE) -C $(ASM_DOC_DIR) clean
37 37
 	$(MAKE) -C $(EMU_DOC_DIR) clean
38
-	#$(MAKE) -C $(IO_DOC_DIR) clean
38
+	$(MAKE) -C $(FW_DOC_DIR) clean
39 39
 	
40 40
 	rm -rf urom
41 41
 	rm -rf asm
42 42
 	rm -rf emu
43
-	rm -rf io
43
+	rm -rf fw
44 44
new file mode 100644
... ...
@@ -0,0 +1,38 @@
1
+UV4 ?= UV4.exe
2
+
3
+FW_HEX = src/Objects/io.hex
4
+FW_PRO = io.uvprojx
5
+FW_LOG = build.log
6
+
7
+.PHONY: all
8
+all: src doc
9
+
10
+.PHONY: src
11
+src: $(FW_HEX)
12
+
13
+$(FW_HEX): src/*.c src/*.h
14
+ifeq ($(OS),Windows_NT)
15
+ifndef WINE
16
+	cd src; \
17
+	$(UV4) -j0 -b $(FW_PRO) -o $(FW_LOG)
18
+endif
19
+endif
20
+
21
+.PHONY: doc
22
+doc:
23
+	$(MAKE) -C doc
24
+
25
+.PHONY: clean
26
+clean: clean_src clean_doc
27
+	
28
+.PHONY: clean_src
29
+clean_src:
30
+	cd src; \
31
+	rm -rf DebugConfig; \
32
+	rm -rf Listings; \
33
+	rm -rf Objects; \
34
+	rm -rf $(FW_LOG)
35
+
36
+.PHONY: clean_doc
37
+clean_doc:
38
+	$(MAKE) -C doc clean
0 39
new file mode 100644
... ...
@@ -0,0 +1,2671 @@
1
+# Doxyfile 1.9.5
2
+
3
+# This file describes the settings to be used by the documentation system
4
+# doxygen (www.doxygen.org) for a project.
5
+#
6
+# All text after a double hash (##) is considered a comment and is placed in
7
+# front of the TAG it is preceding.
8
+#
9
+# All text after a single hash (#) is considered a comment and will be ignored.
10
+# The format is:
11
+# TAG = value [value, ...]
12
+# For lists, items can also be appended using:
13
+# TAG += value [value, ...]
14
+# Values that contain spaces should be placed between quotes (\" \").
15
+#
16
+# Note:
17
+#
18
+# Use doxygen to compare the used configuration file with the template
19
+# configuration file:
20
+# doxygen -x [configFile]
21
+# Use doxygen to compare the used configuration file with the template
22
+# configuration file without replacing the environment variables or CMake type
23
+# replacement variables:
24
+# doxygen -x_noenv [configFile]
25
+
26
+#---------------------------------------------------------------------------
27
+# Project related configuration options
28
+#---------------------------------------------------------------------------
29
+
30
+# This tag specifies the encoding used for all characters in the configuration
31
+# file that follow. The default is UTF-8 which is also the encoding used for all
32
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
33
+# iconv built into libc) for the transcoding. See
34
+# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
35
+# The default value is: UTF-8.
36
+
37
+DOXYFILE_ENCODING      = UTF-8
38
+
39
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
40
+# double-quotes, unless you are using Doxywizard) that should identify the
41
+# project for which the documentation is generated. This name is used in the
42
+# title of most generated pages and in a few other places.
43
+# The default value is: My Project.
44
+
45
+PROJECT_NAME           = "XiPU IO Board"
46
+
47
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
48
+# could be handy for archiving the generated documentation or if some version
49
+# control system is used.
50
+
51
+PROJECT_NUMBER         =
52
+
53
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
54
+# for a project that appears at the top of each page and should give viewer a
55
+# quick idea about the purpose of the project. Keep the description short.
56
+
57
+PROJECT_BRIEF          =
58
+
59
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
60
+# in the documentation. The maximum height of the logo should not exceed 55
61
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
62
+# the logo to the output directory.
63
+
64
+PROJECT_LOGO           =
65
+
66
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
67
+# into which the generated documentation will be written. If a relative path is
68
+# entered, it will be relative to the location where doxygen was started. If
69
+# left blank the current directory will be used.
70
+
71
+OUTPUT_DIRECTORY       =
72
+
73
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
74
+# sub-directories (in 2 levels) under the output directory of each output format
75
+# and will distribute the generated files over these directories. Enabling this
76
+# option can be useful when feeding doxygen a huge amount of source files, where
77
+# putting all generated files in the same directory would otherwise causes
78
+# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to
79
+# control the number of sub-directories.
80
+# The default value is: NO.
81
+
82
+CREATE_SUBDIRS         = NO
83
+
84
+# Controls the number of sub-directories that will be created when
85
+# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every
86
+# level increment doubles the number of directories, resulting in 4096
87
+# directories at level 8 which is the default and also the maximum value. The
88
+# sub-directories are organized in 2 levels, the first level always has a fixed
89
+# numer of 16 directories.
90
+# Minimum value: 0, maximum value: 8, default value: 8.
91
+# This tag requires that the tag CREATE_SUBDIRS is set to YES.
92
+
93
+CREATE_SUBDIRS_LEVEL   = 8
94
+
95
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
96
+# characters to appear in the names of generated files. If set to NO, non-ASCII
97
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
98
+# U+3044.
99
+# The default value is: NO.
100
+
101
+ALLOW_UNICODE_NAMES    = NO
102
+
103
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
104
+# documentation generated by doxygen is written. Doxygen will use this
105
+# information to generate all constant output in the proper language.
106
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian,
107
+# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English
108
+# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek,
109
+# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with
110
+# English messages), Korean, Korean-en (Korean with English messages), Latvian,
111
+# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese,
112
+# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish,
113
+# Swedish, Turkish, Ukrainian and Vietnamese.
114
+# The default value is: English.
115
+
116
+OUTPUT_LANGUAGE        = English
117
+
118
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
119
+# descriptions after the members that are listed in the file and class
120
+# documentation (similar to Javadoc). Set to NO to disable this.
121
+# The default value is: YES.
122
+
123
+BRIEF_MEMBER_DESC      = YES
124
+
125
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
126
+# description of a member or function before the detailed description
127
+#
128
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
129
+# brief descriptions will be completely suppressed.
130
+# The default value is: YES.
131
+
132
+REPEAT_BRIEF           = YES
133
+
134
+# This tag implements a quasi-intelligent brief description abbreviator that is
135
+# used to form the text in various listings. Each string in this list, if found
136
+# as the leading text of the brief description, will be stripped from the text
137
+# and the result, after processing the whole list, is used as the annotated
138
+# text. Otherwise, the brief description is used as-is. If left blank, the
139
+# following values are used ($name is automatically replaced with the name of
140
+# the entity):The $name class, The $name widget, The $name file, is, provides,
141
+# specifies, contains, represents, a, an and the.
142
+
143
+ABBREVIATE_BRIEF       =
144
+
145
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
146
+# doxygen will generate a detailed section even if there is only a brief
147
+# description.
148
+# The default value is: NO.
149
+
150
+ALWAYS_DETAILED_SEC    = NO
151
+
152
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
153
+# inherited members of a class in the documentation of that class as if those
154
+# members were ordinary class members. Constructors, destructors and assignment
155
+# operators of the base classes will not be shown.
156
+# The default value is: NO.
157
+
158
+INLINE_INHERITED_MEMB  = NO
159
+
160
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
161
+# before files name in the file list and in the header files. If set to NO the
162
+# shortest path that makes the file name unique will be used
163
+# The default value is: YES.
164
+
165
+FULL_PATH_NAMES        = NO
166
+
167
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
168
+# Stripping is only done if one of the specified strings matches the left-hand
169
+# part of the path. The tag can be used to show relative paths in the file list.
170
+# If left blank the directory from which doxygen is run is used as the path to
171
+# strip.
172
+#
173
+# Note that you can specify absolute paths here, but also relative paths, which
174
+# will be relative from the directory where doxygen is started.
175
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
176
+
177
+STRIP_FROM_PATH        =
178
+
179
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
180
+# path mentioned in the documentation of a class, which tells the reader which
181
+# header file to include in order to use a class. If left blank only the name of
182
+# the header file containing the class definition is used. Otherwise one should
183
+# specify the list of include paths that are normally passed to the compiler
184
+# using the -I flag.
185
+
186
+STRIP_FROM_INC_PATH    =
187
+
188
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
189
+# less readable) file names. This can be useful is your file systems doesn't
190
+# support long names like on DOS, Mac, or CD-ROM.
191
+# The default value is: NO.
192
+
193
+SHORT_NAMES            = NO
194
+
195
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
196
+# first line (until the first dot) of a Javadoc-style comment as the brief
197
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
198
+# style comments (thus requiring an explicit @brief command for a brief
199
+# description.)
200
+# The default value is: NO.
201
+
202
+JAVADOC_AUTOBRIEF      = NO
203
+
204
+# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line
205
+# such as
206
+# /***************
207
+# as being the beginning of a Javadoc-style comment "banner". If set to NO, the
208
+# Javadoc-style will behave just like regular comments and it will not be
209
+# interpreted by doxygen.
210
+# The default value is: NO.
211
+
212
+JAVADOC_BANNER         = NO
213
+
214
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
215
+# line (until the first dot) of a Qt-style comment as the brief description. If
216
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
217
+# requiring an explicit \brief command for a brief description.)
218
+# The default value is: NO.
219
+
220
+QT_AUTOBRIEF           = NO
221
+
222
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
223
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
224
+# a brief description. This used to be the default behavior. The new default is
225
+# to treat a multi-line C++ comment block as a detailed description. Set this
226
+# tag to YES if you prefer the old behavior instead.
227
+#
228
+# Note that setting this tag to YES also means that rational rose comments are
229
+# not recognized any more.
230
+# The default value is: NO.
231
+
232
+MULTILINE_CPP_IS_BRIEF = NO
233
+
234
+# By default Python docstrings are displayed as preformatted text and doxygen's
235
+# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the
236
+# doxygen's special commands can be used and the contents of the docstring
237
+# documentation blocks is shown as doxygen documentation.
238
+# The default value is: YES.
239
+
240
+PYTHON_DOCSTRING       = YES
241
+
242
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
243
+# documentation from any documented member that it re-implements.
244
+# The default value is: YES.
245
+
246
+INHERIT_DOCS           = YES
247
+
248
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
249
+# page for each member. If set to NO, the documentation of a member will be part
250
+# of the file/class/namespace that contains it.
251
+# The default value is: NO.
252
+
253
+SEPARATE_MEMBER_PAGES  = NO
254
+
255
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
256
+# uses this value to replace tabs by spaces in code fragments.
257
+# Minimum value: 1, maximum value: 16, default value: 4.
258
+
259
+TAB_SIZE               = 4
260
+
261
+# This tag can be used to specify a number of aliases that act as commands in
262
+# the documentation. An alias has the form:
263
+# name=value
264
+# For example adding
265
+# "sideeffect=@par Side Effects:^^"
266
+# will allow you to put the command \sideeffect (or @sideeffect) in the
267
+# documentation, which will result in a user-defined paragraph with heading
268
+# "Side Effects:". Note that you cannot put \n's in the value part of an alias
269
+# to insert newlines (in the resulting output). You can put ^^ in the value part
270
+# of an alias to insert a newline as if a physical newline was in the original
271
+# file. When you need a literal { or } or , in the value part of an alias you
272
+# have to escape them by means of a backslash (\), this can lead to conflicts
273
+# with the commands \{ and \} for these it is advised to use the version @{ and
274
+# @} or use a double escape (\\{ and \\})
275
+
276
+ALIASES                =
277
+
278
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
279
+# only. Doxygen will then generate output that is more tailored for C. For
280
+# instance, some of the names that are used will be different. The list of all
281
+# members will be omitted, etc.
282
+# The default value is: NO.
283
+
284
+OPTIMIZE_OUTPUT_FOR_C  = YES
285
+
286
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
287
+# Python sources only. Doxygen will then generate output that is more tailored
288
+# for that language. For instance, namespaces will be presented as packages,
289
+# qualified scopes will look different, etc.
290
+# The default value is: NO.
291
+
292
+OPTIMIZE_OUTPUT_JAVA   = NO
293
+
294
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
295
+# sources. Doxygen will then generate output that is tailored for Fortran.
296
+# The default value is: NO.
297
+
298
+OPTIMIZE_FOR_FORTRAN   = NO
299
+
300
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
301
+# sources. Doxygen will then generate output that is tailored for VHDL.
302
+# The default value is: NO.
303
+
304
+OPTIMIZE_OUTPUT_VHDL   = NO
305
+
306
+# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice
307
+# sources only. Doxygen will then generate output that is more tailored for that
308
+# language. For instance, namespaces will be presented as modules, types will be
309
+# separated into more groups, etc.
310
+# The default value is: NO.
311
+
312
+OPTIMIZE_OUTPUT_SLICE  = NO
313
+
314
+# Doxygen selects the parser to use depending on the extension of the files it
315
+# parses. With this tag you can assign which parser to use for a given
316
+# extension. Doxygen has a built-in mapping, but you can override or extend it
317
+# using this tag. The format is ext=language, where ext is a file extension, and
318
+# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
319
+# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice,
320
+# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
321
+# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
322
+# tries to guess whether the code is fixed or free formatted code, this is the
323
+# default for Fortran type files). For instance to make doxygen treat .inc files
324
+# as Fortran files (default is PHP), and .f files as C (default is Fortran),
325
+# use: inc=Fortran f=C.
326
+#
327
+# Note: For files without extension you can use no_extension as a placeholder.
328
+#
329
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
330
+# the files are not read by doxygen. When specifying no_extension you should add
331
+# * to the FILE_PATTERNS.
332
+#
333
+# Note see also the list of default file extension mappings.
334
+
335
+EXTENSION_MAPPING      =
336
+
337
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
338
+# according to the Markdown format, which allows for more readable
339
+# documentation. See https://daringfireball.net/projects/markdown/ for details.
340
+# The output of markdown processing is further processed by doxygen, so you can
341
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
342
+# case of backward compatibilities issues.
343
+# The default value is: YES.
344
+
345
+MARKDOWN_SUPPORT       = NO
346
+
347
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
348
+# to that level are automatically included in the table of contents, even if
349
+# they do not have an id attribute.
350
+# Note: This feature currently applies only to Markdown headings.
351
+# Minimum value: 0, maximum value: 99, default value: 5.
352
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
353
+
354
+TOC_INCLUDE_HEADINGS   = 5
355
+
356
+# When enabled doxygen tries to link words that correspond to documented
357
+# classes, or namespaces to their corresponding documentation. Such a link can
358
+# be prevented in individual cases by putting a % sign in front of the word or
359
+# globally by setting AUTOLINK_SUPPORT to NO.
360
+# The default value is: YES.
361
+
362
+AUTOLINK_SUPPORT       = YES
363
+
364
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
365
+# to include (a tag file for) the STL sources as input, then you should set this
366
+# tag to YES in order to let doxygen match functions declarations and
367
+# definitions whose arguments contain STL classes (e.g. func(std::string);
368
+# versus func(std::string) {}). This also make the inheritance and collaboration
369
+# diagrams that involve STL classes more complete and accurate.
370
+# The default value is: NO.
371
+
372
+BUILTIN_STL_SUPPORT    = YES
373
+
374
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
375
+# enable parsing support.
376
+# The default value is: NO.
377
+
378
+CPP_CLI_SUPPORT        = NO
379
+
380
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
381
+# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen
382
+# will parse them like normal C++ but will assume all classes use public instead
383
+# of private inheritance when no explicit protection keyword is present.
384
+# The default value is: NO.
385
+
386
+SIP_SUPPORT            = NO
387
+
388
+# For Microsoft's IDL there are propget and propput attributes to indicate
389
+# getter and setter methods for a property. Setting this option to YES will make
390
+# doxygen to replace the get and set methods by a property in the documentation.
391
+# This will only work if the methods are indeed getting or setting a simple
392
+# type. If this is not the case, or you want to show the methods anyway, you
393
+# should set this option to NO.
394
+# The default value is: YES.
395
+
396
+IDL_PROPERTY_SUPPORT   = YES
397
+
398
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
399
+# tag is set to YES then doxygen will reuse the documentation of the first
400
+# member in the group (if any) for the other members of the group. By default
401
+# all members of a group must be documented explicitly.
402
+# The default value is: NO.
403
+
404
+DISTRIBUTE_GROUP_DOC   = NO
405
+
406
+# If one adds a struct or class to a group and this option is enabled, then also
407
+# any nested class or struct is added to the same group. By default this option
408
+# is disabled and one has to add nested compounds explicitly via \ingroup.
409
+# The default value is: NO.
410
+
411
+GROUP_NESTED_COMPOUNDS = NO
412
+
413
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
414
+# (for instance a group of public functions) to be put as a subgroup of that
415
+# type (e.g. under the Public Functions section). Set it to NO to prevent
416
+# subgrouping. Alternatively, this can be done per class using the
417
+# \nosubgrouping command.
418
+# The default value is: YES.
419
+
420
+SUBGROUPING            = YES
421
+
422
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
423
+# are shown inside the group in which they are included (e.g. using \ingroup)
424
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
425
+# and RTF).
426
+#
427
+# Note that this feature does not work in combination with
428
+# SEPARATE_MEMBER_PAGES.
429
+# The default value is: NO.
430
+
431
+INLINE_GROUPED_CLASSES = NO
432
+
433
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
434
+# with only public data fields or simple typedef fields will be shown inline in
435
+# the documentation of the scope in which they are defined (i.e. file,
436
+# namespace, or group documentation), provided this scope is documented. If set
437
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
438
+# Man pages) or section (for LaTeX and RTF).
439
+# The default value is: NO.
440
+
441
+INLINE_SIMPLE_STRUCTS  = NO
442
+
443
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
444
+# enum is documented as struct, union, or enum with the name of the typedef. So
445
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
446
+# with name TypeT. When disabled the typedef will appear as a member of a file,
447
+# namespace, or class. And the struct will be named TypeS. This can typically be
448
+# useful for C code in case the coding convention dictates that all compound
449
+# types are typedef'ed and only the typedef is referenced, never the tag name.
450
+# The default value is: NO.
451
+
452
+TYPEDEF_HIDES_STRUCT   = NO
453
+
454
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
455
+# cache is used to resolve symbols given their name and scope. Since this can be
456
+# an expensive process and often the same symbol appears multiple times in the
457
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
458
+# doxygen will become slower. If the cache is too large, memory is wasted. The
459
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
460
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
461
+# symbols. At the end of a run doxygen will report the cache usage and suggest
462
+# the optimal cache size from a speed point of view.
463
+# Minimum value: 0, maximum value: 9, default value: 0.
464
+
465
+LOOKUP_CACHE_SIZE      = 0
466
+
467
+# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use
468
+# during processing. When set to 0 doxygen will based this on the number of
469
+# cores available in the system. You can set it explicitly to a value larger
470
+# than 0 to get more control over the balance between CPU load and processing
471
+# speed. At this moment only the input processing can be done using multiple
472
+# threads. Since this is still an experimental feature the default is set to 1,
473
+# which effectively disables parallel processing. Please report any issues you
474
+# encounter. Generating dot graphs in parallel is controlled by the
475
+# DOT_NUM_THREADS setting.
476
+# Minimum value: 0, maximum value: 32, default value: 1.
477
+
478
+NUM_PROC_THREADS       = 1
479
+
480
+#---------------------------------------------------------------------------
481
+# Build related configuration options
482
+#---------------------------------------------------------------------------
483
+
484
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
485
+# documentation are documented, even if no documentation was available. Private
486
+# class members and static file members will be hidden unless the
487
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
488
+# Note: This will also disable the warnings about undocumented members that are
489
+# normally produced when WARNINGS is set to YES.
490
+# The default value is: NO.
491
+
492
+EXTRACT_ALL            = YES
493
+
494
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
495
+# be included in the documentation.
496
+# The default value is: NO.
497
+
498
+EXTRACT_PRIVATE        = YES
499
+
500
+# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual
501
+# methods of a class will be included in the documentation.
502
+# The default value is: NO.
503
+
504
+EXTRACT_PRIV_VIRTUAL   = NO
505
+
506
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
507
+# scope will be included in the documentation.
508
+# The default value is: NO.
509
+
510
+EXTRACT_PACKAGE        = NO
511
+
512
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
513
+# included in the documentation.
514
+# The default value is: NO.
515
+
516
+EXTRACT_STATIC         = YES
517
+
518
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
519
+# locally in source files will be included in the documentation. If set to NO,
520
+# only classes defined in header files are included. Does not have any effect
521
+# for Java sources.
522
+# The default value is: YES.
523
+
524
+EXTRACT_LOCAL_CLASSES  = YES
525
+
526
+# This flag is only useful for Objective-C code. If set to YES, local methods,
527
+# which are defined in the implementation section but not in the interface are
528
+# included in the documentation. If set to NO, only methods in the interface are
529
+# included.
530
+# The default value is: NO.
531
+
532
+EXTRACT_LOCAL_METHODS  = NO
533
+
534
+# If this flag is set to YES, the members of anonymous namespaces will be
535
+# extracted and appear in the documentation as a namespace called
536
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
537
+# the file that contains the anonymous namespace. By default anonymous namespace
538
+# are hidden.
539
+# The default value is: NO.
540
+
541
+EXTRACT_ANON_NSPACES   = YES
542
+
543
+# If this flag is set to YES, the name of an unnamed parameter in a declaration
544
+# will be determined by the corresponding definition. By default unnamed
545
+# parameters remain unnamed in the output.
546
+# The default value is: YES.
547
+
548
+RESOLVE_UNNAMED_PARAMS = YES
549
+
550
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
551
+# undocumented members inside documented classes or files. If set to NO these
552
+# members will be included in the various overviews, but no documentation
553
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
554
+# The default value is: NO.
555
+
556
+HIDE_UNDOC_MEMBERS     = NO
557
+
558
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
559
+# undocumented classes that are normally visible in the class hierarchy. If set
560
+# to NO, these classes will be included in the various overviews. This option
561
+# has no effect if EXTRACT_ALL is enabled.
562
+# The default value is: NO.
563
+
564
+HIDE_UNDOC_CLASSES     = NO
565
+
566
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
567
+# declarations. If set to NO, these declarations will be included in the
568
+# documentation.
569
+# The default value is: NO.
570
+
571
+HIDE_FRIEND_COMPOUNDS  = NO
572
+
573
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
574
+# documentation blocks found inside the body of a function. If set to NO, these
575
+# blocks will be appended to the function's detailed documentation block.
576
+# The default value is: NO.
577
+
578
+HIDE_IN_BODY_DOCS      = NO
579
+
580
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
581
+# \internal command is included. If the tag is set to NO then the documentation
582
+# will be excluded. Set it to YES to include the internal documentation.
583
+# The default value is: NO.
584
+
585
+INTERNAL_DOCS          = NO
586
+
587
+# With the correct setting of option CASE_SENSE_NAMES doxygen will better be
588
+# able to match the capabilities of the underlying filesystem. In case the
589
+# filesystem is case sensitive (i.e. it supports files in the same directory
590
+# whose names only differ in casing), the option must be set to YES to properly
591
+# deal with such files in case they appear in the input. For filesystems that
592
+# are not case sensitive the option should be set to NO to properly deal with
593
+# output files written for symbols that only differ in casing, such as for two
594
+# classes, one named CLASS and the other named Class, and to also support
595
+# references to files without having to specify the exact matching casing. On
596
+# Windows (including Cygwin) and MacOS, users should typically set this option
597
+# to NO, whereas on Linux or other Unix flavors it should typically be set to
598
+# YES.
599
+# Possible values are: SYSTEM, NO and YES.
600
+# The default value is: SYSTEM.
601
+
602
+CASE_SENSE_NAMES       = NO
603
+
604
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
605
+# their full class and namespace scopes in the documentation. If set to YES, the
606
+# scope will be hidden.
607
+# The default value is: NO.
608
+
609
+HIDE_SCOPE_NAMES       = NO
610
+
611
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
612
+# append additional text to a page's title, such as Class Reference. If set to
613
+# YES the compound reference will be hidden.
614
+# The default value is: NO.
615
+
616
+HIDE_COMPOUND_REFERENCE= NO
617
+
618
+# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class
619
+# will show which file needs to be included to use the class.
620
+# The default value is: YES.
621
+
622
+SHOW_HEADERFILE        = YES
623
+
624
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
625
+# the files that are included by a file in the documentation of that file.
626
+# The default value is: YES.
627
+
628
+SHOW_INCLUDE_FILES     = YES
629
+
630
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
631
+# grouped member an include statement to the documentation, telling the reader
632
+# which file to include in order to use the member.
633
+# The default value is: NO.
634
+
635
+SHOW_GROUPED_MEMB_INC  = YES
636
+
637
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
638
+# files with double quotes in the documentation rather than with sharp brackets.
639
+# The default value is: NO.
640
+
641
+FORCE_LOCAL_INCLUDES   = NO
642
+
643
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
644
+# documentation for inline members.
645
+# The default value is: YES.
646
+
647
+INLINE_INFO            = YES
648
+
649
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
650
+# (detailed) documentation of file and class members alphabetically by member
651
+# name. If set to NO, the members will appear in declaration order.
652
+# The default value is: YES.
653
+
654
+SORT_MEMBER_DOCS       = YES
655
+
656
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
657
+# descriptions of file, namespace and class members alphabetically by member
658
+# name. If set to NO, the members will appear in declaration order. Note that
659
+# this will also influence the order of the classes in the class list.
660
+# The default value is: NO.
661
+
662
+SORT_BRIEF_DOCS        = NO
663
+
664
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
665
+# (brief and detailed) documentation of class members so that constructors and
666
+# destructors are listed first. If set to NO the constructors will appear in the
667
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
668
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
669
+# member documentation.
670
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
671
+# detailed member documentation.
672
+# The default value is: NO.
673
+
674
+SORT_MEMBERS_CTORS_1ST = NO
675
+
676
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
677
+# of group names into alphabetical order. If set to NO the group names will
678
+# appear in their defined order.
679
+# The default value is: NO.
680
+
681
+SORT_GROUP_NAMES       = NO
682
+
683
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
684
+# fully-qualified names, including namespaces. If set to NO, the class list will
685
+# be sorted only by class name, not including the namespace part.
686
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
687
+# Note: This option applies only to the class list, not to the alphabetical
688
+# list.
689
+# The default value is: NO.
690
+
691
+SORT_BY_SCOPE_NAME     = NO
692
+
693
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
694
+# type resolution of all parameters of a function it will reject a match between
695
+# the prototype and the implementation of a member function even if there is
696
+# only one candidate or it is obvious which candidate to choose by doing a
697
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
698
+# accept a match between prototype and implementation in such cases.
699
+# The default value is: NO.
700
+
701
+STRICT_PROTO_MATCHING  = NO
702
+
703
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
704
+# list. This list is created by putting \todo commands in the documentation.
705
+# The default value is: YES.
706
+
707
+GENERATE_TODOLIST      = YES
708
+
709
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
710
+# list. This list is created by putting \test commands in the documentation.
711
+# The default value is: YES.
712
+
713
+GENERATE_TESTLIST      = YES
714
+
715
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
716
+# list. This list is created by putting \bug commands in the documentation.
717
+# The default value is: YES.
718
+
719
+GENERATE_BUGLIST       = YES
720
+
721
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
722
+# the deprecated list. This list is created by putting \deprecated commands in
723
+# the documentation.
724
+# The default value is: YES.
725
+
726
+GENERATE_DEPRECATEDLIST= YES
727
+
728
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
729
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
730
+# ... \endcond blocks.
731
+
732
+ENABLED_SECTIONS       =
733
+
734
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
735
+# initial value of a variable or macro / define can have for it to appear in the
736
+# documentation. If the initializer consists of more lines than specified here
737
+# it will be hidden. Use a value of 0 to hide initializers completely. The
738
+# appearance of the value of individual variables and macros / defines can be
739
+# controlled using \showinitializer or \hideinitializer command in the
740
+# documentation regardless of this setting.
741
+# Minimum value: 0, maximum value: 10000, default value: 30.
742
+
743
+MAX_INITIALIZER_LINES  = 30
744
+
745
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
746
+# the bottom of the documentation of classes and structs. If set to YES, the
747
+# list will mention the files that were used to generate the documentation.
748
+# The default value is: YES.
749
+
750
+SHOW_USED_FILES        = YES
751
+
752
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
753
+# will remove the Files entry from the Quick Index and from the Folder Tree View
754
+# (if specified).
755
+# The default value is: YES.
756
+
757
+SHOW_FILES             = YES
758
+
759
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
760
+# page. This will remove the Namespaces entry from the Quick Index and from the
761
+# Folder Tree View (if specified).
762
+# The default value is: YES.
763
+
764
+SHOW_NAMESPACES        = YES
765
+
766
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
767
+# doxygen should invoke to get the current version for each file (typically from
768
+# the version control system). Doxygen will invoke the program by executing (via
769
+# popen()) the command command input-file, where command is the value of the
770
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
771
+# by doxygen. Whatever the program writes to standard output is used as the file
772
+# version. For an example see the documentation.
773
+
774
+FILE_VERSION_FILTER    =
775
+
776
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
777
+# by doxygen. The layout file controls the global structure of the generated
778
+# output files in an output format independent way. To create the layout file
779
+# that represents doxygen's defaults, run doxygen with the -l option. You can
780
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
781
+# will be used as the name of the layout file. See also section "Changing the
782
+# layout of pages" for information.
783
+#
784
+# Note that if you run doxygen from a directory containing a file called
785
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
786
+# tag is left empty.
787
+
788
+LAYOUT_FILE            =
789
+
790
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
791
+# the reference definitions. This must be a list of .bib files. The .bib
792
+# extension is automatically appended if omitted. This requires the bibtex tool
793
+# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
794
+# For LaTeX the style of the bibliography can be controlled using
795
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
796
+# search path. See also \cite for info how to create references.
797
+
798
+CITE_BIB_FILES         =
799
+
800
+#---------------------------------------------------------------------------
801
+# Configuration options related to warning and progress messages
802
+#---------------------------------------------------------------------------
803
+
804
+# The QUIET tag can be used to turn on/off the messages that are generated to
805
+# standard output by doxygen. If QUIET is set to YES this implies that the
806
+# messages are off.
807
+# The default value is: NO.
808
+
809
+QUIET                  = NO
810
+
811
+# The WARNINGS tag can be used to turn on/off the warning messages that are
812
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
813
+# this implies that the warnings are on.
814
+#
815
+# Tip: Turn warnings on while writing the documentation.
816
+# The default value is: YES.
817
+
818
+WARNINGS               = YES
819
+
820
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
821
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
822
+# will automatically be disabled.
823
+# The default value is: YES.
824
+
825
+WARN_IF_UNDOCUMENTED   = YES
826
+
827
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
828
+# potential errors in the documentation, such as documenting some parameters in
829
+# a documented function twice, or documenting parameters that don't exist or
830
+# using markup commands wrongly.
831
+# The default value is: YES.
832
+
833
+WARN_IF_DOC_ERROR      = YES
834
+
835
+# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete
836
+# function parameter documentation. If set to NO, doxygen will accept that some
837
+# parameters have no documentation without warning.
838
+# The default value is: YES.
839
+
840
+WARN_IF_INCOMPLETE_DOC = YES
841
+
842
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
843
+# are documented, but have no documentation for their parameters or return
844
+# value. If set to NO, doxygen will only warn about wrong parameter
845
+# documentation, but not about the absence of documentation. If EXTRACT_ALL is
846
+# set to YES then this flag will automatically be disabled. See also
847
+# WARN_IF_INCOMPLETE_DOC
848
+# The default value is: NO.
849
+
850
+WARN_NO_PARAMDOC       = YES
851
+
852
+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
853
+# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS
854
+# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but
855
+# at the end of the doxygen process doxygen will return with a non-zero status.
856
+# Possible values are: NO, YES and FAIL_ON_WARNINGS.
857
+# The default value is: NO.
858
+
859
+WARN_AS_ERROR          = YES
860
+
861
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
862
+# can produce. The string should contain the $file, $line, and $text tags, which
863
+# will be replaced by the file and line number from which the warning originated
864
+# and the warning text. Optionally the format may contain $version, which will
865
+# be replaced by the version of the file (if it could be obtained via
866
+# FILE_VERSION_FILTER)
867
+# See also: WARN_LINE_FORMAT
868
+# The default value is: $file:$line: $text.
869
+
870
+WARN_FORMAT            = "$file:$line: $text"
871
+
872
+# In the $text part of the WARN_FORMAT command it is possible that a reference
873
+# to a more specific place is given. To make it easier to jump to this place
874
+# (outside of doxygen) the user can define a custom "cut" / "paste" string.
875
+# Example:
876
+# WARN_LINE_FORMAT = "'vi $file +$line'"
877
+# See also: WARN_FORMAT
878
+# The default value is: at line $line of file $file.
879
+
880
+WARN_LINE_FORMAT       = "at line $line of file $file"
881
+
882
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
883
+# messages should be written. If left blank the output is written to standard
884
+# error (stderr). In case the file specified cannot be opened for writing the
885
+# warning and error messages are written to standard error. When as file - is
886
+# specified the warning and error messages are written to standard output
887
+# (stdout).
888
+
889
+WARN_LOGFILE           = warnings.log
890
+
891
+#---------------------------------------------------------------------------
892
+# Configuration options related to the input files
893
+#---------------------------------------------------------------------------
894
+
895
+# The INPUT tag is used to specify the files and/or directories that contain
896
+# documented source files. You may enter file names like myfile.cpp or
897
+# directories like /usr/src/myproject. Separate the files or directories with
898
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
899
+# Note: If this tag is empty the current directory is searched.
900
+
901
+INPUT                  = ../src
902
+
903
+# This tag can be used to specify the character encoding of the source files
904
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
905
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
906
+# documentation (see:
907
+# https://www.gnu.org/software/libiconv/) for the list of possible encodings.
908
+# See also: INPUT_FILE_ENCODING
909
+# The default value is: UTF-8.
910
+
911
+INPUT_ENCODING         = UTF-8
912
+
913
+# This tag can be used to specify the character encoding of the source files
914
+# that doxygen parses The INPUT_FILE_ENCODING tag can be used to specify
915
+# character encoding on a per file pattern basis. Doxygen will compare the file
916
+# name with each pattern and apply the encoding instead of the default
917
+# INPUT_ENCODING) if there is a match. The character encodings are a list of the
918
+# form: pattern=encoding (like *.php=ISO-8859-1). See cfg_input_encoding
919
+# "INPUT_ENCODING" for further information on supported encodings.
920
+
921
+INPUT_FILE_ENCODING    =
922
+
923
+# If the value of the INPUT tag contains directories, you can use the
924
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
925
+# *.h) to filter out the source-files in the directories.
926
+#
927
+# Note that for custom extensions or not directly supported extensions you also
928
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
929
+# read by doxygen.
930
+#
931
+# Note the list of default checked file patterns might differ from the list of
932
+# default file extension mappings.
933
+#
934
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
935
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
936
+# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml,
937
+# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C
938
+# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd,
939
+# *.vhdl, *.ucf, *.qsf and *.ice.
940
+
941
+FILE_PATTERNS          = *.h \
942
+                         *.c
943
+
944
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
945
+# be searched for input files as well.
946
+# The default value is: NO.
947
+
948
+RECURSIVE              = NO
949
+
950
+# The EXCLUDE tag can be used to specify files and/or directories that should be
951
+# excluded from the INPUT source files. This way you can easily exclude a
952
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
953
+#
954
+# Note that relative paths are relative to the directory from which doxygen is
955
+# run.
956
+
957
+EXCLUDE                =
958
+
959
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
960
+# directories that are symbolic links (a Unix file system feature) are excluded
961
+# from the input.
962
+# The default value is: NO.
963
+
964
+EXCLUDE_SYMLINKS       = NO
965
+
966
+# If the value of the INPUT tag contains directories, you can use the
967
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
968
+# certain files from those directories.
969
+#
970
+# Note that the wildcards are matched against the file with absolute path, so to
971
+# exclude all test directories for example use the pattern */test/*
972
+
973
+EXCLUDE_PATTERNS       =
974
+
975
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
976
+# (namespaces, classes, functions, etc.) that should be excluded from the
977
+# output. The symbol name can be a fully qualified name, a word, or if the
978
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
979
+# ANamespace::AClass, ANamespace::*Test
980
+#
981
+# Note that the wildcards are matched against the file with absolute path, so to
982
+# exclude all test directories use the pattern */test/*
983
+
984
+EXCLUDE_SYMBOLS        =
985
+
986
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
987
+# that contain example code fragments that are included (see the \include
988
+# command).
989
+
990
+EXAMPLE_PATH           =
991
+
992
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
993
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
994
+# *.h) to filter out the source-files in the directories. If left blank all
995
+# files are included.
996
+
997
+EXAMPLE_PATTERNS       =
998
+
999
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
1000
+# searched for input files to be used with the \include or \dontinclude commands
1001
+# irrespective of the value of the RECURSIVE tag.
1002
+# The default value is: NO.
1003
+
1004
+EXAMPLE_RECURSIVE      = NO
1005
+
1006
+# The IMAGE_PATH tag can be used to specify one or more files or directories
1007
+# that contain images that are to be included in the documentation (see the
1008
+# \image command).
1009
+
1010
+IMAGE_PATH             =
1011
+
1012
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
1013
+# invoke to filter for each input file. Doxygen will invoke the filter program
1014
+# by executing (via popen()) the command:
1015
+#
1016
+# <filter> <input-file>
1017
+#
1018
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
1019
+# name of an input file. Doxygen will then use the output that the filter
1020
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
1021
+# will be ignored.
1022
+#
1023
+# Note that the filter must not add or remove lines; it is applied before the
1024
+# code is scanned, but not when the output code is generated. If lines are added
1025
+# or removed, the anchors will not be placed correctly.
1026
+#
1027
+# Note that doxygen will use the data processed and written to standard output
1028
+# for further processing, therefore nothing else, like debug statements or used
1029
+# commands (so in case of a Windows batch file always use @echo OFF), should be
1030
+# written to standard output.
1031
+#
1032
+# Note that for custom extensions or not directly supported extensions you also
1033
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
1034
+# properly processed by doxygen.
1035
+
1036
+INPUT_FILTER           =
1037
+
1038
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
1039
+# basis. Doxygen will compare the file name with each pattern and apply the
1040
+# filter if there is a match. The filters are a list of the form: pattern=filter
1041
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
1042
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
1043
+# patterns match the file name, INPUT_FILTER is applied.
1044
+#
1045
+# Note that for custom extensions or not directly supported extensions you also
1046
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
1047
+# properly processed by doxygen.
1048
+
1049
+FILTER_PATTERNS        =
1050
+
1051
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
1052
+# INPUT_FILTER) will also be used to filter the input files that are used for
1053
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
1054
+# The default value is: NO.
1055
+
1056
+FILTER_SOURCE_FILES    = NO
1057
+
1058
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
1059
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
1060
+# it is also possible to disable source filtering for a specific pattern using
1061
+# *.ext= (so without naming a filter).
1062
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
1063
+
1064
+FILTER_SOURCE_PATTERNS =
1065
+
1066
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
1067
+# is part of the input, its contents will be placed on the main page
1068
+# (index.html). This can be useful if you have a project on for instance GitHub
1069
+# and want to reuse the introduction page also for the doxygen output.
1070
+
1071
+USE_MDFILE_AS_MAINPAGE =
1072
+
1073
+# The Fortran standard specifies that for fixed formatted Fortran code all
1074
+# characters from position 72 are to be considered as comment. A common
1075
+# extension is to allow longer lines before the automatic comment starts. The
1076
+# setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can
1077
+# be processed before the automatic comment starts.
1078
+# Minimum value: 7, maximum value: 10000, default value: 72.
1079
+
1080
+FORTRAN_COMMENT_AFTER  = 72
1081
+
1082
+#---------------------------------------------------------------------------
1083
+# Configuration options related to source browsing
1084
+#---------------------------------------------------------------------------
1085
+
1086
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
1087
+# generated. Documented entities will be cross-referenced with these sources.
1088
+#
1089
+# Note: To get rid of all source code in the generated output, make sure that
1090
+# also VERBATIM_HEADERS is set to NO.
1091
+# The default value is: NO.
1092
+
1093
+SOURCE_BROWSER         = YES
1094
+
1095
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
1096
+# classes and enums directly into the documentation.
1097
+# The default value is: NO.
1098
+
1099
+INLINE_SOURCES         = YES
1100
+
1101
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
1102
+# special comment blocks from generated source code fragments. Normal C, C++ and
1103
+# Fortran comments will always remain visible.
1104
+# The default value is: YES.
1105
+
1106
+STRIP_CODE_COMMENTS    = NO
1107
+
1108
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
1109
+# entity all documented functions referencing it will be listed.
1110
+# The default value is: NO.
1111
+
1112
+REFERENCED_BY_RELATION = YES
1113
+
1114
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
1115
+# all documented entities called/used by that function will be listed.
1116
+# The default value is: NO.
1117
+
1118
+REFERENCES_RELATION    = YES
1119
+
1120
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
1121
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
1122
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
1123
+# link to the documentation.
1124
+# The default value is: YES.
1125
+
1126
+REFERENCES_LINK_SOURCE = YES
1127
+
1128
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
1129
+# source code will show a tooltip with additional information such as prototype,
1130
+# brief description and links to the definition and documentation. Since this
1131
+# will make the HTML file larger and loading of large files a bit slower, you
1132
+# can opt to disable this feature.
1133
+# The default value is: YES.
1134
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
1135
+
1136
+SOURCE_TOOLTIPS        = YES
1137
+
1138
+# If the USE_HTAGS tag is set to YES then the references to source code will
1139
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
1140
+# source browser. The htags tool is part of GNU's global source tagging system
1141
+# (see https://www.gnu.org/software/global/global.html). You will need version
1142
+# 4.8.6 or higher.
1143
+#
1144
+# To use it do the following:
1145
+# - Install the latest version of global
1146
+# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file
1147
+# - Make sure the INPUT points to the root of the source tree
1148
+# - Run doxygen as normal
1149
+#
1150
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
1151
+# tools must be available from the command line (i.e. in the search path).
1152
+#
1153
+# The result: instead of the source browser generated by doxygen, the links to
1154
+# source code will now point to the output of htags.
1155
+# The default value is: NO.
1156
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
1157
+
1158
+USE_HTAGS              = NO
1159
+
1160
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
1161
+# verbatim copy of the header file for each class for which an include is
1162
+# specified. Set to NO to disable this.
1163
+# See also: Section \class.
1164
+# The default value is: YES.
1165
+
1166
+VERBATIM_HEADERS       = YES
1167
+
1168
+#---------------------------------------------------------------------------
1169
+# Configuration options related to the alphabetical class index
1170
+#---------------------------------------------------------------------------
1171
+
1172
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
1173
+# compounds will be generated. Enable this if the project contains a lot of
1174
+# classes, structs, unions or interfaces.
1175
+# The default value is: YES.
1176
+
1177
+ALPHABETICAL_INDEX     = YES
1178
+
1179
+# In case all classes in a project start with a common prefix, all classes will
1180
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
1181
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
1182
+# while generating the index headers.
1183
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
1184
+
1185
+IGNORE_PREFIX          =
1186
+
1187
+#---------------------------------------------------------------------------
1188
+# Configuration options related to the HTML output
1189
+#---------------------------------------------------------------------------
1190
+
1191
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
1192
+# The default value is: YES.
1193
+
1194
+GENERATE_HTML          = YES
1195
+
1196
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
1197
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1198
+# it.
1199
+# The default directory is: html.
1200
+# This tag requires that the tag GENERATE_HTML is set to YES.
1201
+
1202
+HTML_OUTPUT            =
1203
+
1204
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
1205
+# generated HTML page (for example: .htm, .php, .asp).
1206
+# The default value is: .html.
1207
+# This tag requires that the tag GENERATE_HTML is set to YES.
1208
+
1209
+HTML_FILE_EXTENSION    = .html
1210
+
1211
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
1212
+# each generated HTML page. If the tag is left blank doxygen will generate a
1213
+# standard header.
1214
+#
1215
+# To get valid HTML the header file that includes any scripts and style sheets
1216
+# that doxygen needs, which is dependent on the configuration options used (e.g.
1217
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
1218
+# default header using
1219
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
1220
+# YourConfigFile
1221
+# and then modify the file new_header.html. See also section "Doxygen usage"
1222
+# for information on how to generate the default header that doxygen normally
1223
+# uses.
1224
+# Note: The header is subject to change so you typically have to regenerate the
1225
+# default header when upgrading to a newer version of doxygen. For a description
1226
+# of the possible markers and block names see the documentation.
1227
+# This tag requires that the tag GENERATE_HTML is set to YES.
1228
+
1229
+HTML_HEADER            =
1230
+
1231
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
1232
+# generated HTML page. If the tag is left blank doxygen will generate a standard
1233
+# footer. See HTML_HEADER for more information on how to generate a default
1234
+# footer and what special commands can be used inside the footer. See also
1235
+# section "Doxygen usage" for information on how to generate the default footer
1236
+# that doxygen normally uses.
1237
+# This tag requires that the tag GENERATE_HTML is set to YES.
1238
+
1239
+HTML_FOOTER            =
1240
+
1241
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
1242
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
1243
+# the HTML output. If left blank doxygen will generate a default style sheet.
1244
+# See also section "Doxygen usage" for information on how to generate the style
1245
+# sheet that doxygen normally uses.
1246
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
1247
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
1248
+# obsolete.
1249
+# This tag requires that the tag GENERATE_HTML is set to YES.
1250
+
1251
+HTML_STYLESHEET        =
1252
+