Changeset 1130
- Timestamp:
- 05/15/17 15:00:24 (8 years ago)
- Location:
- XIOS/dev/dev_olga
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/dev_olga/Doxyfile
r1054 r1130 1 # Doxyfile 1. 8.9.11 # Doxyfile 1.7.4 2 2 3 3 # This file describes the settings to be used by the documentation system 4 # doxygen (www.doxygen.org) for a project .4 # doxygen (www.doxygen.org) for a project 5 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. 6 # All text after a hash (#) is considered a comment and will be ignored 10 7 # 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 ( \" \").8 # TAG = value [value, ...] 9 # For lists items can also be appended using: 10 # TAG += value [value, ...] 11 # Values that contain spaces should be placed between quotes (" ") 15 12 16 13 #--------------------------------------------------------------------------- … … 18 15 #--------------------------------------------------------------------------- 19 16 20 # This tag specifies the encoding used for all characters in the config file 21 # that follow. The default is UTF-8 which is also the encoding used for all text 22 # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv 23 # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv 24 # for the list of possible encodings. 25 # The default value is: UTF-8. 17 # This tag specifies the encoding used for all characters in the config file 18 # that follow. The default is UTF-8 which is also the encoding used for all 19 # text before the first occurrence of this tag. Doxygen uses libiconv (or the 20 # iconv built into libc) for the transcoding. See 21 # http://www.gnu.org/software/libiconv for the list of possible encodings. 26 22 27 23 DOXYFILE_ENCODING = UTF-8 28 24 29 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by 30 # double-quotes, unless you are using Doxywizard) that should identify the 31 # project for which the documentation is generated. This name is used in the 32 # title of most generated pages and in a few other places. 33 # The default value is: My Project. 34 35 PROJECT_NAME = "My Project" 36 37 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This 38 # could be handy for archiving the generated documentation or if some version 39 # control system is used. 40 41 PROJECT_NUMBER = 42 43 # Using the PROJECT_BRIEF tag one can provide an optional one line description 44 # for a project that appears at the top of each page and should give viewer a 45 # quick idea about the purpose of the project. Keep the description short. 46 47 PROJECT_BRIEF = 48 49 # With the PROJECT_LOGO tag one can specify a logo or an icon that is included 50 # in the documentation. The maximum height of the logo should not exceed 55 51 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy 52 # the logo to the output directory. 53 54 PROJECT_LOGO = 55 56 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path 57 # into which the generated documentation will be written. If a relative path is 58 # entered, it will be relative to the location where doxygen was started. If 59 # left blank the current directory will be used. 60 61 OUTPUT_DIRECTORY = 62 63 # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- 64 # directories (in 2 levels) under the output directory of each output format and 65 # will distribute the generated files over these directories. Enabling this 66 # option can be useful when feeding doxygen a huge amount of source files, where 67 # putting all generated files in the same directory would otherwise causes 68 # performance problems for the file system. 69 # The default value is: NO. 25 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded 26 # by quotes) that should identify the project. 27 28 PROJECT_NAME = XIOS 29 30 # The PROJECT_NUMBER tag can be used to enter a project or revision number. 31 # This could be handy for archiving the generated documentation or 32 # if some version control system is used. 33 34 PROJECT_NUMBER = 1.0 35 36 # Using the PROJECT_BRIEF tag one can provide an optional one line description 37 # for a project that appears at the top of each page and should give viewer 38 # a quick idea about the purpose of the project. Keep the description short. 39 40 PROJECT_BRIEF = "Xml I/O Server" 41 42 # With the PROJECT_LOGO tag one can specify an logo or icon that is 43 # included in the documentation. The maximum height of the logo should not 44 # exceed 55 pixels and the maximum width should not exceed 200 pixels. 45 # Doxygen will copy the logo to the output directory. 46 47 PROJECT_LOGO = 48 49 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 50 # base path where the generated documentation will be put. 51 # If a relative path is entered, it will be relative to the location 52 # where doxygen was started. If left blank the current directory will be used. 53 54 OUTPUT_DIRECTORY = ./doc 55 56 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 57 # 4096 sub-directories (in 2 levels) under the output directory of each output 58 # format and will distribute the generated files over these directories. 59 # Enabling this option can be useful when feeding doxygen a huge amount of 60 # source files, where putting all generated files in the same directory would 61 # otherwise cause performance problems for the file system. 70 62 71 63 CREATE_SUBDIRS = NO 72 64 73 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII 74 # characters to appear in the names of generated files. If set to NO, non-ASCII 75 # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode 76 # U+3044. 77 # The default value is: NO. 78 79 ALLOW_UNICODE_NAMES = NO 80 81 # The OUTPUT_LANGUAGE tag is used to specify the language in which all 82 # documentation generated by doxygen is written. Doxygen will use this 83 # information to generate all constant output in the proper language. 84 # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, 85 # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), 86 # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, 87 # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), 88 # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, 89 # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, 90 # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, 91 # Ukrainian and Vietnamese. 92 # The default value is: English. 93 94 OUTPUT_LANGUAGE = English 95 96 # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member 97 # descriptions after the members that are listed in the file and class 98 # documentation (similar to Javadoc). Set to NO to disable this. 99 # The default value is: YES. 65 # The OUTPUT_LANGUAGE tag is used to specify the language in which all 66 # documentation generated by doxygen is written. Doxygen will use this 67 # information to generate all constant output in the proper language. 68 # The default language is English, other supported languages are: 69 # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 70 # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, 71 # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English 72 # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, 73 # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, 74 # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. 75 76 OUTPUT_LANGUAGE = French 77 78 # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 79 # include brief member descriptions after the members that are listed in 80 # the file and class documentation (similar to JavaDoc). 81 # Set to NO to disable this. 100 82 101 83 BRIEF_MEMBER_DESC = YES 102 84 103 # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief 104 # description of a member or function before the detailed description 105 # 106 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 85 # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 86 # the brief description of a member or function before the detailed description. 87 # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 107 88 # brief descriptions will be completely suppressed. 108 # The default value is: YES.109 89 110 90 REPEAT_BRIEF = YES 111 91 112 # This tag implements a quasi-intelligent brief description abbreviator that is 113 # used to form the text in various listings. Each string in this list, if found 114 # as the leading text of the brief description, will be stripped from the text 115 # and the result, after processing the whole list, is used as the annotated 116 # text. Otherwise, the brief description is used as-is. If left blank, the 117 # following values are used ($name is automatically replaced with the name of 118 # the entity):The $name class, The $name widget, The $name file, is, provides, 119 # specifies, contains, represents, a, an and the. 120 121 ABBREVIATE_BRIEF = 122 123 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 124 # doxygen will generate a detailed section even if there is only a brief 92 # This tag implements a quasi-intelligent brief description abbreviator 93 # that is used to form the text in various listings. Each string 94 # in this list, if found as the leading text of the brief description, will be 95 # stripped from the text and the result after processing the whole list, is 96 # used as the annotated text. Otherwise, the brief description is used as-is. 97 # If left blank, the following values are used ("$name" is automatically 98 # replaced with the name of the entity): "The $name class" "The $name widget" 99 # "The $name file" "is" "provides" "specifies" "contains" 100 # "represents" "a" "an" "the" 101 102 ABBREVIATE_BRIEF = "The $name class" \ 103 "The $name widget" \ 104 "The $name file" \ 105 is \ 106 provides \ 107 specifies \ 108 contains \ 109 represents \ 110 a \ 111 an \ 112 the 113 114 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 115 # Doxygen will generate a detailed section even if there is only a brief 125 116 # description. 126 # The default value is: NO.127 117 128 118 ALWAYS_DETAILED_SEC = NO 129 119 130 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 131 # inherited members of a class in the documentation of that class as if those 132 # members were ordinary class members. Constructors, destructors and assignment 120 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 121 # inherited members of a class in the documentation of that class as if those 122 # members were ordinary class members. Constructors, destructors and assignment 133 123 # operators of the base classes will not be shown. 134 # The default value is: NO.135 124 136 125 INLINE_INHERITED_MEMB = NO 137 126 138 # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path 139 # before files name in the file list and in the header files. If set to NO the 140 # shortest path that makes the file name unique will be used 141 # The default value is: YES. 127 # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 128 # path before files name in the file list and in the header files. If set 129 # to NO the shortest path that makes the file name unique will be used. 142 130 143 131 FULL_PATH_NAMES = YES 144 132 145 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. 146 # Stripping is only done if one of the specified strings matches the left-hand 147 # part of the path. The tag can be used to show relative paths in the file list. 148 # If left blank the directory from which doxygen is run is used as the path to 149 # strip. 150 # 151 # Note that you can specify absolute paths here, but also relative paths, which 152 # will be relative from the directory where doxygen is started. 153 # This tag requires that the tag FULL_PATH_NAMES is set to YES. 154 155 STRIP_FROM_PATH = 156 157 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the 158 # path mentioned in the documentation of a class, which tells the reader which 159 # header file to include in order to use a class. If left blank only the name of 160 # the header file containing the class definition is used. Otherwise one should 161 # specify the list of include paths that are normally passed to the compiler 162 # using the -I flag. 163 164 STRIP_FROM_INC_PATH = 165 166 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but 167 # less readable) file names. This can be useful is your file systems doesn't 168 # support long names like on DOS, Mac, or CD-ROM. 169 # The default value is: NO. 133 # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 134 # can be used to strip a user-defined part of the path. Stripping is 135 # only done if one of the specified strings matches the left-hand part of 136 # the path. The tag can be used to show relative paths in the file list. 137 # If left blank the directory from which doxygen is run is used as the 138 # path to strip. 139 140 STRIP_FROM_PATH = 141 142 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 143 # the path mentioned in the documentation of a class, which tells 144 # the reader which header file to include in order to use a class. 145 # If left blank only the name of the header file containing the class 146 # definition is used. Otherwise one should specify the include paths that 147 # are normally passed to the compiler using the -I flag. 148 149 STRIP_FROM_INC_PATH = 150 151 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 152 # (but less readable) file names. This can be useful if your file system 153 # doesn't support long names like on DOS, Mac, or CD-ROM. 170 154 171 155 SHORT_NAMES = NO 172 156 173 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the 174 # first line (until the first dot) of a Javadoc-style comment as the brief 175 # description. If set to NO, the Javadoc-style will behave just like regular Qt- 176 # style comments (thus requiring an explicit @brief command for a brief 177 # description.) 178 # The default value is: NO. 157 # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 158 # will interpret the first line (until the first dot) of a JavaDoc-style 159 # comment as the brief description. If set to NO, the JavaDoc 160 # comments will behave just like regular Qt-style comments 161 # (thus requiring an explicit @brief command for a brief description.) 179 162 180 163 JAVADOC_AUTOBRIEF = NO 181 164 182 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first 183 # line (until the first dot) of a Qt-style comment as the brief description. If 184 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus 185 # requiring an explicit \brief command for a brief description.) 186 # The default value is: NO. 187 188 QT_AUTOBRIEF = NO 189 190 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a 191 # multi-line C++ special comment block (i.e. a block of //! or /// comments) as 192 # a brief description. This used to be the default behavior. The new default is 193 # to treat a multi-line C++ comment block as a detailed description. Set this 194 # tag to YES if you prefer the old behavior instead. 195 # 196 # Note that setting this tag to YES also means that rational rose comments are 197 # not recognized any more. 198 # The default value is: NO. 165 # If the QT_AUTOBRIEF tag is set to YES then Doxygen will 166 # interpret the first line (until the first dot) of a Qt-style 167 # comment as the brief description. If set to NO, the comments 168 # will behave just like regular Qt-style comments (thus requiring 169 # an explicit \brief command for a brief description.) 170 171 QT_AUTOBRIEF = YES 172 173 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 174 # treat a multi-line C++ special comment block (i.e. a block of //! or /// 175 # comments) as a brief description. This used to be the default behaviour. 176 # The new default is to treat a multi-line C++ comment block as a detailed 177 # description. Set this tag to YES if you prefer the old behaviour instead. 199 178 200 179 MULTILINE_CPP_IS_BRIEF = NO 201 180 202 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the203 # documentation from any documented member that it re-implements.204 # The default value is: YES.181 # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 182 # member inherits the documentation from any documented member that it 183 # re-implements. 205 184 206 185 INHERIT_DOCS = YES 207 186 208 # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new 209 # page for each member. If set to NO, the documentation of a member will be part 210 # of the file/class/namespace that contains it. 211 # The default value is: NO. 187 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 188 # a new page for each member. If set to NO, the documentation of a member will 189 # be part of the file/class/namespace that contains it. 212 190 213 191 SEPARATE_MEMBER_PAGES = NO 214 192 215 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen 216 # uses this value to replace tabs by spaces in code fragments. 217 # Minimum value: 1, maximum value: 16, default value: 4. 218 219 TAB_SIZE = 4 220 221 # This tag can be used to specify a number of aliases that act as commands in 222 # the documentation. An alias has the form: 223 # name=value 224 # For example adding 225 # "sideeffect=@par Side Effects:\n" 226 # will allow you to put the command \sideeffect (or @sideeffect) in the 227 # documentation, which will result in a user-defined paragraph with heading 228 # "Side Effects:". You can put \n's in the value part of an alias to insert 229 # newlines. 230 231 ALIASES = 232 233 # This tag can be used to specify a number of word-keyword mappings (TCL only). 234 # A mapping has the form "name=value". For example adding "class=itcl::class" 235 # will allow you to use the command class in the itcl::class meaning. 236 237 TCL_SUBST = 238 239 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 240 # only. Doxygen will then generate output that is more tailored for C. For 241 # instance, some of the names that are used will be different. The list of all 242 # members will be omitted, etc. 243 # The default value is: NO. 193 # The TAB_SIZE tag can be used to set the number of spaces in a tab. 194 # Doxygen uses this value to replace tabs by spaces in code fragments. 195 196 TAB_SIZE = 8 197 198 # This tag can be used to specify a number of aliases that acts 199 # as commands in the documentation. An alias has the form "name=value". 200 # For example adding "sideeffect=\par Side Effects:\n" will allow you to 201 # put the command \sideeffect (or @sideeffect) in the documentation, which 202 # will result in a user-defined paragraph with heading "Side Effects:". 203 # You can put \n's in the value part of an alias to insert newlines. 204 205 ALIASES = 206 207 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 208 # sources only. Doxygen will then generate output that is more tailored for C. 209 # For instance, some of the names that are used will be different. The list 210 # of all members will be omitted, etc. 244 211 245 212 OPTIMIZE_OUTPUT_FOR_C = NO 246 213 247 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or 248 # Python sources only. Doxygen will then generate output that is more tailored 249 # for that language. For instance, namespaces will be presented as packages, 250 # qualified scopes will look different, etc. 251 # The default value is: NO. 214 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 215 # sources only. Doxygen will then generate output that is more tailored for 216 # Java. For instance, namespaces will be presented as packages, qualified 217 # scopes will look different, etc. 252 218 253 219 OPTIMIZE_OUTPUT_JAVA = NO 254 220 255 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 256 # sources . Doxygen will then generate output that is tailored for Fortran.257 # The default value is: NO.221 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 222 # sources only. Doxygen will then generate output that is more tailored for 223 # Fortran. 258 224 259 225 OPTIMIZE_FOR_FORTRAN = NO 260 226 261 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 262 # sources. Doxygen will then generate output that is tailored for VHDL.263 # The default value is: NO.227 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 228 # sources. Doxygen will then generate output that is tailored for 229 # VHDL. 264 230 265 231 OPTIMIZE_OUTPUT_VHDL = NO 266 232 267 # Doxygen selects the parser to use depending on the extension of the files it 268 # parses. With this tag you can assign which parser to use for a given 269 # extension. Doxygen has a built-in mapping, but you can override or extend it 270 # using this tag. The format is ext=language, where ext is a file extension, and 271 # language is one of the parsers supported by doxygen: IDL, Java, Javascript, 272 # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: 273 # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: 274 # Fortran. In the later case the parser tries to guess whether the code is fixed 275 # or free formatted code, this is the default for Fortran type files), VHDL. For 276 # instance to make doxygen treat .inc files as Fortran files (default is PHP), 277 # and .f files as C (default is Fortran), use: inc=Fortran f=C. 278 # 279 # Note: For files without extension you can use no_extension as a placeholder. 280 # 281 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise 282 # the files are not read by doxygen. 283 284 EXTENSION_MAPPING = 285 286 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments 287 # according to the Markdown format, which allows for more readable 288 # documentation. See http://daringfireball.net/projects/markdown/ for details. 289 # The output of markdown processing is further processed by doxygen, so you can 290 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in 291 # case of backward compatibilities issues. 292 # The default value is: YES. 293 294 MARKDOWN_SUPPORT = YES 295 296 # When enabled doxygen tries to link words that correspond to documented 297 # classes, or namespaces to their corresponding documentation. Such a link can 298 # be prevented in individual cases by putting a % sign in front of the word or 299 # globally by setting AUTOLINK_SUPPORT to NO. 300 # The default value is: YES. 301 302 AUTOLINK_SUPPORT = YES 303 304 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 305 # to include (a tag file for) the STL sources as input, then you should set this 306 # tag to YES in order to let doxygen match functions declarations and 307 # definitions whose arguments contain STL classes (e.g. func(std::string); 308 # versus func(std::string) {}). This also make the inheritance and collaboration 233 # Doxygen selects the parser to use depending on the extension of the files it 234 # parses. With this tag you can assign which parser to use for a given extension. 235 # Doxygen has a built-in mapping, but you can override or extend it using this 236 # tag. The format is ext=language, where ext is a file extension, and language 237 # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, 238 # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make 239 # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C 240 # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions 241 # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. 242 243 EXTENSION_MAPPING = 244 245 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 246 # to include (a tag file for) the STL sources as input, then you should 247 # set this tag to YES in order to let doxygen match functions declarations and 248 # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 249 # func(std::string) {}). This also makes the inheritance and collaboration 309 250 # diagrams that involve STL classes more complete and accurate. 310 # The default value is: NO. 311 312 BUILTIN_STL_SUPPORT = NO 313 314 # If you use Microsoft's C++/CLI language, you should set this option to YES to 251 252 BUILTIN_STL_SUPPORT = YES 253 254 # If you use Microsoft's C++/CLI language, you should set this option to YES to 315 255 # enable parsing support. 316 # The default value is: NO.317 256 318 257 CPP_CLI_SUPPORT = NO 319 258 320 # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: 321 # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen 322 # will parse them like normal C++ but will assume all classes use public instead 323 # of private inheritance when no explicit protection keyword is present. 324 # The default value is: NO. 259 # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 260 # Doxygen will parse them like normal C++ but will assume all classes use public 261 # instead of private inheritance when no explicit protection keyword is present. 325 262 326 263 SIP_SUPPORT = NO 327 264 328 # For Microsoft's IDL there are propget and propput attributes to indicate 329 # getter and setter methods for a property. Setting this option to YES will make 330 # doxygen to replace the get and set methods by a property in the documentation. 331 # This will only work if the methods are indeed getting or setting a simple 332 # type. If this is not the case, or you want to show the methods anyway, you 333 # should set this option to NO. 334 # The default value is: YES. 265 # For Microsoft's IDL there are propget and propput attributes to indicate getter 266 # and setter methods for a property. Setting this option to YES (the default) 267 # will make doxygen replace the get and set methods by a property in the 268 # documentation. This will only work if the methods are indeed getting or 269 # setting a simple type. If this is not the case, or you want to show the 270 # methods anyway, you should set this option to NO. 335 271 336 272 IDL_PROPERTY_SUPPORT = YES 337 273 338 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 339 # tag is set to YES then doxygen will reuse the documentation of the first340 # member in the group (if any) for the other members of the group. By default 274 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 275 # tag is set to YES, then doxygen will reuse the documentation of the first 276 # member in the group (if any) for the other members of the group. By default 341 277 # all members of a group must be documented explicitly. 342 # The default value is: NO.343 278 344 279 DISTRIBUTE_GROUP_DOC = NO 345 280 346 # Set the SUBGROUPING tag to YES to allow class member groups of the same type 347 # (for instance a group of public functions) to be put as a subgroup of that 348 # type (e.g. under the Public Functions section). Set it to NO to prevent 349 # subgrouping. Alternatively, this can be done per class using the 350 # \nosubgrouping command. 351 # The default value is: YES. 281 # Set the SUBGROUPING tag to YES (the default) to allow class member groups of 282 # the same type (for instance a group of public functions) to be put as a 283 # subgroup of that type (e.g. under the Public Functions section). Set it to 284 # NO to prevent subgrouping. Alternatively, this can be done per class using 285 # the \nosubgrouping command. 352 286 353 287 SUBGROUPING = YES 354 288 355 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions 356 # are shown inside the group in which they are included (e.g. using \ingroup) 357 # instead of on a separate page (for HTML and Man pages) or section (for LaTeX 358 # and RTF). 359 # 360 # Note that this feature does not work in combination with 361 # SEPARATE_MEMBER_PAGES. 362 # The default value is: NO. 289 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and 290 # unions are shown inside the group in which they are included (e.g. using 291 # @ingroup) instead of on a separate page (for HTML and Man pages) or 292 # section (for LaTeX and RTF). 363 293 364 294 INLINE_GROUPED_CLASSES = NO 365 295 366 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions 367 # with only public data fields or simple typedef fields will be shown inline in 368 # the documentation of the scope in which they are defined (i.e. file, 369 # namespace, or group documentation), provided this scope is documented. If set 370 # to NO, structs, classes, and unions are shown on a separate page (for HTML and 371 # Man pages) or section (for LaTeX and RTF). 372 # The default value is: NO. 373 374 INLINE_SIMPLE_STRUCTS = NO 375 376 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or 377 # enum is documented as struct, union, or enum with the name of the typedef. So 378 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct 379 # with name TypeT. When disabled the typedef will appear as a member of a file, 380 # namespace, or class. And the struct will be named TypeS. This can typically be 381 # useful for C code in case the coding convention dictates that all compound 296 # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 297 # is documented as struct, union, or enum with the name of the typedef. So 298 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct 299 # with name TypeT. When disabled the typedef will appear as a member of a file, 300 # namespace, or class. And the struct will be named TypeS. This can typically 301 # be useful for C code in case the coding convention dictates that all compound 382 302 # types are typedef'ed and only the typedef is referenced, never the tag name. 383 # The default value is: NO.384 303 385 304 TYPEDEF_HIDES_STRUCT = NO 386 305 387 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This 388 # cache is used to resolve symbols given their name and scope. Since this can be 389 # an expensive process and often the same symbol appears multiple times in the 390 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small 391 # doxygen will become slower. If the cache is too large, memory is wasted. The 392 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range 393 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 394 # symbols. At the end of a run doxygen will report the cache usage and suggest 395 # the optimal cache size from a speed point of view. 396 # Minimum value: 0, maximum value: 9, default value: 0. 397 398 LOOKUP_CACHE_SIZE = 0 306 # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to 307 # determine which symbols to keep in memory and which to flush to disk. 308 # When the cache is full, less often used symbols will be written to disk. 309 # For small to medium size projects (<1000 input files) the default value is 310 # probably good enough. For larger projects a too small cache size can cause 311 # doxygen to be busy swapping symbols to and from disk most of the time 312 # causing a significant performance penalty. 313 # If the system has enough physical memory increasing the cache will improve the 314 # performance by keeping more symbols in memory. Note that the value works on 315 # a logarithmic scale so increasing the size by one will roughly double the 316 # memory usage. The cache size is given by this formula: 317 # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, 318 # corresponding to a cache size of 2^16 = 65536 symbols 319 320 SYMBOL_CACHE_SIZE = 0 399 321 400 322 #--------------------------------------------------------------------------- … … 402 324 #--------------------------------------------------------------------------- 403 325 404 # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in 405 # documentation are documented, even if no documentation was available. Private 406 # class members and static file members will be hidden unless the 407 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. 408 # Note: This will also disable the warnings about undocumented members that are 409 # normally produced when WARNINGS is set to YES. 410 # The default value is: NO. 326 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 327 # documentation are documented, even if no documentation was available. 328 # Private class members and static file members will be hidden unless 329 # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES 411 330 412 331 EXTRACT_ALL = YES 413 332 414 # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will 415 # be included in the documentation. 416 # The default value is: NO. 417 418 EXTRACT_PRIVATE = NO 419 420 # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal 421 # scope will be included in the documentation. 422 # The default value is: NO. 423 424 EXTRACT_PACKAGE = NO 425 426 # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be 427 # included in the documentation. 428 # The default value is: NO. 333 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class 334 # will be included in the documentation. 335 336 EXTRACT_PRIVATE = YES 337 338 # If the EXTRACT_STATIC tag is set to YES all static members of a file 339 # will be included in the documentation. 429 340 430 341 EXTRACT_STATIC = YES 431 342 432 # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined 433 # locally in source files will be included in the documentation. If set to NO, 434 # only classes defined in header files are included. Does not have any effect 435 # for Java sources. 436 # The default value is: YES. 343 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 344 # defined locally in source files will be included in the documentation. 345 # If set to NO only classes defined in header files are included. 437 346 438 347 EXTRACT_LOCAL_CLASSES = YES 439 348 440 # This flag is only useful for Objective-C code. If set to YES, local methods, 441 # which are defined in the implementation section but not in the interface are 442 # included in the documentation. If set to NO, only methods in the interface are 443 # included. 444 # The default value is: NO. 445 446 EXTRACT_LOCAL_METHODS = NO 447 448 # If this flag is set to YES, the members of anonymous namespaces will be 449 # extracted and appear in the documentation as a namespace called 450 # 'anonymous_namespace{file}', where file will be replaced with the base name of 451 # the file that contains the anonymous namespace. By default anonymous namespace 452 # are hidden. 453 # The default value is: NO. 349 # This flag is only useful for Objective-C code. When set to YES local 350 # methods, which are defined in the implementation section but not in 351 # the interface are included in the documentation. 352 # If set to NO (the default) only methods in the interface are included. 353 354 EXTRACT_LOCAL_METHODS = YES 355 356 # If this flag is set to YES, the members of anonymous namespaces will be 357 # extracted and appear in the documentation as a namespace called 358 # 'anonymous_namespace{file}', where file will be replaced with the base 359 # name of the file that contains the anonymous namespace. By default 360 # anonymous namespaces are hidden. 454 361 455 362 EXTRACT_ANON_NSPACES = NO 456 363 457 # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all458 # undocumented members inside documented classes or files. If set to NO these459 # members will be included in the various overviews, but no documentation460 # section is generated. This option has no effect if EXTRACT_ALL is enabled.461 # Th e default value is: NO.364 # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 365 # undocumented members of documented classes, files or namespaces. 366 # If set to NO (the default) these members will be included in the 367 # various overviews, but no documentation section is generated. 368 # This option has no effect if EXTRACT_ALL is enabled. 462 369 463 370 HIDE_UNDOC_MEMBERS = NO 464 371 465 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all 466 # undocumented classes that are normally visible in the class hierarchy. If set 467 # to NO, these classes will be included in the various overviews. This option 468 # has no effect if EXTRACT_ALL is enabled. 469 # The default value is: NO. 372 # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 373 # undocumented classes that are normally visible in the class hierarchy. 374 # If set to NO (the default) these classes will be included in the various 375 # overviews. This option has no effect if EXTRACT_ALL is enabled. 470 376 471 377 HIDE_UNDOC_CLASSES = NO 472 378 473 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend474 # (class|struct|union) declarations. If set to NO, these declarations will be475 # included in the documentation.476 # The default value is: NO.379 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 380 # friend (class|struct|union) declarations. 381 # If set to NO (the default) these declarations will be included in the 382 # documentation. 477 383 478 384 HIDE_FRIEND_COMPOUNDS = NO 479 385 480 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any481 # documentation blocks found inside the body of a function. If set to NO, these482 # blocks will be appended to the function's detailed documentation block.483 # The default value is: NO.386 # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 387 # documentation blocks found inside the body of a function. 388 # If set to NO (the default) these blocks will be appended to the 389 # function's detailed documentation block. 484 390 485 391 HIDE_IN_BODY_DOCS = NO 486 392 487 # The INTERNAL_DOCS tag determines if documentation that is typed after a488 # \internal command is included. If the tag is set to NO then the documentation489 # will be excluded. Set it to YES to include the internal documentation.490 # The default value is: NO.393 # The INTERNAL_DOCS tag determines if documentation 394 # that is typed after a \internal command is included. If the tag is set 395 # to NO (the default) then the documentation will be excluded. 396 # Set it to YES to include the internal documentation. 491 397 492 398 INTERNAL_DOCS = NO 493 399 494 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file495 # names in lower-case letters. If set to YES, upper-case letters are also496 # allowed. This is useful if you have classes or files whose names only differ 497 # in case and if your file system supports case sensitive file names. Windows 400 # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 401 # file names in lower-case letters. If set to YES upper-case letters are also 402 # allowed. This is useful if you have classes or files whose names only differ 403 # in case and if your file system supports case sensitive file names. Windows 498 404 # and Mac users are advised to set this option to NO. 499 # The default value is: system dependent. 500 501 CASE_SENSE_NAMES = YES 502 503 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with 504 # their full class and namespace scopes in the documentation. If set to YES, the 505 # scope will be hidden. 506 # The default value is: NO. 405 406 CASE_SENSE_NAMES = NO 407 408 # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 409 # will show members with their full class and namespace scopes in the 410 # documentation. If set to YES the scope will be hidden. 507 411 508 412 HIDE_SCOPE_NAMES = NO 509 413 510 # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will 511 # append additional text to a page's title, such as Class Reference. If set to 512 # YES the compound reference will be hidden. 513 # The default value is: NO. 514 515 HIDE_COMPOUND_REFERENCE= NO 516 517 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of 518 # the files that are included by a file in the documentation of that file. 519 # The default value is: YES. 414 # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 415 # will put a list of the files that are included by a file in the documentation 416 # of that file. 520 417 521 418 SHOW_INCLUDE_FILES = YES 522 419 523 # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each 524 # grouped member an include statement to the documentation, telling the reader 525 # which file to include in order to use the member. 526 # The default value is: NO. 527 528 SHOW_GROUPED_MEMB_INC = NO 529 530 # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include 531 # files with double quotes in the documentation rather than with sharp brackets. 532 # The default value is: NO. 420 # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen 421 # will list include files with double quotes in the documentation 422 # rather than with sharp brackets. 533 423 534 424 FORCE_LOCAL_INCLUDES = NO 535 425 536 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the 537 # documentation for inline members. 538 # The default value is: YES. 426 # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 427 # is inserted in the documentation for inline members. 539 428 540 429 INLINE_INFO = YES 541 430 542 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the543 # (detailed) documentation of file and class members alphabetically by member544 # name. If set to NO, the members will appear in declaration order.545 # The default value is: YES.431 # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 432 # will sort the (detailed) documentation of file and class members 433 # alphabetically by member name. If set to NO the members will appear in 434 # declaration order. 546 435 547 436 SORT_MEMBER_DOCS = YES 548 437 549 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief 550 # descriptions of file, namespace and class members alphabetically by member 551 # name. If set to NO, the members will appear in declaration order. Note that 552 # this will also influence the order of the classes in the class list. 553 # The default value is: NO. 438 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 439 # brief documentation of file, namespace and class members alphabetically 440 # by member name. If set to NO (the default) the members will appear in 441 # declaration order. 554 442 555 443 SORT_BRIEF_DOCS = NO 556 444 557 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the 558 # (brief and detailed) documentation of class members so that constructors and 559 # destructors are listed first. If set to NO the constructors will appear in the 560 # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. 561 # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief 562 # member documentation. 563 # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting 564 # detailed member documentation. 565 # The default value is: NO. 445 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen 446 # will sort the (brief and detailed) documentation of class members so that 447 # constructors and destructors are listed first. If set to NO (the default) 448 # the constructors will appear in the respective orders defined by 449 # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. 450 # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO 451 # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. 566 452 567 453 SORT_MEMBERS_CTORS_1ST = NO 568 454 569 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy 570 # of group names into alphabetical order. If set to NO the group names will 571 # appear in their defined order. 572 # The default value is: NO. 455 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 456 # hierarchy of group names into alphabetical order. If set to NO (the default) 457 # the group names will appear in their defined order. 573 458 574 459 SORT_GROUP_NAMES = NO 575 460 576 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by577 # fully-qualified names, including namespaces. If set to NO, the class list will578 # be sorted only by class name, not including the namespace part.579 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.580 # Note: This option applies only to the class list, not to the alphabetical581 # list.582 # The default value is: NO.461 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 462 # sorted by fully-qualified names, including namespaces. If set to 463 # NO (the default), the class list will be sorted only by class name, 464 # not including the namespace part. 465 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. 466 # Note: This option applies only to the class list, not to the 467 # alphabetical list. 583 468 584 469 SORT_BY_SCOPE_NAME = NO 585 470 586 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper 587 # type resolution of all parameters of a function it will reject a match between 588 # the prototype and the implementation of a member function even if there is 589 # only one candidate or it is obvious which candidate to choose by doing a 590 # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still 591 # accept a match between prototype and implementation in such cases. 592 # The default value is: NO. 471 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to 472 # do proper type resolution of all parameters of a function it will reject a 473 # match between the prototype and the implementation of a member function even 474 # if there is only one candidate or it is obvious which candidate to choose 475 # by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen 476 # will still accept a match between prototype and implementation in such cases. 593 477 594 478 STRICT_PROTO_MATCHING = NO 595 479 596 # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo597 # list. This list is created by putting \todo commands in the documentation.598 # The default value is: YES.480 # The GENERATE_TODOLIST tag can be used to enable (YES) or 481 # disable (NO) the todo list. This list is created by putting \todo 482 # commands in the documentation. 599 483 600 484 GENERATE_TODOLIST = YES 601 485 602 # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test603 # list. This list is created by putting \test commands in the documentation.604 # The default value is: YES.486 # The GENERATE_TESTLIST tag can be used to enable (YES) or 487 # disable (NO) the test list. This list is created by putting \test 488 # commands in the documentation. 605 489 606 490 GENERATE_TESTLIST = YES 607 491 608 # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug609 # list. This list is created by putting \bug commands in the documentation.610 # The default value is: YES.492 # The GENERATE_BUGLIST tag can be used to enable (YES) or 493 # disable (NO) the bug list. This list is created by putting \bug 494 # commands in the documentation. 611 495 612 496 GENERATE_BUGLIST = YES 613 497 614 # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) 615 # the deprecated list. This list is created by putting \deprecated commands in 616 # the documentation. 617 # The default value is: YES. 498 # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 499 # disable (NO) the deprecated list. This list is created by putting 500 # \deprecated commands in the documentation. 618 501 619 502 GENERATE_DEPRECATEDLIST= YES 620 503 621 # The ENABLED_SECTIONS tag can be used to enable conditional documentation 622 # sections, marked by \if <section_label> ... \endif and \cond <section_label> 623 # ... \endcond blocks. 624 625 ENABLED_SECTIONS = 626 627 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the 628 # initial value of a variable or macro / define can have for it to appear in the 629 # documentation. If the initializer consists of more lines than specified here 630 # it will be hidden. Use a value of 0 to hide initializers completely. The 631 # appearance of the value of individual variables and macros / defines can be 632 # controlled using \showinitializer or \hideinitializer command in the 633 # documentation regardless of this setting. 634 # Minimum value: 0, maximum value: 10000, default value: 30. 504 # The ENABLED_SECTIONS tag can be used to enable conditional 505 # documentation sections, marked by \if sectionname ... \endif. 506 507 ENABLED_SECTIONS = 508 509 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines 510 # the initial value of a variable or macro consists of for it to appear in 511 # the documentation. If the initializer consists of more lines than specified 512 # here it will be hidden. Use a value of 0 to hide initializers completely. 513 # The appearance of the initializer of individual variables and macros in the 514 # documentation can be controlled using \showinitializer or \hideinitializer 515 # command in the documentation regardless of this setting. 635 516 636 517 MAX_INITIALIZER_LINES = 30 637 518 638 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at639 # the bottom of the documentation of classes and structs. If set to YES, the519 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated 520 # at the bottom of the documentation of classes and structs. If set to YES the 640 521 # list will mention the files that were used to generate the documentation. 641 # The default value is: YES.642 522 643 523 SHOW_USED_FILES = YES 644 524 645 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This 646 # will remove the Files entry from the Quick Index and from the Folder Tree View 647 # (if specified). 648 # The default value is: YES. 525 # If the sources in your project are distributed over multiple directories 526 # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 527 # in the documentation. The default is NO. 528 529 SHOW_DIRECTORIES = YES 530 531 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. 532 # This will remove the Files entry from the Quick Index and from the 533 # Folder Tree View (if specified). The default is YES. 649 534 650 535 SHOW_FILES = YES 651 536 652 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces 653 # page. This will remove the Namespaces entry from the Quick Index and from the 654 # Folder Tree View (if specified). 655 # The default value is: YES. 537 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the 538 # Namespaces page. This will remove the Namespaces entry from the Quick Index 539 # and from the Folder Tree View (if specified). The default is YES. 656 540 657 541 SHOW_NAMESPACES = YES 658 542 659 # The FILE_VERSION_FILTER tag can be used to specify a program or script that 660 # doxygen should invoke to get the current version for each file (typically from 661 # the version control system). Doxygen will invoke the program by executing (via 662 # popen()) the command command input-file, where command is the value of the 663 # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided 664 # by doxygen. Whatever the program writes to standard output is used as the file 665 # version. For an example see the documentation. 666 667 FILE_VERSION_FILTER = 668 669 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed 670 # by doxygen. The layout file controls the global structure of the generated 671 # output files in an output format independent way. To create the layout file 672 # that represents doxygen's defaults, run doxygen with the -l option. You can 673 # optionally specify a file name after the option, if omitted DoxygenLayout.xml 674 # will be used as the name of the layout file. 675 # 676 # Note that if you run doxygen from a directory containing a file called 677 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE 678 # tag is left empty. 679 680 LAYOUT_FILE = 681 682 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing 683 # the reference definitions. This must be a list of .bib files. The .bib 684 # extension is automatically appended if omitted. This requires the bibtex tool 685 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. 686 # For LaTeX the style of the bibliography can be controlled using 687 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the 688 # search path. See also \cite for info how to create references. 689 690 CITE_BIB_FILES = 691 692 #--------------------------------------------------------------------------- 693 # Configuration options related to warning and progress messages 694 #--------------------------------------------------------------------------- 695 696 # The QUIET tag can be used to turn on/off the messages that are generated to 697 # standard output by doxygen. If QUIET is set to YES this implies that the 698 # messages are off. 699 # The default value is: NO. 543 # The FILE_VERSION_FILTER tag can be used to specify a program or script that 544 # doxygen should invoke to get the current version for each file (typically from 545 # the version control system). Doxygen will invoke the program by executing (via 546 # popen()) the command <command> <input-file>, where <command> is the value of 547 # the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 548 # provided by doxygen. Whatever the program writes to standard output 549 # is used as the file version. See the manual for examples. 550 551 FILE_VERSION_FILTER = 552 553 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed 554 # by doxygen. The layout file controls the global structure of the generated 555 # output files in an output format independent way. The create the layout file 556 # that represents doxygen's defaults, run doxygen with the -l option. 557 # You can optionally specify a file name after the option, if omitted 558 # DoxygenLayout.xml will be used as the name of the layout file. 559 560 LAYOUT_FILE = 561 562 #--------------------------------------------------------------------------- 563 # configuration options related to warning and progress messages 564 #--------------------------------------------------------------------------- 565 566 # The QUIET tag can be used to turn on/off the messages that are generated 567 # by doxygen. Possible values are YES and NO. If left blank NO is used. 700 568 701 569 QUIET = NO 702 570 703 # The WARNINGS tag can be used to turn on/off the warning messages that are 704 # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES 705 # this implies that the warnings are on. 706 # 707 # Tip: Turn warnings on while writing the documentation. 708 # The default value is: YES. 571 # The WARNINGS tag can be used to turn on/off the warning messages that are 572 # generated by doxygen. Possible values are YES and NO. If left blank 573 # NO is used. 709 574 710 575 WARNINGS = YES 711 576 712 # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate 713 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag 714 # will automatically be disabled. 715 # The default value is: YES. 577 # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 578 # for undocumented members. If EXTRACT_ALL is set to YES then this flag will 579 # automatically be disabled. 716 580 717 581 WARN_IF_UNDOCUMENTED = YES 718 582 719 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for 720 # potential errors in the documentation, such as not documenting some parameters 721 # in a documented function, or documenting parameters that don't exist or using 722 # markup commands wrongly. 723 # The default value is: YES. 583 # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 584 # potential errors in the documentation, such as not documenting some 585 # parameters in a documented function, or documenting parameters that 586 # don't exist or using markup commands wrongly. 724 587 725 588 WARN_IF_DOC_ERROR = YES 726 589 727 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that 728 # are documented, but have no documentation for their parameters or return 729 # value. If set to NO, doxygen will only warn about wrong or incomplete 730 # parameter documentation, but not about the absence of documentation. 731 # The default value is: NO. 732 733 WARN_NO_PARAMDOC = NO 734 735 # The WARN_FORMAT tag determines the format of the warning messages that doxygen 736 # can produce. The string should contain the $file, $line, and $text tags, which 737 # will be replaced by the file and line number from which the warning originated 738 # and the warning text. Optionally the format may contain $version, which will 739 # be replaced by the version of the file (if it could be obtained via 740 # FILE_VERSION_FILTER) 741 # The default value is: $file:$line: $text. 590 # The WARN_NO_PARAMDOC option can be enabled to get warnings for 591 # functions that are documented, but have no documentation for their parameters 592 # or return value. If set to NO (the default) doxygen will only warn about 593 # wrong or incomplete parameter documentation, but not about the absence of 594 # documentation. 595 596 WARN_NO_PARAMDOC = YES 597 598 # The WARN_FORMAT tag determines the format of the warning messages that 599 # doxygen can produce. The string should contain the $file, $line, and $text 600 # tags, which will be replaced by the file and line number from which the 601 # warning originated and the warning text. Optionally the format may contain 602 # $version, which will be replaced by the version of the file (if it could 603 # be obtained via FILE_VERSION_FILTER) 742 604 743 605 WARN_FORMAT = "$file:$line: $text" 744 606 745 # The WARN_LOGFILE tag can be used to specify a file to which warning and error 746 # messages should be written. If left blank the output is written to standard 747 # error (stderr). 748 749 WARN_LOGFILE = 750 751 #--------------------------------------------------------------------------- 752 # Configuration options related to the input files 753 #--------------------------------------------------------------------------- 754 755 # The INPUT tag is used to specify the files and/or directories that contain 756 # documented source files. You may enter file names like myfile.cpp or 757 # directories like /usr/src/myproject. Separate the files or directories with 758 # spaces. 759 # Note: If this tag is empty the current directory is searched. 760 761 INPUT = /local/home/oabramkina/xios_curie/work/xios_my_branch/src 762 763 # This tag can be used to specify the character encoding of the source files 764 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses 765 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv 766 # documentation (see: http://www.gnu.org/software/libiconv) for the list of 767 # possible encodings. 768 # The default value is: UTF-8. 607 # The WARN_LOGFILE tag can be used to specify a file to which warning 608 # and error messages should be written. If left blank the output is written 609 # to stderr. 610 611 WARN_LOGFILE = 612 613 #--------------------------------------------------------------------------- 614 # configuration options related to the input files 615 #--------------------------------------------------------------------------- 616 617 # The INPUT tag can be used to specify the files and/or directories that contain 618 # documented source files. You may enter file names like "myfile.cpp" or 619 # directories like "/usr/src/myproject". Separate the files or directories 620 # with spaces. 621 622 INPUT = src 623 624 # This tag can be used to specify the character encoding of the source files 625 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 626 # also the default input encoding. Doxygen uses libiconv (or the iconv built 627 # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 628 # the list of possible encodings. 769 629 770 630 INPUT_ENCODING = UTF-8 771 631 772 # If the value of the INPUT tag contains directories, you can use the 773 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and 774 # *.h) to filter out the source-files in the directories. If left blank the 775 # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, 776 # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, 777 # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, 778 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, 779 # *.qsf, *.as and *.js. 780 781 FILE_PATTERNS = 782 783 # The RECURSIVE tag can be used to specify whether or not subdirectories should 784 # be searched for input files as well. 785 # The default value is: NO. 632 # If the value of the INPUT tag contains directories, you can use the 633 # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 634 # and *.h) to filter out the source-files in the directories. If left 635 # blank the following patterns are tested: 636 # *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh 637 # *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py 638 # *.f90 *.f *.for *.vhd *.vhdl 639 640 FILE_PATTERNS = *.cpp \ 641 *.hpp \ 642 *.conf 643 644 # The RECURSIVE tag can be used to turn specify whether or not subdirectories 645 # should be searched for input files as well. Possible values are YES and NO. 646 # If left blank NO is used. 786 647 787 648 RECURSIVE = YES 788 649 789 # The EXCLUDE tag can be used to specify files and/or directories that should be790 # excluded from the INPUT source files. This way you can easily exclude a 650 # The EXCLUDE tag can be used to specify files and/or directories that should 651 # excluded from the INPUT source files. This way you can easily exclude a 791 652 # subdirectory from a directory tree whose root is specified with the INPUT tag. 792 # 793 # Note that relative paths are relative to the directory from which doxygen is 794 # run. 795 796 EXCLUDE = 797 798 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or 799 # directories that are symbolic links (a Unix file system feature) are excluded 653 654 EXCLUDE = 655 656 # The EXCLUDE_SYMLINKS tag can be used select whether or not files or 657 # directories that are symbolic links (a Unix file system feature) are excluded 800 658 # from the input. 801 # The default value is: NO.802 659 803 660 EXCLUDE_SYMLINKS = NO 804 661 805 # If the value of the INPUT tag contains directories, you can use the 806 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 807 # certain files from those directories. 808 # 809 # Note that the wildcards are matched against the file with absolute path, so to 810 # exclude all test directories for example use the pattern */test/* 811 812 EXCLUDE_PATTERNS = 813 814 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 815 # (namespaces, classes, functions, etc.) that should be excluded from the 816 # output. The symbol name can be a fully qualified name, a word, or if the 817 # wildcard * is used, a substring. Examples: ANamespace, AClass, 662 # If the value of the INPUT tag contains directories, you can use the 663 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 664 # certain files from those directories. Note that the wildcards are matched 665 # against the file with absolute path, so to exclude all test directories 666 # for example use the pattern */test/* 667 668 EXCLUDE_PATTERNS = 669 670 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 671 # (namespaces, classes, functions, etc.) that should be excluded from the 672 # output. The symbol name can be a fully qualified name, a word, or if the 673 # wildcard * is used, a substring. Examples: ANamespace, AClass, 818 674 # AClass::ANamespace, ANamespace::*Test 819 # 820 # Note that the wildcards are matched against the file with absolute path, so to 821 # exclude all test directories use the pattern */test/* 822 823 EXCLUDE_SYMBOLS = 824 825 # The EXAMPLE_PATH tag can be used to specify one or more files or directories 826 # that contain example code fragments that are included (see the \include 827 # command). 828 829 EXAMPLE_PATH = 830 831 # If the value of the EXAMPLE_PATH tag contains directories, you can use the 832 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and 833 # *.h) to filter out the source-files in the directories. If left blank all 834 # files are included. 835 836 EXAMPLE_PATTERNS = 837 838 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 839 # searched for input files to be used with the \include or \dontinclude commands 840 # irrespective of the value of the RECURSIVE tag. 841 # The default value is: NO. 675 676 EXCLUDE_SYMBOLS = 677 678 # The EXAMPLE_PATH tag can be used to specify one or more files or 679 # directories that contain example code fragments that are included (see 680 # the \include command). 681 682 EXAMPLE_PATH = 683 684 # If the value of the EXAMPLE_PATH tag contains directories, you can use the 685 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 686 # and *.h) to filter out the source-files in the directories. If left 687 # blank all files are included. 688 689 EXAMPLE_PATTERNS = * 690 691 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 692 # searched for input files to be used with the \include or \dontinclude 693 # commands irrespective of the value of the RECURSIVE tag. 694 # Possible values are YES and NO. If left blank NO is used. 842 695 843 696 EXAMPLE_RECURSIVE = NO 844 697 845 # The IMAGE_PATH tag can be used to specify one or more files or directories 846 # that contain images that are to be included in the documentation (see the 847 # \image command). 848 849 IMAGE_PATH = 850 851 # The INPUT_FILTER tag can be used to specify a program that doxygen should 852 # invoke to filter for each input file. Doxygen will invoke the filter program 853 # by executing (via popen()) the command: 854 # 855 # <filter> <input-file> 856 # 857 # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the 858 # name of an input file. Doxygen will then use the output that the filter 859 # program writes to standard output. If FILTER_PATTERNS is specified, this tag 860 # will be ignored. 861 # 862 # Note that the filter must not add or remove lines; it is applied before the 863 # code is scanned, but not when the output code is generated. If lines are added 864 # or removed, the anchors will not be placed correctly. 865 866 INPUT_FILTER = 867 868 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 869 # basis. Doxygen will compare the file name with each pattern and apply the 870 # filter if there is a match. The filters are a list of the form: pattern=filter 871 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how 872 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the 873 # patterns match the file name, INPUT_FILTER is applied. 874 875 FILTER_PATTERNS = 876 877 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 878 # INPUT_FILTER) will also be used to filter the input files that are used for 879 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). 880 # The default value is: NO. 698 # The IMAGE_PATH tag can be used to specify one or more files or 699 # directories that contain image that are included in the documentation (see 700 # the \image command). 701 702 IMAGE_PATH = 703 704 # The INPUT_FILTER tag can be used to specify a program that doxygen should 705 # invoke to filter for each input file. Doxygen will invoke the filter program 706 # by executing (via popen()) the command <filter> <input-file>, where <filter> 707 # is the value of the INPUT_FILTER tag, and <input-file> is the name of an 708 # input file. Doxygen will then use the output that the filter program writes 709 # to standard output. If FILTER_PATTERNS is specified, this tag will be 710 # ignored. 711 712 INPUT_FILTER = 713 714 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 715 # basis. Doxygen will compare the file name with each pattern and apply the 716 # filter if there is a match. The filters are a list of the form: 717 # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 718 # info on how filters are used. If FILTER_PATTERNS is empty or if 719 # non of the patterns match the file name, INPUT_FILTER is applied. 720 721 FILTER_PATTERNS = 722 723 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 724 # INPUT_FILTER) will be used to filter the input files when producing source 725 # files to browse (i.e. when SOURCE_BROWSER is set to YES). 881 726 882 727 FILTER_SOURCE_FILES = NO 883 728 884 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file 885 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and 886 # it is also possible to disable source filtering for a specific pattern using 887 # *.ext= (so without naming a filter). 888 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. 889 890 FILTER_SOURCE_PATTERNS = 891 892 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that 893 # is part of the input, its contents will be placed on the main page 894 # (index.html). This can be useful if you have a project on for instance GitHub 895 # and want to reuse the introduction page also for the doxygen output. 896 897 USE_MDFILE_AS_MAINPAGE = 898 899 #--------------------------------------------------------------------------- 900 # Configuration options related to source browsing 901 #--------------------------------------------------------------------------- 902 903 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be 904 # generated. Documented entities will be cross-referenced with these sources. 905 # 906 # Note: To get rid of all source code in the generated output, make sure that 907 # also VERBATIM_HEADERS is set to NO. 908 # The default value is: NO. 909 910 SOURCE_BROWSER = NO 911 912 # Setting the INLINE_SOURCES tag to YES will include the body of functions, 913 # classes and enums directly into the documentation. 914 # The default value is: NO. 915 916 INLINE_SOURCES = YES 917 918 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any 919 # special comment blocks from generated source code fragments. Normal C, C++ and 920 # Fortran comments will always remain visible. 921 # The default value is: YES. 729 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file 730 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) 731 # and it is also possible to disable source filtering for a specific pattern 732 # using *.ext= (so without naming a filter). This option only has effect when 733 # FILTER_SOURCE_FILES is enabled. 734 735 FILTER_SOURCE_PATTERNS = 736 737 #--------------------------------------------------------------------------- 738 # configuration options related to source browsing 739 #--------------------------------------------------------------------------- 740 741 # If the SOURCE_BROWSER tag is set to YES then a list of source files will 742 # be generated. Documented entities will be cross-referenced with these sources. 743 # Note: To get rid of all source code in the generated output, make sure also 744 # VERBATIM_HEADERS is set to NO. 745 746 SOURCE_BROWSER = YES 747 748 # Setting the INLINE_SOURCES tag to YES will include the body 749 # of functions and classes directly in the documentation. 750 751 INLINE_SOURCES = NO 752 753 # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 754 # doxygen to hide any special comment blocks from generated source code 755 # fragments. Normal C and C++ comments will always remain visible. 922 756 923 757 STRIP_CODE_COMMENTS = YES 924 758 925 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented 926 # function all documented functions referencing it will be listed. 927 # The default value is: NO. 928 929 REFERENCED_BY_RELATION = NO 930 931 # If the REFERENCES_RELATION tag is set to YES then for each documented function 932 # all documented entities called/used by that function will be listed. 933 # The default value is: NO. 934 935 REFERENCES_RELATION = NO 936 937 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set 938 # to YES then the hyperlinks from functions in REFERENCES_RELATION and 939 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will 940 # link to the documentation. 941 # The default value is: YES. 759 # If the REFERENCED_BY_RELATION tag is set to YES 760 # then for each documented function all documented 761 # functions referencing it will be listed. 762 763 REFERENCED_BY_RELATION = YES 764 765 # If the REFERENCES_RELATION tag is set to YES 766 # then for each documented function all documented entities 767 # called/used by that function will be listed. 768 769 REFERENCES_RELATION = YES 770 771 # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) 772 # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from 773 # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will 774 # link to the source code. Otherwise they will link to the documentation. 942 775 943 776 REFERENCES_LINK_SOURCE = YES 944 777 945 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the 946 # source code will show a tooltip with additional information such as prototype, 947 # brief description and links to the definition and documentation. Since this 948 # will make the HTML file larger and loading of large files a bit slower, you 949 # can opt to disable this feature. 950 # The default value is: YES. 951 # This tag requires that the tag SOURCE_BROWSER is set to YES. 952 953 SOURCE_TOOLTIPS = YES 954 955 # If the USE_HTAGS tag is set to YES then the references to source code will 956 # point to the HTML generated by the htags(1) tool instead of doxygen built-in 957 # source browser. The htags tool is part of GNU's global source tagging system 958 # (see http://www.gnu.org/software/global/global.html). You will need version 959 # 4.8.6 or higher. 960 # 961 # To use it do the following: 962 # - Install the latest version of global 963 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file 964 # - Make sure the INPUT points to the root of the source tree 965 # - Run doxygen as normal 966 # 967 # Doxygen will invoke htags (and that will in turn invoke gtags), so these 968 # tools must be available from the command line (i.e. in the search path). 969 # 970 # The result: instead of the source browser generated by doxygen, the links to 971 # source code will now point to the output of htags. 972 # The default value is: NO. 973 # This tag requires that the tag SOURCE_BROWSER is set to YES. 778 # If the USE_HTAGS tag is set to YES then the references to source code 779 # will point to the HTML generated by the htags(1) tool instead of doxygen 780 # built-in source browser. The htags tool is part of GNU's global source 781 # tagging system (see http://www.gnu.org/software/global/global.html). You 782 # will need version 4.8.6 or higher. 974 783 975 784 USE_HTAGS = NO 976 785 977 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a 978 # verbatim copy of the header file for each class for which an include is 979 # specified. Set to NO to disable this. 980 # See also: Section \class. 981 # The default value is: YES. 786 # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 787 # will generate a verbatim copy of the header file for each class for 788 # which an include is specified. Set to NO to disable this. 982 789 983 790 VERBATIM_HEADERS = YES 984 791 985 # If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the 986 # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the 987 # cost of reduced performance. This can be particularly helpful with template 988 # rich C++ code for which doxygen's built-in parser lacks the necessary type 989 # information. 990 # Note: The availability of this option depends on whether or not doxygen was 991 # compiled with the --with-libclang option. 992 # The default value is: NO. 993 994 CLANG_ASSISTED_PARSING = NO 995 996 # If clang assisted parsing is enabled you can provide the compiler with command 997 # line options that you would normally use when invoking the compiler. Note that 998 # the include paths will already be set by doxygen for the files and directories 999 # specified with INPUT and INCLUDE_PATH. 1000 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. 1001 1002 CLANG_OPTIONS = 1003 1004 #--------------------------------------------------------------------------- 1005 # Configuration options related to the alphabetical class index 1006 #--------------------------------------------------------------------------- 1007 1008 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all 1009 # compounds will be generated. Enable this if the project contains a lot of 1010 # classes, structs, unions or interfaces. 1011 # The default value is: YES. 792 #--------------------------------------------------------------------------- 793 # configuration options related to the alphabetical class index 794 #--------------------------------------------------------------------------- 795 796 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 797 # of all compounds will be generated. Enable this if the project 798 # contains a lot of classes, structs, unions or interfaces. 1012 799 1013 800 ALPHABETICAL_INDEX = YES 1014 801 1015 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in 1016 # which the alphabetical index list will be split. 1017 # Minimum value: 1, maximum value: 20, default value: 5. 1018 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. 802 # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 803 # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 804 # in which this list will be split (can be a number in the range [1..20]) 1019 805 1020 806 COLS_IN_ALPHA_INDEX = 5 1021 807 1022 # In case all classes in a project start with a common prefix, all classes will 1023 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag 1024 # can be used to specify a prefix (or a list of prefixes) that should be ignored 1025 # while generating the index headers. 1026 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. 1027 1028 IGNORE_PREFIX = 1029 1030 #--------------------------------------------------------------------------- 1031 # Configuration options related to the HTML output 1032 #--------------------------------------------------------------------------- 1033 1034 # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output 1035 # The default value is: YES. 808 # In case all classes in a project start with a common prefix, all 809 # classes will be put under the same header in the alphabetical index. 810 # The IGNORE_PREFIX tag can be used to specify one or more prefixes that 811 # should be ignored while generating the index headers. 812 813 IGNORE_PREFIX = 814 815 #--------------------------------------------------------------------------- 816 # configuration options related to the HTML output 817 #--------------------------------------------------------------------------- 818 819 # If the GENERATE_HTML tag is set to YES (the default) Doxygen will 820 # generate HTML output. 1036 821 1037 822 GENERATE_HTML = YES 1038 823 1039 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a 1040 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of 1041 # it. 1042 # The default directory is: html. 1043 # This tag requires that the tag GENERATE_HTML is set to YES. 824 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 825 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 826 # put in front of it. If left blank `html' will be used as the default path. 1044 827 1045 828 HTML_OUTPUT = html 1046 829 1047 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each 1048 # generated HTML page (for example: .htm, .php, .asp). 1049 # The default value is: .html. 1050 # This tag requires that the tag GENERATE_HTML is set to YES. 830 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for 831 # each generated HTML page (for example: .htm,.php,.asp). If it is left blank 832 # doxygen will generate files with .html extension. 1051 833 1052 834 HTML_FILE_EXTENSION = .html 1053 835 1054 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for 1055 # each generated HTML page. If the tag is left blank doxygen will generate a 1056 # standard header. 1057 # 1058 # To get valid HTML the header file that includes any scripts and style sheets 1059 # that doxygen needs, which is dependent on the configuration options used (e.g. 1060 # the setting GENERATE_TREEVIEW). It is highly recommended to start with a 1061 # default header using 1062 # doxygen -w html new_header.html new_footer.html new_stylesheet.css 1063 # YourConfigFile 1064 # and then modify the file new_header.html. See also section "Doxygen usage" 1065 # for information on how to generate the default header that doxygen normally 1066 # uses. 1067 # Note: The header is subject to change so you typically have to regenerate the 1068 # default header when upgrading to a newer version of doxygen. For a description 1069 # of the possible markers and block names see the documentation. 1070 # This tag requires that the tag GENERATE_HTML is set to YES. 1071 1072 HTML_HEADER = 1073 1074 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each 1075 # generated HTML page. If the tag is left blank doxygen will generate a standard 1076 # footer. See HTML_HEADER for more information on how to generate a default 1077 # footer and what special commands can be used inside the footer. See also 1078 # section "Doxygen usage" for information on how to generate the default footer 1079 # that doxygen normally uses. 1080 # This tag requires that the tag GENERATE_HTML is set to YES. 1081 1082 HTML_FOOTER = 1083 1084 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style 1085 # sheet that is used by each HTML page. It can be used to fine-tune the look of 1086 # the HTML output. If left blank doxygen will generate a default style sheet. 1087 # See also section "Doxygen usage" for information on how to generate the style 1088 # sheet that doxygen normally uses. 1089 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as 1090 # it is more robust and this tag (HTML_STYLESHEET) will in the future become 1091 # obsolete. 1092 # This tag requires that the tag GENERATE_HTML is set to YES. 1093 1094 HTML_STYLESHEET = 1095 1096 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined 1097 # cascading style sheets that are included after the standard style sheets 1098 # created by doxygen. Using this option one can overrule certain style aspects. 1099 # This is preferred over using HTML_STYLESHEET since it does not replace the 1100 # standard style sheet and is therefore more robust against future updates. 1101 # Doxygen will copy the style sheet files to the output directory. 1102 # Note: The order of the extra style sheet files is of importance (e.g. the last 1103 # style sheet in the list overrules the setting of the previous ones in the 1104 # list). For an example see the documentation. 1105 # This tag requires that the tag GENERATE_HTML is set to YES. 1106 1107 HTML_EXTRA_STYLESHEET = 1108 1109 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or 1110 # other source files which should be copied to the HTML output directory. Note 1111 # that these files will be copied to the base HTML output directory. Use the 1112 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these 1113 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the 1114 # files will be copied as-is; there are no commands or markers available. 1115 # This tag requires that the tag GENERATE_HTML is set to YES. 1116 1117 HTML_EXTRA_FILES = 1118 1119 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen 1120 # will adjust the colors in the style sheet and background images according to 1121 # this color. Hue is specified as an angle on a colorwheel, see 1122 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value 1123 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 1124 # purple, and 360 is red again. 1125 # Minimum value: 0, maximum value: 359, default value: 220. 1126 # This tag requires that the tag GENERATE_HTML is set to YES. 1127 1128 HTML_COLORSTYLE_HUE = 220 1129 1130 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors 1131 # in the HTML output. For a value of 0 the output will use grayscales only. A 1132 # value of 255 will produce the most vivid colors. 1133 # Minimum value: 0, maximum value: 255, default value: 100. 1134 # This tag requires that the tag GENERATE_HTML is set to YES. 1135 1136 HTML_COLORSTYLE_SAT = 100 1137 1138 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the 1139 # luminance component of the colors in the HTML output. Values below 100 1140 # gradually make the output lighter, whereas values above 100 make the output 1141 # darker. The value divided by 100 is the actual gamma applied, so 80 represents 1142 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not 1143 # change the gamma. 1144 # Minimum value: 40, maximum value: 240, default value: 80. 1145 # This tag requires that the tag GENERATE_HTML is set to YES. 1146 1147 HTML_COLORSTYLE_GAMMA = 80 1148 1149 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML 1150 # page will contain the date and time when the page was generated. Setting this 1151 # to YES can help to show when doxygen was last run and thus if the 1152 # documentation is up to date. 1153 # The default value is: NO. 1154 # This tag requires that the tag GENERATE_HTML is set to YES. 1155 1156 HTML_TIMESTAMP = NO 1157 1158 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 1159 # documentation will contain sections that can be hidden and shown after the 1160 # page has loaded. 1161 # The default value is: NO. 1162 # This tag requires that the tag GENERATE_HTML is set to YES. 1163 1164 HTML_DYNAMIC_SECTIONS = NO 1165 1166 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries 1167 # shown in the various tree structured indices initially; the user can expand 1168 # and collapse entries dynamically later on. Doxygen will expand the tree to 1169 # such a level that at most the specified number of entries are visible (unless 1170 # a fully collapsed tree already exceeds this amount). So setting the number of 1171 # entries 1 will produce a full collapsed tree by default. 0 is a special value 1172 # representing an infinite number of entries and will result in a full expanded 1173 # tree by default. 1174 # Minimum value: 0, maximum value: 9999, default value: 100. 1175 # This tag requires that the tag GENERATE_HTML is set to YES. 1176 1177 HTML_INDEX_NUM_ENTRIES = 100 1178 1179 # If the GENERATE_DOCSET tag is set to YES, additional index files will be 1180 # generated that can be used as input for Apple's Xcode 3 integrated development 1181 # environment (see: http://developer.apple.com/tools/xcode/), introduced with 1182 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a 1183 # Makefile in the HTML output directory. Running make will produce the docset in 1184 # that directory and running make install will install the docset in 1185 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at 1186 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html 836 # The HTML_HEADER tag can be used to specify a personal HTML header for 837 # each generated HTML page. If it is left blank doxygen will generate a 838 # standard header. Note that when using a custom header you are responsible 839 # for the proper inclusion of any scripts and style sheets that doxygen 840 # needs, which is dependent on the configuration options used. 841 # It is adviced to generate a default header using "doxygen -w html 842 # header.html footer.html stylesheet.css YourConfigFile" and then modify 843 # that header. Note that the header is subject to change so you typically 844 # have to redo this when upgrading to a newer version of doxygen or when 845 # changing the value of configuration settings such as GENERATE_TREEVIEW! 846 847 HTML_HEADER = 848 849 # The HTML_FOOTER tag can be used to specify a personal HTML footer for 850 # each generated HTML page. If it is left blank doxygen will generate a 851 # standard footer. 852 853 HTML_FOOTER = 854 855 # If the HTML_TIMESTAMP tag is set to YES then the generated HTML 856 # documentation will contain the timesstamp. 857 858 HTML_TIMESTAMP = YES 859 860 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading 861 # style sheet that is used by each HTML page. It can be used to 862 # fine-tune the look of the HTML output. If the tag is left blank doxygen 863 # will generate a default style sheet. Note that doxygen will try to copy 864 # the style sheet file to the HTML output directory, so don't put your own 865 # stylesheet in the HTML output directory as well, or it will be erased! 866 867 HTML_STYLESHEET = 868 869 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or 870 # other source files which should be copied to the HTML output directory. Note 871 # that these files will be copied to the base HTML output directory. Use the 872 # $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these 873 # files. In the HTML_STYLESHEET file, use the file name only. Also note that 874 # the files will be copied as-is; there are no commands or markers available. 875 876 HTML_EXTRA_FILES = 877 878 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. 879 # Doxygen will adjust the colors in the stylesheet and background images 880 # according to this color. Hue is specified as an angle on a colorwheel, 881 # see http://en.wikipedia.org/wiki/Hue for more information. 882 # For instance the value 0 represents red, 60 is yellow, 120 is green, 883 # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. 884 # The allowed range is 0 to 359. 885 886 HTML_COLORSTYLE_HUE = 224 887 888 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of 889 # the colors in the HTML output. For a value of 0 the output will use 890 # grayscales only. A value of 255 will produce the most vivid colors. 891 892 HTML_COLORSTYLE_SAT = 63 893 894 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to 895 # the luminance component of the colors in the HTML output. Values below 896 # 100 gradually make the output lighter, whereas values above 100 make 897 # the output darker. The value divided by 100 is the actual gamma applied, 898 # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, 899 # and 100 does not change the gamma. 900 901 HTML_COLORSTYLE_GAMMA = 152 902 903 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML 904 # page will contain the date and time when the page was generated. Setting 905 # this to NO can help when comparing the output of multiple runs. 906 907 HTML_TIMESTAMP = YES 908 909 # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 910 # files or namespaces will be aligned in HTML using tables. If set to 911 # NO a bullet list will be used. 912 913 HTML_ALIGN_MEMBERS = YES 914 915 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 916 # documentation will contain sections that can be hidden and shown after the 917 # page has loaded. For this to work a browser that supports 918 # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 919 # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). 920 921 HTML_DYNAMIC_SECTIONS = YES 922 923 # If the GENERATE_DOCSET tag is set to YES, additional index files 924 # will be generated that can be used as input for Apple's Xcode 3 925 # integrated development environment, introduced with OSX 10.5 (Leopard). 926 # To create a documentation set, doxygen will generate a Makefile in the 927 # HTML output directory. Running make will produce the docset in that 928 # directory and running "make install" will install the docset in 929 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 930 # it at startup. 931 # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html 1187 932 # for more information. 1188 # The default value is: NO.1189 # This tag requires that the tag GENERATE_HTML is set to YES.1190 933 1191 934 GENERATE_DOCSET = NO 1192 935 1193 # This tag determines the name of the docset feed. A documentation feed provides 1194 # an umbrella under which multiple documentation sets from a single provider 1195 # (such as a company or product suite) can be grouped. 1196 # The default value is: Doxygen generated docs. 1197 # This tag requires that the tag GENERATE_DOCSET is set to YES. 936 # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 937 # feed. A documentation feed provides an umbrella under which multiple 938 # documentation sets from a single provider (such as a company or product suite) 939 # can be grouped. 1198 940 1199 941 DOCSET_FEEDNAME = "Doxygen generated docs" 1200 942 1201 # This tag specifies a string that should uniquely identify the documentation 1202 # set bundle. This should be a reverse domain-name style string, e.g. 1203 # com.mycompany.MyDocSet. Doxygen will append .docset to the name. 1204 # The default value is: org.doxygen.Project. 1205 # This tag requires that the tag GENERATE_DOCSET is set to YES. 943 # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 944 # should uniquely identify the documentation set bundle. This should be a 945 # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 946 # will append .docset to the name. 1206 947 1207 948 DOCSET_BUNDLE_ID = org.doxygen.Project 1208 949 1209 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify1210 # the documentation publisher. This should be a reverse domain-name style 950 # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify 951 # the documentation publisher. This should be a reverse domain-name style 1211 952 # string, e.g. com.mycompany.MyDocSet.documentation. 1212 # The default value is: org.doxygen.Publisher.1213 # This tag requires that the tag GENERATE_DOCSET is set to YES.1214 953 1215 954 DOCSET_PUBLISHER_ID = org.doxygen.Publisher 1216 955 1217 # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. 1218 # The default value is: Publisher. 1219 # This tag requires that the tag GENERATE_DOCSET is set to YES. 956 # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. 1220 957 1221 958 DOCSET_PUBLISHER_NAME = Publisher 1222 959 1223 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three 1224 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The 1225 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop 1226 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on 1227 # Windows. 1228 # 1229 # The HTML Help Workshop contains a compiler that can convert all HTML output 1230 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML 1231 # files are now used as the Windows 98 help format, and will replace the old 1232 # Windows help format (.hlp) on all Windows platforms in the future. Compressed 1233 # HTML files also contain an index, a table of contents, and you can search for 1234 # words in the documentation. The HTML workshop also contains a viewer for 1235 # compressed HTML files. 1236 # The default value is: NO. 1237 # This tag requires that the tag GENERATE_HTML is set to YES. 960 # If the GENERATE_HTMLHELP tag is set to YES, additional index files 961 # will be generated that can be used as input for tools like the 962 # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 963 # of the generated HTML documentation. 1238 964 1239 965 GENERATE_HTMLHELP = NO 1240 966 1241 # The CHM_FILE tag can be used to specify the file name of the resulting .chm 1242 # file. You can add a path in front of the file if the result should not be 967 # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 968 # be used to specify the file name of the resulting .chm file. You 969 # can add a path in front of the file if the result should not be 1243 970 # written to the html output directory. 1244 # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 1245 1246 CHM_FILE = 1247 1248 # The HHC_LOCATION tag can be used to specify the location (absolute path 1249 # including file name) of the HTML help compiler (hhc.exe). If non-empty, 1250 # doxygen will try to run the HTML help compiler on the generated index.hhp. 1251 # The file has to be specified with full path. 1252 # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 1253 1254 HHC_LOCATION = 1255 1256 # The GENERATE_CHI flag controls if a separate .chi index file is generated 1257 # (YES) or that it should be included in the master .chm file (NO). 1258 # The default value is: NO. 1259 # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 971 972 CHM_FILE = 973 974 # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 975 # be used to specify the location (absolute path including file name) of 976 # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 977 # the HTML help compiler on the generated index.hhp. 978 979 HHC_LOCATION = 980 981 # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 982 # controls if a separate .chi index file is generated (YES) or that 983 # it should be included in the master .chm file (NO). 1260 984 1261 985 GENERATE_CHI = NO 1262 986 1263 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) 1264 # and project file content. 1265 # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 1266 1267 CHM_INDEX_ENCODING = 1268 1269 # The BINARY_TOC flag controls whether a binary table of contents is generated 1270 # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it 1271 # enables the Previous and Next buttons. 1272 # The default value is: NO. 1273 # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 987 # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING 988 # is used to encode HtmlHelp index (hhk), content (hhc) and project file 989 # content. 990 991 CHM_INDEX_ENCODING = 992 993 # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 994 # controls whether a binary table of contents is generated (YES) or a 995 # normal table of contents (NO) in the .chm file. 1274 996 1275 997 BINARY_TOC = NO 1276 998 1277 # The TOC_EXPAND flag can be set to YES to add extra items for group members to 1278 # the table of contents of the HTML help documentation and to the tree view. 1279 # The default value is: NO. 1280 # This tag requires that the tag GENERATE_HTMLHELP is set to YES. 999 # The TOC_EXPAND flag can be set to YES to add extra items for group members 1000 # to the contents of the HTML help documentation and to the tree view. 1281 1001 1282 1002 TOC_EXPAND = NO 1283 1003 1284 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and 1285 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that 1286 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help 1287 # (.qch) of the generated HTML documentation. 1288 # The default value is: NO. 1289 # This tag requires that the tag GENERATE_HTML is set to YES. 1004 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and 1005 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated 1006 # that can be used as input for Qt's qhelpgenerator to generate a 1007 # Qt Compressed Help (.qch) of the generated HTML documentation. 1290 1008 1291 1009 GENERATE_QHP = NO 1292 1010 1293 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify 1294 # the file name of the resulting .qch file. The path specified is relative to 1295 # the HTML output folder. 1296 # This tag requires that the tag GENERATE_QHP is set to YES. 1297 1298 QCH_FILE = 1299 1300 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help 1301 # Project output. For more information please see Qt Help Project / Namespace 1302 # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). 1303 # The default value is: org.doxygen.Project. 1304 # This tag requires that the tag GENERATE_QHP is set to YES. 1011 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can 1012 # be used to specify the file name of the resulting .qch file. 1013 # The path specified is relative to the HTML output folder. 1014 1015 QCH_FILE = 1016 1017 # The QHP_NAMESPACE tag specifies the namespace to use when generating 1018 # Qt Help Project output. For more information please see 1019 # http://doc.trolltech.com/qthelpproject.html#namespace 1305 1020 1306 1021 QHP_NAMESPACE = org.doxygen.Project 1307 1022 1308 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt 1309 # Help Project output. For more information please see Qt Help Project / Virtual 1310 # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- 1311 # folders). 1312 # The default value is: doc. 1313 # This tag requires that the tag GENERATE_QHP is set to YES. 1023 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating 1024 # Qt Help Project output. For more information please see 1025 # http://doc.trolltech.com/qthelpproject.html#virtual-folders 1314 1026 1315 1027 QHP_VIRTUAL_FOLDER = doc 1316 1028 1317 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom 1318 # filter to add. For more information please see Qt Help Project / Custom 1319 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- 1320 # filters). 1321 # This tag requires that the tag GENERATE_QHP is set to YES. 1322 1323 QHP_CUST_FILTER_NAME = 1324 1325 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the 1326 # custom filter to add. For more information please see Qt Help Project / Custom 1327 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- 1328 # filters). 1329 # This tag requires that the tag GENERATE_QHP is set to YES. 1330 1331 QHP_CUST_FILTER_ATTRS = 1332 1333 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this 1334 # project's filter section matches. Qt Help Project / Filter Attributes (see: 1335 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). 1336 # This tag requires that the tag GENERATE_QHP is set to YES. 1337 1338 QHP_SECT_FILTER_ATTRS = 1339 1340 # The QHG_LOCATION tag can be used to specify the location of Qt's 1341 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the 1342 # generated .qhp file. 1343 # This tag requires that the tag GENERATE_QHP is set to YES. 1344 1345 QHG_LOCATION = 1346 1347 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be 1348 # generated, together with the HTML files, they form an Eclipse help plugin. To 1349 # install this plugin and make it available under the help contents menu in 1350 # Eclipse, the contents of the directory containing the HTML and XML files needs 1351 # to be copied into the plugins directory of eclipse. The name of the directory 1352 # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. 1353 # After copying Eclipse needs to be restarted before the help appears. 1354 # The default value is: NO. 1355 # This tag requires that the tag GENERATE_HTML is set to YES. 1029 # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to 1030 # add. For more information please see 1031 # http://doc.trolltech.com/qthelpproject.html#custom-filters 1032 1033 QHP_CUST_FILTER_NAME = 1034 1035 # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the 1036 # custom filter to add. For more information please see 1037 # <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters"> 1038 # Qt Help Project / Custom Filters</a>. 1039 1040 QHP_CUST_FILTER_ATTRS = 1041 1042 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this 1043 # project's 1044 # filter section matches. 1045 # <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes"> 1046 # Qt Help Project / Filter Attributes</a>. 1047 1048 QHP_SECT_FILTER_ATTRS = 1049 1050 # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can 1051 # be used to specify the location of Qt's qhelpgenerator. 1052 # If non-empty doxygen will try to run qhelpgenerator on the generated 1053 # .qhp file. 1054 1055 QHG_LOCATION = 1056 1057 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files 1058 # will be generated, which together with the HTML files, form an Eclipse help 1059 # plugin. To install this plugin and make it available under the help contents 1060 # menu in Eclipse, the contents of the directory containing the HTML and XML 1061 # files needs to be copied into the plugins directory of eclipse. The name of 1062 # the directory within the plugins directory should be the same as 1063 # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before 1064 # the help appears. 1356 1065 1357 1066 GENERATE_ECLIPSEHELP = NO 1358 1067 1359 # A unique identifier for the Eclipse help plugin. When installing the plugin 1360 # the directory name containing the HTML and XML files should also have this 1361 # name. Each documentation set should have its own identifier. 1362 # The default value is: org.doxygen.Project. 1363 # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. 1068 # A unique identifier for the eclipse help plugin. When installing the plugin 1069 # the directory name containing the HTML and XML files should also have 1070 # this name. 1364 1071 1365 1072 ECLIPSE_DOC_ID = org.doxygen.Project 1366 1073 1367 # If you want full control over the layout of the generated HTML pages it might 1368 # be necessary to disable the index and replace it with your own. The 1369 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top 1370 # of each HTML page. A value of NO enables the index and the value YES disables 1371 # it. Since the tabs in the index contain the same information as the navigation 1372 # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. 1373 # The default value is: NO. 1374 # This tag requires that the tag GENERATE_HTML is set to YES. 1074 # The DISABLE_INDEX tag can be used to turn on/off the condensed index at 1075 # top of each HTML page. The value NO (the default) enables the index and 1076 # the value YES disables it. 1375 1077 1376 1078 DISABLE_INDEX = NO 1377 1079 1378 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index 1379 # structure should be generated to display hierarchical information. If the tag 1380 # value is set to YES, a side panel will be generated containing a tree-like 1381 # index structure (just like the one that is generated for HTML Help). For this 1382 # to work a browser that supports JavaScript, DHTML, CSS and frames is required 1383 # (i.e. any modern browser). Windows users are probably better off using the 1384 # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can 1385 # further fine-tune the look of the index. As an example, the default style 1386 # sheet generated by doxygen has an example that shows how to put an image at 1387 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has 1388 # the same information as the tab index, you could consider setting 1389 # DISABLE_INDEX to YES when enabling this option. 1390 # The default value is: NO. 1391 # This tag requires that the tag GENERATE_HTML is set to YES. 1392 1393 GENERATE_TREEVIEW = NO 1394 1395 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that 1396 # doxygen will group on one line in the generated HTML documentation. 1397 # 1398 # Note that a value of 0 will completely suppress the enum values from appearing 1399 # in the overview section. 1400 # Minimum value: 0, maximum value: 20, default value: 4. 1401 # This tag requires that the tag GENERATE_HTML is set to YES. 1080 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values 1081 # (range [0,1..20]) that doxygen will group on one line in the generated HTML 1082 # documentation. Note that a value of 0 will completely suppress the enum 1083 # values from appearing in the overview section. 1402 1084 1403 1085 ENUM_VALUES_PER_LINE = 4 1404 1086 1405 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used 1406 # to set the initial width (in pixels) of the frame in which the tree is shown. 1407 # Minimum value: 0, maximum value: 1500, default value: 250. 1408 # This tag requires that the tag GENERATE_HTML is set to YES. 1087 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index 1088 # structure should be generated to display hierarchical information. 1089 # If the tag value is set to YES, a side panel will be generated 1090 # containing a tree-like index structure (just like the one that 1091 # is generated for HTML Help). For this to work a browser that supports 1092 # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). 1093 # Windows users are probably better off using the HTML help feature. 1094 1095 GENERATE_TREEVIEW = YES 1096 1097 # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, 1098 # and Class Hierarchy pages using a tree view instead of an ordered list. 1099 1100 USE_INLINE_TREES = YES 1101 1102 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 1103 # used to set the initial width (in pixels) of the frame in which the tree 1104 # is shown. 1409 1105 1410 1106 TREEVIEW_WIDTH = 250 1411 1107 1412 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to 1413 # external symbols imported via tag files in a separate window. 1414 # The default value is: NO. 1415 # This tag requires that the tag GENERATE_HTML is set to YES. 1108 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open 1109 # links to external symbols imported via tag files in a separate window. 1416 1110 1417 1111 EXT_LINKS_IN_WINDOW = NO 1418 1112 1419 # Use this tag to change the font size of LaTeX formulas included as images in 1420 # the HTML documentation. When you change the font size after a successful 1421 # doxygen run you need to manually remove any form_*.png images from the HTML 1422 # output directory to force them to be regenerated. 1423 # Minimum value: 8, maximum value: 50, default value: 10. 1424 # This tag requires that the tag GENERATE_HTML is set to YES. 1113 # Use this tag to change the font size of Latex formulas included 1114 # as images in the HTML documentation. The default is 10. Note that 1115 # when you change the font size after a successful doxygen run you need 1116 # to manually remove any form_*.png images from the HTML output directory 1117 # to force them to be regenerated. 1425 1118 1426 1119 FORMULA_FONTSIZE = 10 1427 1120 1428 # Use the FORMULA_TRANPARENT tag to determine whether or not the images 1429 # generated for formulas are transparent PNGs. Transparent PNGs are not 1430 # supported properly for IE 6.0, but are supported on all modern browsers. 1431 # 1432 # Note that when changing this option you need to delete any form_*.png files in 1433 # the HTML output directory before the changes have effect. 1434 # The default value is: YES. 1435 # This tag requires that the tag GENERATE_HTML is set to YES. 1121 # Use the FORMULA_TRANPARENT tag to determine whether or not the images 1122 # generated for formulas are transparent PNGs. Transparent PNGs are 1123 # not supported properly for IE 6.0, but are supported on all modern browsers. 1124 # Note that when changing this option you need to delete any form_*.png files 1125 # in the HTML output before the changes have effect. 1436 1126 1437 1127 FORMULA_TRANSPARENT = YES 1438 1128 1439 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see 1440 # http://www.mathjax.org) which uses client side Javascript for the rendering 1441 # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX 1442 # installed or if you want to formulas look prettier in the HTML output. When 1443 # enabled you may also need to install MathJax separately and configure the path 1444 # to it using the MATHJAX_RELPATH option. 1445 # The default value is: NO. 1446 # This tag requires that the tag GENERATE_HTML is set to YES. 1129 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax 1130 # (see http://www.mathjax.org) which uses client side Javascript for the 1131 # rendering instead of using prerendered bitmaps. Use this if you do not 1132 # have LaTeX installed or if you want to formulas look prettier in the HTML 1133 # output. When enabled you also need to install MathJax separately and 1134 # configure the path to it using the MATHJAX_RELPATH option. 1447 1135 1448 1136 USE_MATHJAX = NO 1449 1137 1450 # When MathJax is enabled you can set the default output format to be used for 1451 # the MathJax output. See the MathJax site (see: 1452 # http://docs.mathjax.org/en/latest/output.html) for more details. 1453 # Possible values are: HTML-CSS (which is slower, but has the best 1454 # compatibility), NativeMML (i.e. MathML) and SVG. 1455 # The default value is: HTML-CSS. 1456 # This tag requires that the tag USE_MATHJAX is set to YES. 1457 1458 MATHJAX_FORMAT = HTML-CSS 1459 1460 # When MathJax is enabled you need to specify the location relative to the HTML 1461 # output directory using the MATHJAX_RELPATH option. The destination directory 1462 # should contain the MathJax.js script. For instance, if the mathjax directory 1463 # is located at the same level as the HTML output directory, then 1464 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax 1465 # Content Delivery Network so you can quickly see the result without installing 1466 # MathJax. However, it is strongly recommended to install a local copy of 1467 # MathJax from http://www.mathjax.org before deployment. 1468 # The default value is: http://cdn.mathjax.org/mathjax/latest. 1469 # This tag requires that the tag USE_MATHJAX is set to YES. 1470 1471 MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest 1472 1473 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax 1474 # extension names that should be enabled during MathJax rendering. For example 1475 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols 1476 # This tag requires that the tag USE_MATHJAX is set to YES. 1477 1478 MATHJAX_EXTENSIONS = 1479 1480 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces 1481 # of code that will be used on startup of the MathJax code. See the MathJax site 1482 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an 1483 # example see the documentation. 1484 # This tag requires that the tag USE_MATHJAX is set to YES. 1485 1486 MATHJAX_CODEFILE = 1487 1488 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for 1489 # the HTML output. The underlying search engine uses javascript and DHTML and 1490 # should work on any modern browser. Note that when using HTML help 1491 # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) 1492 # there is already a search function so this one should typically be disabled. 1493 # For large projects the javascript based search engine can be slow, then 1494 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to 1495 # search using the keyboard; to jump to the search box use <access key> + S 1496 # (what the <access key> is depends on the OS and browser, but it is typically 1497 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down 1498 # key> to jump into the search results window, the results can be navigated 1499 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel 1500 # the search. The filter options can be selected when the cursor is inside the 1501 # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys> 1502 # to select a filter and <Enter> or <escape> to activate or cancel the filter 1503 # option. 1504 # The default value is: YES. 1505 # This tag requires that the tag GENERATE_HTML is set to YES. 1138 # When MathJax is enabled you need to specify the location relative to the 1139 # HTML output directory using the MATHJAX_RELPATH option. The destination 1140 # directory should contain the MathJax.js script. For instance, if the mathjax 1141 # directory is located at the same level as the HTML output directory, then 1142 # MATHJAX_RELPATH should be ../mathjax. The default value points to the 1143 # mathjax.org site, so you can quickly see the result without installing 1144 # MathJax, but it is strongly recommended to install a local copy of MathJax 1145 # before deployment. 1146 1147 MATHJAX_RELPATH = http://www.mathjax.org/mathjax 1148 1149 # When the SEARCHENGINE tag is enabled doxygen will generate a search box 1150 # for the HTML output. The underlying search engine uses javascript 1151 # and DHTML and should work on any modern browser. Note that when using 1152 # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets 1153 # (GENERATE_DOCSET) there is already a search function so this one should 1154 # typically be disabled. For large projects the javascript based search engine 1155 # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. 1506 1156 1507 1157 SEARCHENGINE = YES 1508 1158 1509 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be 1510 # implemented using a web server instead of a web client using Javascript. There 1511 # are two flavors of web server based searching depending on the EXTERNAL_SEARCH 1512 # setting. When disabled, doxygen will generate a PHP script for searching and 1513 # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing 1514 # and searching needs to be provided by external tools. See the section 1515 # "External Indexing and Searching" for details. 1516 # The default value is: NO. 1517 # This tag requires that the tag SEARCHENGINE is set to YES. 1159 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be 1160 # implemented using a PHP enabled web server instead of at the web client 1161 # using Javascript. Doxygen will generate the search PHP script and index 1162 # file to put on the web server. The advantage of the server 1163 # based approach is that it scales better to large projects and allows 1164 # full text search. The disadvantages are that it is more difficult to setup 1165 # and does not have live searching capabilities. 1518 1166 1519 1167 SERVER_BASED_SEARCH = NO 1520 1168 1521 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP 1522 # script for searching. Instead the search results are written to an XML file 1523 # which needs to be processed by an external indexer. Doxygen will invoke an 1524 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the 1525 # search results. 1526 # 1527 # Doxygen ships with an example indexer (doxyindexer) and search engine 1528 # (doxysearch.cgi) which are based on the open source search engine library 1529 # Xapian (see: http://xapian.org/). 1530 # 1531 # See the section "External Indexing and Searching" for details. 1532 # The default value is: NO. 1533 # This tag requires that the tag SEARCHENGINE is set to YES. 1534 1535 EXTERNAL_SEARCH = NO 1536 1537 # The SEARCHENGINE_URL should point to a search engine hosted by a web server 1538 # which will return the search results when EXTERNAL_SEARCH is enabled. 1539 # 1540 # Doxygen ships with an example indexer (doxyindexer) and search engine 1541 # (doxysearch.cgi) which are based on the open source search engine library 1542 # Xapian (see: http://xapian.org/). See the section "External Indexing and 1543 # Searching" for details. 1544 # This tag requires that the tag SEARCHENGINE is set to YES. 1545 1546 SEARCHENGINE_URL = 1547 1548 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed 1549 # search data is written to a file for indexing by an external tool. With the 1550 # SEARCHDATA_FILE tag the name of this file can be specified. 1551 # The default file is: searchdata.xml. 1552 # This tag requires that the tag SEARCHENGINE is set to YES. 1553 1554 SEARCHDATA_FILE = searchdata.xml 1555 1556 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the 1557 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is 1558 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple 1559 # projects and redirect the results back to the right project. 1560 # This tag requires that the tag SEARCHENGINE is set to YES. 1561 1562 EXTERNAL_SEARCH_ID = 1563 1564 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen 1565 # projects other than the one defined by this configuration file, but that are 1566 # all added to the same external search index. Each project needs to have a 1567 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of 1568 # to a relative location where the documentation can be found. The format is: 1569 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... 1570 # This tag requires that the tag SEARCHENGINE is set to YES. 1571 1572 EXTRA_SEARCH_MAPPINGS = 1573 1574 #--------------------------------------------------------------------------- 1575 # Configuration options related to the LaTeX output 1576 #--------------------------------------------------------------------------- 1577 1578 # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. 1579 # The default value is: YES. 1580 1581 GENERATE_LATEX = YES 1582 1583 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a 1584 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of 1585 # it. 1586 # The default directory is: latex. 1587 # This tag requires that the tag GENERATE_LATEX is set to YES. 1169 #--------------------------------------------------------------------------- 1170 # configuration options related to the LaTeX output 1171 #--------------------------------------------------------------------------- 1172 1173 # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 1174 # generate Latex output. 1175 1176 GENERATE_LATEX = NO 1177 1178 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 1179 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 1180 # put in front of it. If left blank `latex' will be used as the default path. 1588 1181 1589 1182 LATEX_OUTPUT = latex 1590 1183 1591 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 1592 # invoked. 1593 # 1594 # Note that when enabling USE_PDFLATEX this option is only used for generating 1595 # bitmaps for formulas in the HTML output, but not in the Makefile that is 1596 # written to the output directory. 1597 # The default file is: latex. 1598 # This tag requires that the tag GENERATE_LATEX is set to YES. 1184 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 1185 # invoked. If left blank `latex' will be used as the default command name. 1186 # Note that when enabling USE_PDFLATEX this option is only used for 1187 # generating bitmaps for formulas in the HTML output, but not in the 1188 # Makefile that is written to the output directory. 1599 1189 1600 1190 LATEX_CMD_NAME = latex 1601 1191 1602 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate 1603 # index for LaTeX. 1604 # The default file is: makeindex. 1605 # This tag requires that the tag GENERATE_LATEX is set to YES. 1192 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 1193 # generate index for LaTeX. If left blank `makeindex' will be used as the 1194 # default command name. 1606 1195 1607 1196 MAKEINDEX_CMD_NAME = makeindex 1608 1197 1609 # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX 1610 # documents. This may be useful for small projects and may help to save some 1611 # trees in general. 1612 # The default value is: NO. 1613 # This tag requires that the tag GENERATE_LATEX is set to YES. 1198 # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 1199 # LaTeX documents. This may be useful for small projects and may help to 1200 # save some trees in general. 1614 1201 1615 1202 COMPACT_LATEX = NO 1616 1203 1617 # The PAPER_TYPE tag can be used to set the paper type that is used by the 1618 # printer. 1619 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x 1620 # 14 inches) and executive (7.25 x 10.5 inches). 1621 # The default value is: a4. 1622 # This tag requires that the tag GENERATE_LATEX is set to YES. 1204 # The PAPER_TYPE tag can be used to set the paper type that is used 1205 # by the printer. Possible values are: a4, letter, legal and 1206 # executive. If left blank a4wide will be used. 1623 1207 1624 1208 PAPER_TYPE = a4 1625 1209 1626 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names 1627 # that should be included in the LaTeX output. To get the times font for 1628 # instance you can specify 1629 # EXTRA_PACKAGES=times 1630 # If left blank no extra packages will be included. 1631 # This tag requires that the tag GENERATE_LATEX is set to YES. 1632 1633 EXTRA_PACKAGES = 1634 1635 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the 1636 # generated LaTeX document. The header should contain everything until the first 1637 # chapter. If it is left blank doxygen will generate a standard header. See 1638 # section "Doxygen usage" for information on how to let doxygen write the 1639 # default header to a separate file. 1640 # 1641 # Note: Only use a user-defined header if you know what you are doing! The 1642 # following commands have a special meaning inside the header: $title, 1643 # $datetime, $date, $doxygenversion, $projectname, $projectnumber, 1644 # $projectbrief, $projectlogo. Doxygen will replace $title with the empty 1645 # string, for the replacement values of the other commands the user is referred 1646 # to HTML_HEADER. 1647 # This tag requires that the tag GENERATE_LATEX is set to YES. 1648 1649 LATEX_HEADER = 1650 1651 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the 1652 # generated LaTeX document. The footer should contain everything after the last 1653 # chapter. If it is left blank doxygen will generate a standard footer. See 1654 # LATEX_HEADER for more information on how to generate a default footer and what 1655 # special commands can be used inside the footer. 1656 # 1657 # Note: Only use a user-defined footer if you know what you are doing! 1658 # This tag requires that the tag GENERATE_LATEX is set to YES. 1659 1660 LATEX_FOOTER = 1661 1662 # The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined 1663 # LaTeX style sheets that are included after the standard style sheets created 1664 # by doxygen. Using this option one can overrule certain style aspects. Doxygen 1665 # will copy the style sheet files to the output directory. 1666 # Note: The order of the extra style sheet files is of importance (e.g. the last 1667 # style sheet in the list overrules the setting of the previous ones in the 1668 # list). 1669 # This tag requires that the tag GENERATE_LATEX is set to YES. 1670 1671 LATEX_EXTRA_STYLESHEET = 1672 1673 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or 1674 # other source files which should be copied to the LATEX_OUTPUT output 1675 # directory. Note that the files will be copied as-is; there are no commands or 1676 # markers available. 1677 # This tag requires that the tag GENERATE_LATEX is set to YES. 1678 1679 LATEX_EXTRA_FILES = 1680 1681 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is 1682 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will 1683 # contain links (just like the HTML output) instead of page references. This 1684 # makes the output suitable for online browsing using a PDF viewer. 1685 # The default value is: YES. 1686 # This tag requires that the tag GENERATE_LATEX is set to YES. 1210 # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 1211 # packages that should be included in the LaTeX output. 1212 1213 EXTRA_PACKAGES = 1214 1215 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for 1216 # the generated latex document. The header should contain everything until 1217 # the first chapter. If it is left blank doxygen will generate a 1218 # standard header. Notice: only use this tag if you know what you are doing! 1219 1220 LATEX_HEADER = 1221 1222 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for 1223 # the generated latex document. The footer should contain everything after 1224 # the last chapter. If it is left blank doxygen will generate a 1225 # standard footer. Notice: only use this tag if you know what you are doing! 1226 1227 LATEX_FOOTER = 1228 1229 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 1230 # is prepared for conversion to pdf (using ps2pdf). The pdf file will 1231 # contain links (just like the HTML output) instead of page references 1232 # This makes the output suitable for online browsing using a pdf viewer. 1687 1233 1688 1234 PDF_HYPERLINKS = YES 1689 1235 1690 # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate1691 # the PDF file directly from the LaTeX files. Set this option to YES, to get a1236 # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 1237 # plain latex in the generated Makefile. Set this option to YES to get a 1692 1238 # higher quality PDF documentation. 1693 # The default value is: YES.1694 # This tag requires that the tag GENERATE_LATEX is set to YES.1695 1239 1696 1240 USE_PDFLATEX = YES 1697 1241 1698 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode 1699 # command to the generated LaTeX files. This will instruct LaTeX to keep running 1700 # if errors occur, instead of asking the user for help. This option is also used 1701 # when generating formulas in HTML. 1702 # The default value is: NO. 1703 # This tag requires that the tag GENERATE_LATEX is set to YES. 1242 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 1243 # command to the generated LaTeX files. This will instruct LaTeX to keep 1244 # running if errors occur, instead of asking the user for help. 1245 # This option is also used when generating formulas in HTML. 1704 1246 1705 1247 LATEX_BATCHMODE = NO 1706 1248 1707 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the 1708 # index chapters (such as File Index, Compound Index, etc.) in the output. 1709 # The default value is: NO. 1710 # This tag requires that the tag GENERATE_LATEX is set to YES. 1249 # If LATEX_HIDE_INDICES is set to YES then doxygen will not 1250 # include the index chapters (such as File Index, Compound Index, etc.) 1251 # in the output. 1711 1252 1712 1253 LATEX_HIDE_INDICES = NO 1713 1254 1714 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source 1715 # code with syntax highlighting in the LaTeX output. 1716 # 1717 # Note that which sources are shown also depends on other settings such as 1718 # SOURCE_BROWSER. 1719 # The default value is: NO. 1720 # This tag requires that the tag GENERATE_LATEX is set to YES. 1255 # If LATEX_SOURCE_CODE is set to YES then doxygen will include 1256 # source code with syntax highlighting in the LaTeX output. 1257 # Note that which sources are shown also depends on other settings 1258 # such as SOURCE_BROWSER. 1721 1259 1722 1260 LATEX_SOURCE_CODE = NO 1723 1261 1724 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the 1725 # bibliography, e.g. plainnat, or ieeetr. See 1726 # http://en.wikipedia.org/wiki/BibTeX and \cite for more info. 1727 # The default value is: plain. 1728 # This tag requires that the tag GENERATE_LATEX is set to YES. 1729 1730 LATEX_BIB_STYLE = plain 1731 1732 #--------------------------------------------------------------------------- 1733 # Configuration options related to the RTF output 1734 #--------------------------------------------------------------------------- 1735 1736 # If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The 1737 # RTF output is optimized for Word 97 and may not look too pretty with other RTF 1738 # readers/editors. 1739 # The default value is: NO. 1262 #--------------------------------------------------------------------------- 1263 # configuration options related to the RTF output 1264 #--------------------------------------------------------------------------- 1265 1266 # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 1267 # The RTF output is optimized for Word 97 and may not look very pretty with 1268 # other RTF readers or editors. 1740 1269 1741 1270 GENERATE_RTF = NO 1742 1271 1743 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a 1744 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of 1745 # it. 1746 # The default directory is: rtf. 1747 # This tag requires that the tag GENERATE_RTF is set to YES. 1272 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 1273 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 1274 # put in front of it. If left blank `rtf' will be used as the default path. 1748 1275 1749 1276 RTF_OUTPUT = rtf 1750 1277 1751 # If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF 1752 # documents. This may be useful for small projects and may help to save some 1753 # trees in general. 1754 # The default value is: NO. 1755 # This tag requires that the tag GENERATE_RTF is set to YES. 1278 # If the COMPACT_RTF tag is set to YES Doxygen generates more compact 1279 # RTF documents. This may be useful for small projects and may help to 1280 # save some trees in general. 1756 1281 1757 1282 COMPACT_RTF = NO 1758 1283 1759 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will 1760 # contain hyperlink fields. The RTF file will contain links (just like the HTML 1761 # output) instead of page references. This makes the output suitable for online 1762 # browsing using Word or some other Word compatible readers that support those 1763 # fields. 1764 # 1765 # Note: WordPad (write) and others do not support links. 1766 # The default value is: NO. 1767 # This tag requires that the tag GENERATE_RTF is set to YES. 1284 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 1285 # will contain hyperlink fields. The RTF file will 1286 # contain links (just like the HTML output) instead of page references. 1287 # This makes the output suitable for online browsing using WORD or other 1288 # programs which support those fields. 1289 # Note: wordpad (write) and others do not support links. 1768 1290 1769 1291 RTF_HYPERLINKS = NO 1770 1292 1771 # Load stylesheet definitions from file. Syntax is similar to doxygen's config 1772 # file, i.e. a series of assignments. You only have to provide replacements, 1773 # missing definitions are set to their default value. 1774 # 1775 # See also section "Doxygen usage" for information on how to generate the 1776 # default style sheet that doxygen normally uses. 1777 # This tag requires that the tag GENERATE_RTF is set to YES. 1778 1779 RTF_STYLESHEET_FILE = 1780 1781 # Set optional variables used in the generation of an RTF document. Syntax is 1782 # similar to doxygen's config file. A template extensions file can be generated 1783 # using doxygen -e rtf extensionFile. 1784 # This tag requires that the tag GENERATE_RTF is set to YES. 1785 1786 RTF_EXTENSIONS_FILE = 1787 1788 # If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code 1789 # with syntax highlighting in the RTF output. 1790 # 1791 # Note that which sources are shown also depends on other settings such as 1792 # SOURCE_BROWSER. 1793 # The default value is: NO. 1794 # This tag requires that the tag GENERATE_RTF is set to YES. 1795 1796 RTF_SOURCE_CODE = NO 1797 1798 #--------------------------------------------------------------------------- 1799 # Configuration options related to the man page output 1800 #--------------------------------------------------------------------------- 1801 1802 # If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for 1803 # classes and files. 1804 # The default value is: NO. 1293 # Load stylesheet definitions from file. Syntax is similar to doxygen's 1294 # config file, i.e. a series of assignments. You only have to provide 1295 # replacements, missing definitions are set to their default value. 1296 1297 RTF_STYLESHEET_FILE = 1298 1299 # Set optional variables used in the generation of an rtf document. 1300 # Syntax is similar to doxygen's config file. 1301 1302 RTF_EXTENSIONS_FILE = 1303 1304 #--------------------------------------------------------------------------- 1305 # configuration options related to the man page output 1306 #--------------------------------------------------------------------------- 1307 1308 # If the GENERATE_MAN tag is set to YES (the default) Doxygen will 1309 # generate man pages 1805 1310 1806 1311 GENERATE_MAN = NO 1807 1312 1808 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a 1809 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of 1810 # it. A directory man3 will be created inside the directory specified by 1811 # MAN_OUTPUT. 1812 # The default directory is: man. 1813 # This tag requires that the tag GENERATE_MAN is set to YES. 1313 # The MAN_OUTPUT tag is used to specify where the man pages will be put. 1314 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 1315 # put in front of it. If left blank `man' will be used as the default path. 1814 1316 1815 1317 MAN_OUTPUT = man 1816 1318 1817 # The MAN_EXTENSION tag determines the extension that is added to the generated 1818 # man pages. In case the manual section does not start with a number, the number 1819 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is 1820 # optional. 1821 # The default value is: .3. 1822 # This tag requires that the tag GENERATE_MAN is set to YES. 1319 # The MAN_EXTENSION tag determines the extension that is added to 1320 # the generated man pages (default is the subroutine's section .3) 1823 1321 1824 1322 MAN_EXTENSION = .3 1825 1323 1826 # The MAN_SUBDIR tag determines the name of the directory created within 1827 # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by 1828 # MAN_EXTENSION with the initial . removed. 1829 # This tag requires that the tag GENERATE_MAN is set to YES. 1830 1831 MAN_SUBDIR = 1832 1833 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it 1834 # will generate one additional man file for each entity documented in the real 1835 # man page(s). These additional files only source the real man page, but without 1836 # them the man command would be unable to find the correct page. 1837 # The default value is: NO. 1838 # This tag requires that the tag GENERATE_MAN is set to YES. 1324 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, 1325 # then it will generate one additional man file for each entity 1326 # documented in the real man page(s). These additional files 1327 # only source the real man page, but without them the man command 1328 # would be unable to find the correct page. The default is NO. 1839 1329 1840 1330 MAN_LINKS = NO 1841 1331 1842 1332 #--------------------------------------------------------------------------- 1843 # Configuration options related to the XML output1844 #--------------------------------------------------------------------------- 1845 1846 # If the GENERATE_XML tag is set to YES , doxygen will generate an XML file that1847 # captures the structure of the code including all documentation.1848 # The default value is: NO.1333 # configuration options related to the XML output 1334 #--------------------------------------------------------------------------- 1335 1336 # If the GENERATE_XML tag is set to YES Doxygen will 1337 # generate an XML file that captures the structure of 1338 # the code including all documentation. 1849 1339 1850 1340 GENERATE_XML = NO 1851 1341 1852 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a 1853 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of 1854 # it. 1855 # The default directory is: xml. 1856 # This tag requires that the tag GENERATE_XML is set to YES. 1342 # The XML_OUTPUT tag is used to specify where the XML pages will be put. 1343 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 1344 # put in front of it. If left blank `xml' will be used as the default path. 1857 1345 1858 1346 XML_OUTPUT = xml 1859 1347 1860 # If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program 1861 # listings (including syntax highlighting and cross-referencing information) to 1862 # the XML output. Note that enabling this will significantly increase the size 1863 # of the XML output. 1864 # The default value is: YES. 1865 # This tag requires that the tag GENERATE_XML is set to YES. 1348 # The XML_SCHEMA tag can be used to specify an XML schema, 1349 # which can be used by a validating XML parser to check the 1350 # syntax of the XML files. 1351 1352 XML_SCHEMA = 1353 1354 # The XML_DTD tag can be used to specify an XML DTD, 1355 # which can be used by a validating XML parser to check the 1356 # syntax of the XML files. 1357 1358 XML_DTD = 1359 1360 # If the XML_PROGRAMLISTING tag is set to YES Doxygen will 1361 # dump the program listings (including syntax highlighting 1362 # and cross-referencing information) to the XML output. Note that 1363 # enabling this will significantly increase the size of the XML output. 1866 1364 1867 1365 XML_PROGRAMLISTING = YES 1868 1366 1869 1367 #--------------------------------------------------------------------------- 1870 # Configuration options related to the DOCBOOK output 1871 #--------------------------------------------------------------------------- 1872 1873 # If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files 1874 # that can be used to generate PDF. 1875 # The default value is: NO. 1876 1877 GENERATE_DOCBOOK = NO 1878 1879 # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. 1880 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in 1881 # front of it. 1882 # The default directory is: docbook. 1883 # This tag requires that the tag GENERATE_DOCBOOK is set to YES. 1884 1885 DOCBOOK_OUTPUT = docbook 1886 1887 # If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the 1888 # program listings (including syntax highlighting and cross-referencing 1889 # information) to the DOCBOOK output. Note that enabling this will significantly 1890 # increase the size of the DOCBOOK output. 1891 # The default value is: NO. 1892 # This tag requires that the tag GENERATE_DOCBOOK is set to YES. 1893 1894 DOCBOOK_PROGRAMLISTING = NO 1895 1896 #--------------------------------------------------------------------------- 1897 # Configuration options for the AutoGen Definitions output 1898 #--------------------------------------------------------------------------- 1899 1900 # If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an 1901 # AutoGen Definitions (see http://autogen.sf.net) file that captures the 1902 # structure of the code including all documentation. Note that this feature is 1903 # still experimental and incomplete at the moment. 1904 # The default value is: NO. 1368 # configuration options for the AutoGen Definitions output 1369 #--------------------------------------------------------------------------- 1370 1371 # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 1372 # generate an AutoGen Definitions (see autogen.sf.net) file 1373 # that captures the structure of the code including all 1374 # documentation. Note that this feature is still experimental 1375 # and incomplete at the moment. 1905 1376 1906 1377 GENERATE_AUTOGEN_DEF = NO 1907 1378 1908 1379 #--------------------------------------------------------------------------- 1909 # Configuration options related to the Perl module output1910 #--------------------------------------------------------------------------- 1911 1912 # If the GENERATE_PERLMOD tag is set to YES , doxygen will generate a Perl module1913 # file that captures the structure of the code including all documentation.1914 # 1915 # Note that this feature is still experimental and incomplete at the moment.1916 # The default value is: NO.1380 # configuration options related to the Perl module output 1381 #--------------------------------------------------------------------------- 1382 1383 # If the GENERATE_PERLMOD tag is set to YES Doxygen will 1384 # generate a Perl module file that captures the structure of 1385 # the code including all documentation. Note that this 1386 # feature is still experimental and incomplete at the 1387 # moment. 1917 1388 1918 1389 GENERATE_PERLMOD = NO 1919 1390 1920 # If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary 1921 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI 1922 # output from the Perl module output. 1923 # The default value is: NO. 1924 # This tag requires that the tag GENERATE_PERLMOD is set to YES. 1391 # If the PERLMOD_LATEX tag is set to YES Doxygen will generate 1392 # the necessary Makefile rules, Perl scripts and LaTeX code to be able 1393 # to generate PDF and DVI output from the Perl module output. 1925 1394 1926 1395 PERLMOD_LATEX = NO 1927 1396 1928 # If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely 1929 # formatted so it can be parsed by a human reader. This is useful if you want to 1930 # understand what is going on. On the other hand, if this tag is set to NO, the 1931 # size of the Perl module output will be much smaller and Perl will parse it 1932 # just the same. 1933 # The default value is: YES. 1934 # This tag requires that the tag GENERATE_PERLMOD is set to YES. 1397 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 1398 # nicely formatted so it can be parsed by a human reader. This is useful 1399 # if you want to understand what is going on. On the other hand, if this 1400 # tag is set to NO the size of the Perl module output will be much smaller 1401 # and Perl will parse it just the same. 1935 1402 1936 1403 PERLMOD_PRETTY = YES 1937 1404 1938 # The names of the make variables in the generated doxyrules.make file are 1939 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful 1940 # so different doxyrules.make files included by the same Makefile don't 1941 # overwrite each other's variables. 1942 # This tag requires that the tag GENERATE_PERLMOD is set to YES. 1943 1944 PERLMOD_MAKEVAR_PREFIX = 1405 # The names of the make variables in the generated doxyrules.make file 1406 # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 1407 # This is useful so different doxyrules.make files included by the same 1408 # Makefile don't overwrite each other's variables. 1409 1410 PERLMOD_MAKEVAR_PREFIX = 1945 1411 1946 1412 #--------------------------------------------------------------------------- … … 1948 1414 #--------------------------------------------------------------------------- 1949 1415 1950 # If the ENABLE_PREPROCESSING tag is set to YES , doxygen will evaluate all1951 # C-preprocessor directives found in the sources and include files.1952 # The default value is: YES.1416 # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 1417 # evaluate all C-preprocessor directives found in the sources and include 1418 # files. 1953 1419 1954 1420 ENABLE_PREPROCESSING = YES 1955 1421 1956 # If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names 1957 # in the source code. If set to NO, only conditional compilation will be 1958 # performed. Macro expansion can be done in a controlled way by setting 1959 # EXPAND_ONLY_PREDEF to YES. 1960 # The default value is: NO. 1961 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. 1962 1963 MACRO_EXPANSION = NO 1964 1965 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then 1966 # the macro expansion is limited to the macros specified with the PREDEFINED and 1967 # EXPAND_AS_DEFINED tags. 1968 # The default value is: NO. 1969 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. 1422 # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 1423 # names in the source code. If set to NO (the default) only conditional 1424 # compilation will be performed. Macro expansion can be done in a controlled 1425 # way by setting EXPAND_ONLY_PREDEF to YES. 1426 1427 MACRO_EXPANSION = YES 1428 1429 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 1430 # then the macro expansion is limited to the macros specified with the 1431 # PREDEFINED and EXPAND_AS_DEFINED tags. 1970 1432 1971 1433 EXPAND_ONLY_PREDEF = NO 1972 1434 1973 # If the SEARCH_INCLUDES tag is set to YES, the include files in the 1974 # INCLUDE_PATH will be searched if a #include is found. 1975 # The default value is: YES. 1976 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. 1435 # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 1436 # pointed to by INCLUDE_PATH will be searched when a #include is found. 1977 1437 1978 1438 SEARCH_INCLUDES = YES 1979 1439 1980 # The INCLUDE_PATH tag can be used to specify one or more directories that 1981 # contain include files that are not input files but should be processed by the 1982 # preprocessor. 1983 # This tag requires that the tag SEARCH_INCLUDES is set to YES. 1984 1985 INCLUDE_PATH = 1986 1987 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 1988 # patterns (like *.h and *.hpp) to filter out the header-files in the 1989 # directories. If left blank, the patterns specified with FILE_PATTERNS will be 1990 # used. 1991 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. 1992 1993 INCLUDE_FILE_PATTERNS = 1994 1995 # The PREDEFINED tag can be used to specify one or more macro names that are 1996 # defined before the preprocessor is started (similar to the -D option of e.g. 1997 # gcc). The argument of the tag is a list of macros of the form: name or 1998 # name=definition (no spaces). If the definition and the "=" are omitted, "=1" 1999 # is assumed. To prevent a macro definition from being undefined via #undef or 2000 # recursively expanded use the := operator instead of the = operator. 2001 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. 2002 2003 PREDEFINED = 2004 2005 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this 2006 # tag can be used to specify a list of macro names that should be expanded. The 2007 # macro definition that is found in the sources will be used. Use the PREDEFINED 2008 # tag if you want to use a different macro definition that overrules the 2009 # definition found in the source code. 2010 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. 2011 2012 EXPAND_AS_DEFINED = 2013 2014 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will 2015 # remove all references to function-like macros that are alone on a line, have 2016 # an all uppercase name, and do not end with a semicolon. Such function macros 2017 # are typically used for boiler-plate code, and will confuse the parser if not 2018 # removed. 2019 # The default value is: YES. 2020 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. 1440 # The INCLUDE_PATH tag can be used to specify one or more directories that 1441 # contain include files that are not input files but should be processed by 1442 # the preprocessor. 1443 1444 INCLUDE_PATH = 1445 1446 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 1447 # patterns (like *.h and *.hpp) to filter out the header-files in the 1448 # directories. If left blank, the patterns specified with FILE_PATTERNS will 1449 # be used. 1450 1451 INCLUDE_FILE_PATTERNS = 1452 1453 # The PREDEFINED tag can be used to specify one or more macro names that 1454 # are defined before the preprocessor is started (similar to the -D option of 1455 # gcc). The argument of the tag is a list of macros of the form: name 1456 # or name=definition (no spaces). If the definition and the = are 1457 # omitted =1 is assumed. To prevent a macro definition from being 1458 # undefined via #undef or recursively expanded use the := operator 1459 # instead of the = operator. 1460 1461 PREDEFINED = 1462 1463 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 1464 # this tag can be used to specify a list of macro names that should be expanded. 1465 # The macro definition that is found in the sources will be used. 1466 # Use the PREDEFINED tag if you want to use a different macro definition that 1467 # overrules the definition found in the source code. 1468 1469 EXPAND_AS_DEFINED = 1470 1471 # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 1472 # doxygen's preprocessor will remove all references to function-like macros 1473 # that are alone on a line, have an all uppercase name, and do not end with a 1474 # semicolon, because these will confuse the parser if not removed. 2021 1475 2022 1476 SKIP_FUNCTION_MACROS = YES 2023 1477 2024 1478 #--------------------------------------------------------------------------- 2025 # Configuration options related to external references2026 #--------------------------------------------------------------------------- 2027 2028 # The TAGFILES tag can be used to specify one or more tag files. For each tag2029 # file the location of the external documentation should be added. The format of2030 # a tag file without this location is as follows:2031 # TAGFILES = file1 file2 ...2032 # Adding location for the tag files is done as follows:2033 # TAGFILES = file1=loc1 "file2 = loc2" ...2034 # where loc1 and loc2 can be relative or absolute paths or URLs. See the2035 # section "Linking to external documentation" for more information about the use2036 # of tag files.2037 # Note: Each tag file must have a unique name (where the name does NOT include2038 # the path). If a tag file is not located in the directory in which doxygen is2039 # run, you must also specify the path to the tagfile here.2040 2041 TAGFILES = 2042 2043 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a 2044 # tag file that is based on the input files it reads. See section "Linking to 2045 # external documentation" for more information about the usage of tag files.2046 2047 GENERATE_TAGFILE = 2048 2049 # If the ALLEXTERNALS tag is set to YES, all external class will be listed in 2050 # the class index. If set to NO, only the inherited external classes will be2051 # listed.2052 # The default value is: NO.1479 # Configuration::additions related to external references 1480 #--------------------------------------------------------------------------- 1481 1482 # The TAGFILES option can be used to specify one or more tagfiles. 1483 # Optionally an initial location of the external documentation 1484 # can be added for each tagfile. The format of a tag file without 1485 # this location is as follows: 1486 # TAGFILES = file1 file2 ... 1487 # Adding location for the tag files is done as follows: 1488 # TAGFILES = file1=loc1 "file2 = loc2" ... 1489 # where "loc1" and "loc2" can be relative or absolute paths or 1490 # URLs. If a location is present for each tag, the installdox tool 1491 # does not have to be run to correct the links. 1492 # Note that each tag file must have a unique name 1493 # (where the name does NOT include the path) 1494 # If a tag file is not located in the directory in which doxygen 1495 # is run, you must also specify the path to the tagfile here. 1496 1497 TAGFILES = 1498 1499 # When a file name is specified after GENERATE_TAGFILE, doxygen will create 1500 # a tag file that is based on the input files it reads. 1501 1502 GENERATE_TAGFILE = 1503 1504 # If the ALLEXTERNALS tag is set to YES all external classes will be listed 1505 # in the class index. If set to NO only the inherited external classes 1506 # will be listed. 2053 1507 2054 1508 ALLEXTERNALS = NO 2055 1509 2056 # If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed 2057 # in the modules index. If set to NO, only the current project's groups will be 2058 # listed. 2059 # The default value is: YES. 1510 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 1511 # in the modules index. If set to NO, only the current project's groups will 1512 # be listed. 2060 1513 2061 1514 EXTERNAL_GROUPS = YES 2062 1515 2063 # If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in 2064 # the related pages index. If set to NO, only the current project's pages will 2065 # be listed. 2066 # The default value is: YES. 2067 2068 EXTERNAL_PAGES = YES 2069 2070 # The PERL_PATH should be the absolute path and name of the perl script 2071 # interpreter (i.e. the result of 'which perl'). 2072 # The default file (with absolute path) is: /usr/bin/perl. 1516 # The PERL_PATH should be the absolute path and name of the perl script 1517 # interpreter (i.e. the result of `which perl'). 2073 1518 2074 1519 PERL_PATH = /usr/bin/perl … … 2078 1523 #--------------------------------------------------------------------------- 2079 1524 2080 # If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram 2081 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to 2082 # NO turns the diagrams off. Note that this option also works with HAVE_DOT 2083 # disabled, but it is recommended to install and use dot, since it yields more 2084 # powerful graphs. 2085 # The default value is: YES. 1525 # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 1526 # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 1527 # or super classes. Setting the tag to NO turns the diagrams off. Note that 1528 # this option also works with HAVE_DOT disabled, but it is recommended to 1529 # install and use dot, since it yields more powerful graphs. 2086 1530 2087 1531 CLASS_DIAGRAMS = YES 2088 1532 2089 # You can define message sequence charts within doxygen comments using the \msc 2090 # command. Doxygen will then run the mscgen tool (see :2091 # http://www.mcternan.me.uk/mscgen/) ) to produce the chart and insert it in the2092 # documentation. The MSCGEN_PATH tag allows you to specify the directory where 2093 # the mscgen tool resides. If left empty the tool is assumed to be found in the 1533 # You can define message sequence charts within doxygen comments using the \msc 1534 # command. Doxygen will then run the mscgen tool (see 1535 # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 1536 # documentation. The MSCGEN_PATH tag allows you to specify the directory where 1537 # the mscgen tool resides. If left empty the tool is assumed to be found in the 2094 1538 # default search path. 2095 1539 2096 MSCGEN_PATH = 2097 2098 # You can include diagrams made with dia in doxygen documentation. Doxygen will 2099 # then run dia to produce the diagram and insert it in the documentation. The 2100 # DIA_PATH tag allows you to specify the directory where the dia binary resides. 2101 # If left empty dia is assumed to be found in the default search path. 2102 2103 DIA_PATH = 2104 2105 # If set to YES the inheritance and collaboration graphs will hide inheritance 2106 # and usage relations if the target is undocumented or is not a class. 2107 # The default value is: YES. 1540 MSCGEN_PATH = 1541 1542 # If set to YES, the inheritance and collaboration graphs will hide 1543 # inheritance and usage relations if the target is undocumented 1544 # or is not a class. 2108 1545 2109 1546 HIDE_UNDOC_RELATIONS = YES 2110 1547 2111 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 2112 # available from the path. This tool is part of Graphviz (see: 2113 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent 2114 # Bell Labs. The other options in this section have no effect if this option is 2115 # set to NO 2116 # The default value is: YES. 1548 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 1549 # available from the path. This tool is part of Graphviz, a graph visualization 1550 # toolkit from AT&T and Lucent Bell Labs. The other options in this section 1551 # have no effect if this option is set to NO (the default) 2117 1552 2118 1553 HAVE_DOT = YES 2119 1554 2120 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed 2121 # to run in parallel. When set to 0 doxygen will base this on the number of 2122 # processors available in the system. You can set it explicitly to a value 2123 # larger than 0 to get control over the balance between CPU load and processing 2124 # speed. 2125 # Minimum value: 0, maximum value: 32, default value: 0. 2126 # This tag requires that the tag HAVE_DOT is set to YES. 1555 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is 1556 # allowed to run in parallel. When set to 0 (the default) doxygen will 1557 # base this on the number of processors available in the system. You can set it 1558 # explicitly to a value larger than 0 to get control over the balance 1559 # between CPU load and processing speed. 2127 1560 2128 1561 DOT_NUM_THREADS = 0 2129 1562 2130 # When you want a differently looking font in the dot files that doxygen2131 # generates you can specify the font name using DOT_FONTNAME. You need to make2132 # sure dot is able to find the font, which can be done by putting it in a2133 # standard location or by setting the DOTFONTPATH environment variable or by2134 # setting DOT_FONTPATH to the directory containing the font.2135 # The default value is: Helvetica.2136 # This tag requires that the tag HAVE_DOT is set to YES.1563 # By default doxygen will write a font called Helvetica to the output 1564 # directory and reference it in all dot files that doxygen generates. 1565 # When you want a differently looking font you can specify the font name 1566 # using DOT_FONTNAME. You need to make sure dot is able to find the font, 1567 # which can be done by putting it in a standard location or by setting the 1568 # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory 1569 # containing the font. 2137 1570 2138 1571 DOT_FONTNAME = Helvetica 2139 1572 2140 # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of 2141 # dot graphs. 2142 # Minimum value: 4, maximum value: 24, default value: 10. 2143 # This tag requires that the tag HAVE_DOT is set to YES. 1573 # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. 1574 # The default size is 10pt. 2144 1575 2145 1576 DOT_FONTSIZE = 10 2146 1577 2147 # By default doxygen will tell dot to use the default font as specified with 2148 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set 2149 # the path where dot can find it using this tag. 2150 # This tag requires that the tag HAVE_DOT is set to YES. 2151 2152 DOT_FONTPATH = 2153 2154 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for 2155 # each documented class showing the direct and indirect inheritance relations. 2156 # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. 2157 # The default value is: YES. 2158 # This tag requires that the tag HAVE_DOT is set to YES. 1578 # By default doxygen will tell dot to use the output directory to look for the 1579 # FreeSans.ttf font (which doxygen will put there itself). If you specify a 1580 # different font using DOT_FONTNAME you can set the path where dot 1581 # can find it using this tag. 1582 1583 DOT_FONTPATH = 1584 1585 # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 1586 # will generate a graph for each documented class showing the direct and 1587 # indirect inheritance relations. Setting this tag to YES will force the 1588 # the CLASS_DIAGRAMS tag to NO. 2159 1589 2160 1590 CLASS_GRAPH = YES 2161 1591 2162 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a 2163 # graph for each documented class showing the direct and indirect implementation 2164 # dependencies (inheritance, containment, and class references variables) of the 2165 # class with other documented classes. 2166 # The default value is: YES. 2167 # This tag requires that the tag HAVE_DOT is set to YES. 1592 # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 1593 # will generate a graph for each documented class showing the direct and 1594 # indirect implementation dependencies (inheritance, containment, and 1595 # class references variables) of the class with other documented classes. 2168 1596 2169 1597 COLLABORATION_GRAPH = YES 2170 1598 2171 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for 2172 # groups, showing the direct groups dependencies. 2173 # The default value is: YES. 2174 # This tag requires that the tag HAVE_DOT is set to YES. 1599 # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 1600 # will generate a graph for groups, showing the direct groups dependencies 2175 1601 2176 1602 GROUP_GRAPHS = YES 2177 1603 2178 # If the UML_LOOK tag is set to YES , doxygen will generate inheritance and2179 # collaboration diagrams in a style similar to the OMG's Unified Modeling 1604 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and 1605 # collaboration diagrams in a style similar to the OMG's Unified Modeling 2180 1606 # Language. 2181 # The default value is: NO. 2182 # This tag requires that the tag HAVE_DOT is set to YES. 2183 2184 UML_LOOK = NO 2185 2186 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the 2187 # class node. If there are many fields or methods and many nodes the graph may 2188 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the 2189 # number of items for each type to make the size more manageable. Set this to 0 2190 # for no limit. Note that the threshold may be exceeded by 50% before the limit 2191 # is enforced. So when you set the threshold to 10, up to 15 fields may appear, 2192 # but if the number exceeds 15, the total amount of fields shown is limited to 2193 # 10. 2194 # Minimum value: 0, maximum value: 100, default value: 10. 2195 # This tag requires that the tag HAVE_DOT is set to YES. 2196 2197 UML_LIMIT_NUM_FIELDS = 10 2198 2199 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and 2200 # collaboration graphs will show the relations between templates and their 2201 # instances. 2202 # The default value is: NO. 2203 # This tag requires that the tag HAVE_DOT is set to YES. 2204 2205 TEMPLATE_RELATIONS = NO 2206 2207 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to 2208 # YES then doxygen will generate a graph for each documented file showing the 2209 # direct and indirect include dependencies of the file with other documented 2210 # files. 2211 # The default value is: YES. 2212 # This tag requires that the tag HAVE_DOT is set to YES. 1607 1608 UML_LOOK = YES 1609 1610 # If set to YES, the inheritance and collaboration graphs will show the 1611 # relations between templates and their instances. 1612 1613 TEMPLATE_RELATIONS = YES 1614 1615 # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 1616 # tags are set to YES then doxygen will generate a graph for each documented 1617 # file showing the direct and indirect include dependencies of the file with 1618 # other documented files. 2213 1619 2214 1620 INCLUDE_GRAPH = YES 2215 1621 2216 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are 2217 # set to YES then doxygen will generate a graph for each documented file showing 2218 # the direct and indirect include dependencies of the file with other documented 2219 # files. 2220 # The default value is: YES. 2221 # This tag requires that the tag HAVE_DOT is set to YES. 1622 # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 1623 # HAVE_DOT tags are set to YES then doxygen will generate a graph for each 1624 # documented header file showing the documented files that directly or 1625 # indirectly include this file. 2222 1626 2223 1627 INCLUDED_BY_GRAPH = YES 2224 1628 2225 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call 2226 # dependency graph for every global function or class method. 2227 # 2228 # Note that enabling this option will significantly increase the time of a run. 2229 # So in most cases it will be better to enable call graphs for selected 2230 # functions only using the \callgraph command. 2231 # The default value is: NO. 2232 # This tag requires that the tag HAVE_DOT is set to YES. 2233 2234 CALL_GRAPH = NO 2235 2236 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller 2237 # dependency graph for every global function or class method. 2238 # 2239 # Note that enabling this option will significantly increase the time of a run. 2240 # So in most cases it will be better to enable caller graphs for selected 2241 # functions only using the \callergraph command. 2242 # The default value is: NO. 2243 # This tag requires that the tag HAVE_DOT is set to YES. 2244 2245 CALLER_GRAPH = NO 2246 2247 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical 2248 # hierarchy of all classes instead of a textual one. 2249 # The default value is: YES. 2250 # This tag requires that the tag HAVE_DOT is set to YES. 1629 # If the CALL_GRAPH and HAVE_DOT options are set to YES then 1630 # doxygen will generate a call dependency graph for every global function 1631 # or class method. Note that enabling this option will significantly increase 1632 # the time of a run. So in most cases it will be better to enable call graphs 1633 # for selected functions only using the \callgraph command. 1634 1635 CALL_GRAPH = YES 1636 1637 # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 1638 # doxygen will generate a caller dependency graph for every global function 1639 # or class method. Note that enabling this option will significantly increase 1640 # the time of a run. So in most cases it will be better to enable caller 1641 # graphs for selected functions only using the \callergraph command. 1642 1643 CALLER_GRAPH = YES 1644 1645 # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 1646 # will generate a graphical hierarchy of all classes instead of a textual one. 2251 1647 2252 1648 GRAPHICAL_HIERARCHY = YES 2253 1649 2254 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the 2255 # dependencies a directory has on other directories in a graphical way. The 2256 # dependency relations are determined by the #include relations between the 2257 # files in the directories. 2258 # The default value is: YES. 2259 # This tag requires that the tag HAVE_DOT is set to YES. 1650 # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 1651 # then doxygen will show the dependencies a directory has on other directories 1652 # in a graphical way. The dependency relations are determined by the #include 1653 # relations between the files in the directories. 2260 1654 2261 1655 DIRECTORY_GRAPH = YES 2262 1656 2263 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 2264 # generated by dot. 2265 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order 2266 # to make the SVG files visible in IE 9+ (other browsers do not have this 2267 # requirement). 2268 # Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, 2269 # png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, 2270 # gif:cairo:gd, gif:gd, gif:gd:gd and svg. 2271 # The default value is: png. 2272 # This tag requires that the tag HAVE_DOT is set to YES. 1657 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 1658 # generated by dot. Possible values are svg, png, jpg, or gif. 1659 # If left blank png will be used. 2273 1660 2274 1661 DOT_IMAGE_FORMAT = png 2275 1662 2276 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to 2277 # enable generation of interactive SVG images that allow zooming and panning. 2278 # 2279 # Note that this requires a modern browser other than Internet Explorer. Tested 2280 # and working are Firefox, Chrome, Safari, and Opera. 2281 # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make 2282 # the SVG files visible. Older versions of IE do not have SVG support. 2283 # The default value is: NO. 2284 # This tag requires that the tag HAVE_DOT is set to YES. 2285 2286 INTERACTIVE_SVG = NO 2287 2288 # The DOT_PATH tag can be used to specify the path where the dot tool can be 1663 # The tag DOT_PATH can be used to specify the path where the dot tool can be 2289 1664 # found. If left blank, it is assumed the dot tool can be found in the path. 2290 # This tag requires that the tag HAVE_DOT is set to YES. 2291 2292 DOT_PATH = 2293 2294 # The DOTFILE_DIRS tag can be used to specify one or more directories that 2295 # contain dot files that are included in the documentation (see the \dotfile 2296 # command). 2297 # This tag requires that the tag HAVE_DOT is set to YES. 2298 2299 DOTFILE_DIRS = 2300 2301 # The MSCFILE_DIRS tag can be used to specify one or more directories that 2302 # contain msc files that are included in the documentation (see the \mscfile 2303 # command). 2304 2305 MSCFILE_DIRS = 2306 2307 # The DIAFILE_DIRS tag can be used to specify one or more directories that 2308 # contain dia files that are included in the documentation (see the \diafile 2309 # command). 2310 2311 DIAFILE_DIRS = 2312 2313 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the 2314 # path where java can find the plantuml.jar file. If left blank, it is assumed 2315 # PlantUML is not used or called during a preprocessing step. Doxygen will 2316 # generate a warning when it encounters a \startuml command in this case and 2317 # will not generate output for the diagram. 2318 2319 PLANTUML_JAR_PATH = 2320 2321 # When using plantuml, the specified paths are searched for files specified by 2322 # the !include statement in a plantuml block. 2323 2324 PLANTUML_INCLUDE_PATH = 2325 2326 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes 2327 # that will be shown in the graph. If the number of nodes in a graph becomes 2328 # larger than this value, doxygen will truncate the graph, which is visualized 2329 # by representing a node as a red box. Note that doxygen if the number of direct 2330 # children of the root node in a graph is already larger than 2331 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that 2332 # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. 2333 # Minimum value: 0, maximum value: 10000, default value: 50. 2334 # This tag requires that the tag HAVE_DOT is set to YES. 1665 1666 DOT_PATH = 1667 1668 # The DOTFILE_DIRS tag can be used to specify one or more directories that 1669 # contain dot files that are included in the documentation (see the 1670 # \dotfile command). 1671 1672 DOTFILE_DIRS = 1673 1674 # The MSCFILE_DIRS tag can be used to specify one or more directories that 1675 # contain msc files that are included in the documentation (see the 1676 # \mscfile command). 1677 1678 MSCFILE_DIRS = 1679 1680 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 1681 # nodes that will be shown in the graph. If the number of nodes in a graph 1682 # becomes larger than this value, doxygen will truncate the graph, which is 1683 # visualized by representing a node as a red box. Note that doxygen if the 1684 # number of direct children of the root node in a graph is already larger than 1685 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 1686 # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. 2335 1687 2336 1688 DOT_GRAPH_MAX_NODES = 50 2337 1689 2338 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs2339 # g enerated by dot. A depth value of 3 means that only nodes reachable from the2340 # root by following a path via at most 3 edges will be shown. Nodes that lay2341 # further from the root node will be omitted. Note that setting this option to 12342 # o r 2 may greatly reduce the computation time needed for large code bases. Also2343 # note that the size of a graph can be further restricted by1690 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 1691 # graphs generated by dot. A depth value of 3 means that only nodes reachable 1692 # from the root by following a path via at most 3 edges will be shown. Nodes 1693 # that lay further from the root node will be omitted. Note that setting this 1694 # option to 1 or 2 may greatly reduce the computation time needed for large 1695 # code bases. Also note that the size of a graph can be further restricted by 2344 1696 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. 2345 # Minimum value: 0, maximum value: 1000, default value: 0.2346 # This tag requires that the tag HAVE_DOT is set to YES.2347 1697 2348 1698 MAX_DOT_GRAPH_DEPTH = 0 2349 1699 2350 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 2351 # background. This is disabled by default, because dot on Windows does not seem 2352 # to support this out of the box. 2353 # 2354 # Warning: Depending on the platform used, enabling this option may lead to 2355 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to 2356 # read). 2357 # The default value is: NO. 2358 # This tag requires that the tag HAVE_DOT is set to YES. 1700 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 1701 # background. This is disabled by default, because dot on Windows does not 1702 # seem to support this out of the box. Warning: Depending on the platform used, 1703 # enabling this option may lead to badly anti-aliased labels on the edges of 1704 # a graph (i.e. they become hard to read). 2359 1705 2360 1706 DOT_TRANSPARENT = NO 2361 1707 2362 # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output 2363 # files in one run (i.e. multiple -o and -T options on the command line). This 2364 # makes dot run faster, but since only newer versions of dot (>1.8.10) support 2365 # this, this feature is disabled by default. 2366 # The default value is: NO. 2367 # This tag requires that the tag HAVE_DOT is set to YES. 1708 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 1709 # files in one run (i.e. multiple -o and -T options on the command line). This 1710 # makes dot run faster, but since only newer versions of dot (>1.8.10) 1711 # support this, this feature is disabled by default. 2368 1712 2369 1713 DOT_MULTI_TARGETS = NO 2370 1714 2371 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page 2372 # explaining the meaning of the various boxes and arrows in the dot generated 2373 # graphs. 2374 # The default value is: YES. 2375 # This tag requires that the tag HAVE_DOT is set to YES. 1715 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 1716 # generate a legend page explaining the meaning of the various boxes and 1717 # arrows in the dot generated graphs. 2376 1718 2377 1719 GENERATE_LEGEND = YES 2378 1720 2379 # If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot 2380 # files that are used to generate the various graphs. 2381 # The default value is: YES. 2382 # This tag requires that the tag HAVE_DOT is set to YES. 1721 # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 1722 # remove the intermediate dot files that are used to generate 1723 # the various graphs. 2383 1724 2384 1725 DOT_CLEANUP = YES -
XIOS/dev/dev_olga/bld.cfg
r1129 r1130 34 34 #bld::target xios_server.exe #test_remap.exe 35 35 bld::target xios_server.exe 36 #bld::target test_regular.exe 36 bld::target test_regular.exe 37 bld::target test_xios2_cmip6.exe 37 38 #bld::target test_new_features.exe test_unstruct_complete.exe 38 39 #bld::target test_client.exe -
XIOS/dev/dev_olga/src/buffer_client.cpp
r1077 r1130 74 74 int flag; 75 75 76 int error, errclass, len;77 char errstring[MPI_MAX_ERROR_STRING];78 79 76 if (pending) 80 77 { 81 78 traceOff(); 82 MPI_Errhandler_set(interComm,MPI_ERRORS_RETURN); 83 error=MPI_Test(&request, &flag, &status); 84 if (error != MPI_SUCCESS) 85 { 86 MPI_Error_class(error, &errclass); 87 MPI_Error_string(error, errstring, &len); 88 ERROR("MPI error class: ", <<errclass<<" MPI error "<<errstring ); 89 } 79 MPI_Test(&request, &flag, &status); 90 80 traceOn(); 91 81 if (flag == true) pending = false; … … 96 86 if (count > 0) 97 87 { 98 MPI_Errhandler_set(interComm,MPI_ERRORS_RETURN); 99 error = MPI_Issend(buffer[current], count, MPI_CHAR, serverRank, 20, interComm, &request); 100 if (error != MPI_SUCCESS) 101 { 102 MPI_Error_class(error, &errclass); 103 MPI_Error_string(error, errstring, &len); 104 ERROR("MPI error class: ", <<errclass<<" MPI error "<<errstring ); 105 } 88 MPI_Issend(buffer[current], count, MPI_CHAR, serverRank, 20, interComm, &request); 106 89 pending = true; 107 90 if (current == 1) current = 0; -
XIOS/dev/dev_olga/src/client.cpp
r1054 r1130 235 235 } 236 236 237 ///---------------------------------------------------------------238 /*!239 * \fn void CClient::registerContextByClienOfServer(const string& id, MPI_Comm contextComm)240 * \brief Sends a request to create contexts on secondary servers. Creates clientPrimServer/serverPrimServer contexts.241 * \param [in] id id of context.242 * \param [in] contextComm.243 * Function is called by primary server.244 * The only difference with CClient::registerContext() is naming of contexts on servers (appearing of pool id at the end).245 */246 // void CClient::registerContextByClientOfServer(const string& id, MPI_Comm contextComm)247 // {248 // CContext::setCurrent(id) ;249 // CContext* context=CContext::create(id);250 // StdString idServer(id);251 // idServer += "_server_";252 //253 // int size,rank,globalRank ;254 // size_t message_size ;255 // int leaderRank ;256 // MPI_Comm contextInterComm ;257 //258 // MPI_Comm_size(contextComm,&size) ;259 // MPI_Comm_rank(contextComm,&rank) ;260 // MPI_Comm_rank(CXios::globalComm,&globalRank) ;261 // if (rank!=0) globalRank=0 ;262 //263 // CMessage msg ;264 //265 // int messageSize ;266 // void * buff ;267 //268 // for (int i = 0; i < serverLeader.size(); ++i)269 // {270 // StdString str = idServer + boost::lexical_cast<string>(i);271 // msg<<str<<size<<globalRank ;272 // messageSize = msg.size() ;273 // buff = new char[messageSize] ;274 // CBufferOut buffer(buff,messageSize) ;275 // buffer<<msg ;276 //277 // MPI_Send(buff, buffer.count(), MPI_CHAR, serverLeader[i], 1, CXios::globalComm) ;278 // MPI_Intercomm_create(contextComm, 0, CXios::globalComm, serverLeader[i], 10+globalRank, &contextInterComm) ;279 // info(10)<<"Register new Context : "<<id<<endl ;280 // MPI_Comm inter ;281 // MPI_Intercomm_merge(contextInterComm,0,&inter) ;282 // MPI_Barrier(inter) ;283 //284 // context->initClient(contextComm,contextInterComm) ;285 //286 //// contextInterComms.push_back(contextInterComm);287 // MPI_Comm_free(&inter);288 // delete [] buff ;289 // }290 // }291 292 237 void CClient::finalize(void) 293 238 { -
XIOS/dev/dev_olga/src/client.hpp
r1054 r1130 14 14 static void finalize(void); 15 15 static void registerContext(const string& id, MPI_Comm contextComm); 16 // static void registerContextByClientOfServer(const string& id, MPI_Comm contextComm);17 16 18 17 static MPI_Comm intraComm; -
XIOS/dev/dev_olga/src/context_client.cpp
r1077 r1130 11 11 #include "timer.hpp" 12 12 #include "cxios.hpp" 13 #include "server.hpp" 13 14 14 15 namespace xios … … 89 90 list<int> sizes = event.getSizes(); 90 91 91 // We force the getBuffers call to be non-blocking on theservers92 // We force the getBuffers call to be non-blocking on classical servers 92 93 list<CBufferOut*> buffList; 93 // bool couldBuffer = getBuffers(ranks, sizes, buffList, CXios::isServer);94 bool couldBuffer = getBuffers(ranks, sizes, buffList, false);94 bool couldBuffer = getBuffers(ranks, sizes, buffList, (!CXios::isClient && (CServer::serverLevel == 0) )); 95 //bool couldBuffer = getBuffers(ranks, sizes, buffList, false ); 95 96 96 97 if (couldBuffer) … … 212 213 { 213 214 checkBuffers(); 214 215 // WHY DO WE PUT HERE SERVER INTO LISTENING LOOP AT ALL???? 216 // context->server->listen(); 217 // for (int i = 0; i < context->serverPrimServer.size(); ++i) 218 // context->serverPrimServer[i]->listen(); 215 if (CServer::serverLevel == 0) 216 context->server->listen(); 217 218 else if (CServer::serverLevel == 1) 219 { 220 context->server->listen(); 221 for (int i = 0; i < context->serverPrimServer.size(); ++i) 222 context->serverPrimServer[i]->listen(); 223 } 224 225 else if (CServer::serverLevel == 2) 226 context->server->listen(); 227 219 228 } 220 229 } while (!areBuffersFree && !nonBlocking); 230 221 231 CTimer::get("Blocking time").suspend(); 222 232 … … 256 266 map<int,CClientBuffer*>::iterator itBuff; 257 267 bool pending = false; 258 for (itBuff = buffers.begin(); itBuff != buffers.end(); itBuff++) pending |= itBuff->second->checkBuffer(); 268 for (itBuff = buffers.begin(); itBuff != buffers.end(); itBuff++) 269 pending |= itBuff->second->checkBuffer(); 259 270 return pending; 260 271 } … … 274 285 \return state of buffers, pending(true), ready(false) 275 286 */ 276 // bool CContextClient::checkBuffers(list<int>& ranks)277 287 bool CContextClient::checkBuffers(list<int>& ranks) 278 288 { … … 358 368 359 369 /*! 360 Finalize context client and do some reports 361 */ 362 // void CContextClient::finalize(void) 363 void CContextClient::finalize() 370 * Finalize context client and do some reports. Function is non-blocking. 371 */ 372 void CContextClient::finalize(void) 364 373 { 365 374 map<int,CClientBuffer*>::iterator itBuff; … … 386 395 387 396 CTimer::get("Blocking time").resume(); 388 while (!stop)397 // while (!stop) 389 398 { 390 399 checkBuffers(); … … 393 402 394 403 stop = true; 395 for (itBuff = buffers.begin(); itBuff != buffers.end(); itBuff++) stop &= !itBuff->second->hasPendingRequest();404 // for (itBuff = buffers.begin(); itBuff != buffers.end(); itBuff++) stop &= !itBuff->second->hasPendingRequest(); 396 405 } 397 406 CTimer::get("Blocking time").suspend(); … … 409 418 report(0) << " Memory report : Context <" << context->getId() << "> : client side : total memory used for buffer " << totalBuf << " bytes" << endl; 410 419 411 releaseBuffers();420 //releaseBuffers(); // moved to CContext::finalize() 412 421 } 422 423 /*! 424 */ 425 bool CContextClient::havePendingRequests(void) 426 { 427 bool pending = false; 428 map<int,CClientBuffer*>::iterator itBuff; 429 for (itBuff = buffers.begin(); itBuff != buffers.end(); itBuff++) 430 pending |= itBuff->second->hasPendingRequest(); 431 return pending; 432 } 433 434 413 435 } -
XIOS/dev/dev_olga/src/context_client.hpp
r1077 r1130 40 40 bool checkBuffers(void); 41 41 void releaseBuffers(void); 42 bool havePendingRequests(void); 42 43 43 44 bool isServerLeader(void) const; … … 71 72 72 73 map<int,CClientBuffer*> buffers; //!< Buffers for connection to servers 73 // map<int,CClientBuffer*> buffersPrim; //!< Buffers for connection to secondary servers74 74 75 75 private: -
XIOS/dev/dev_olga/src/context_server.cpp
r1071 r1130 22 22 namespace xios 23 23 { 24 StdSize CContextServer::totalBuf_ = 0;25 24 26 25 CContextServer::CContextServer(CContext* parent, MPI_Comm intraComm_,MPI_Comm interComm_) … … 41 40 finished=false; 42 41 boost::hash<string> hashString; 43 hashId=hashString(context->getId()); 42 if (CServer::serverLevel == 1) 43 hashId=hashString(context->getId() + boost::lexical_cast<string>(context->clientPrimServer.size())); 44 else 45 hashId=hashString(context->getId()); 44 46 } 45 47 … … 169 171 map<size_t,CEventServer*>::iterator it; 170 172 CEventServer* event; 171 boost::hash<string> hashString;172 size_t hashId=hashString(context->getId());173 173 174 174 it=events.find(currentTimeLine); … … 189 189 // The best way to properly solve this problem will be to use the event scheduler also in attached mode 190 190 // for now just set up a MPI barrier 191 // if (!CServer::eventScheduler) MPI_Barrier(intraComm) ;191 if (!CServer::eventScheduler && CXios::isServer) MPI_Barrier(intraComm) ; 192 192 193 193 CTimer::get("Process events").resume(); … … 218 218 int rank; 219 219 list<CEventServer::SSubEvent>::iterator it; 220 // CContext::setCurrent(context->getId());221 220 StdString ctxId = context->getId(); 222 221 CContext::setCurrent(ctxId); 222 StdSize totalBuf = 0; 223 223 224 224 if (event.classId==CContext::GetType() && event.type==CContext::EVENT_ID_CONTEXT_FINALIZE) 225 225 { 226 226 finished=true; 227 // info(20)<<"Server Side context <"<<context->getId()<<"> finalized"<<endl; 227 // info(20)<<"Server Side context <"<<context->getId()<<"> finalized"<<endl; // moved to CContext::finalize() 228 228 std::map<int, StdSize>::const_iterator itbMap = mapBufferSize_.begin(), 229 229 iteMap = mapBufferSize_.end(), itMap; … … 231 231 { 232 232 rank = itMap->first; 233 //report(10)<< " Memory report : Context <"<<ctxId<<"> : server side : memory used for buffer of each connection to client" << endl234 //<< " +) With client of rank " << rank << " : " << itMap->second << " bytes " << endl;235 totalBuf _+= itMap->second;233 report(10)<< " Memory report : Context <"<<ctxId<<"> : server side : memory used for buffer of each connection to client" << endl 234 << " +) With client of rank " << rank << " : " << itMap->second << " bytes " << endl; 235 totalBuf += itMap->second; 236 236 } 237 237 context->finalize(); 238 239 // report(0)<< " Memory report : Context <"<<ctxId<<"> : server side : total memory used for buffer "<<totalBuf<<" bytes"<<endl; // moved to CContext::finalize() 238 report(0)<< " Memory report : Context <"<<ctxId<<"> : server side : total memory used for buffer "<<totalBuf<<" bytes"<<endl; 240 239 } 241 240 else if (event.classId==CContext::GetType()) CContext::dispatchEvent(event); … … 261 260 } 262 261 263 size_t CContextServer::getTotalBuf(void)264 {265 return totalBuf_;266 }267 268 262 } -
XIOS/dev/dev_olga/src/context_server.hpp
r1054 r1130 47 47 size_t hashId ; 48 48 49 static size_t getTotalBuf(void);50 51 49 ~CContextServer() ; 52 50 53 51 private: 54 52 std::map<int, StdSize> mapBufferSize_; 55 static size_t totalBuf_ ; /*!< Total memory allocated by servers per context.*/56 53 57 54 } ; -
XIOS/dev/dev_olga/src/cxios.cpp
r1054 r1130 25 25 bool CXios::isClient ; 26 26 bool CXios::isServer ; 27 // int CXios::serverLevel = 0 ;28 27 MPI_Comm CXios::globalComm ; 29 28 bool CXios::usingOasis ; … … 143 142 CServer::initialize(); 144 143 isServer = true; 145 if (CServer::serverLevel == 1) 146 isClient = true; 147 else 148 isClient = false; 144 isClient = false; 149 145 150 146 if (CServer::getRank()==0) globalRegistry = new CRegistry(CServer::intraComm) ; -
XIOS/dev/dev_olga/src/io/nc4_data_output.cpp
r1129 r1130 2457 2457 msg.append(context->getId()); msg.append("\n"); 2458 2458 msg.append(e.what()); 2459 2459 ERROR("CNc4DataOutput::writeFieldData_ (CField* field)", << msg); 2460 2460 } 2461 2461 } -
XIOS/dev/dev_olga/src/node/context.cpp
r1129 r1130 26 26 : CObjectTemplate<CContext>(), CContextAttributes() 27 27 , calendar(), hasClient(false), hasServer(false) 28 , isPostProcessed(false) , finalized(false)28 , isPostProcessed(false)//, finalized(false) 29 29 , idServer_(), client(0), server(0) 30 , allProcessed(false) 30 , allProcessed(false), countChildCtx_(0) 31 31 { /* Ne rien faire de plus */ } 32 32 … … 34 34 : CObjectTemplate<CContext>(id), CContextAttributes() 35 35 , calendar(), hasClient(false), hasServer(false) 36 , isPostProcessed(false) , finalized(false)36 , isPostProcessed(false)//, finalized(false) 37 37 , idServer_(), client(0), server(0) 38 , allProcessed(false) 38 , allProcessed(false), countChildCtx_(0) 39 39 { /* Ne rien faire de plus */ } 40 40 … … 300 300 std::map<int, StdSize> dataBufferSize = getDataBufferSize(maxEventSize); 301 301 302 303 302 std::map<int, StdSize>::iterator it, ite = dataBufferSize.end(); 304 303 for (it = dataBufferSize.begin(); it != ite; ++it) … … 351 350 hasServer=true; 352 351 server = new CContextServer(this,intraComm,interComm); 353 // client = new CContextClient(this,intraComm,interComm, cxtClient);354 352 355 353 registryIn=new CRegistry(intraComm); … … 373 371 comms.push_back(interCommClient); 374 372 } 375 client = new CContextClient(this,intraCommClient,interCommClient); 376 373 client = new CContextClient(this,intraCommClient,interCommClient,cxtClient); 377 374 } 378 375 379 376 //! Try to send the buffers and receive possible answers 380 bool CContext::checkBuffersAndListen(void) 381 { 382 if (CServer::serverLevel == 0) 383 { 384 client->checkBuffers(); 385 bool hasTmpBufferedEvent = client->hasTemporarilyBufferedEvent(); 386 if (hasTmpBufferedEvent) 387 hasTmpBufferedEvent = !client->sendTemporarilyBufferedEvent(); 388 // Don't process events if there is a temporarily buffered event 389 return server->eventLoop(!hasTmpBufferedEvent); 390 } 391 392 else if (CServer::serverLevel == 1) 393 { 394 client->checkBuffers(); 395 bool hasTmpBufferedEvent = client->hasTemporarilyBufferedEvent(); 396 if (hasTmpBufferedEvent) 397 hasTmpBufferedEvent = !client->sendTemporarilyBufferedEvent(); 398 bool serverFinished = server->eventLoop(!hasTmpBufferedEvent); 399 400 bool serverPrimFinished = true; 401 for (int i = 0; i < clientPrimServer.size(); ++i) 402 { 403 clientPrimServer[i]->checkBuffers(); 404 bool hasTmpBufferedEventPrim = clientPrimServer[i]->hasTemporarilyBufferedEvent(); 405 if (hasTmpBufferedEventPrim) 406 hasTmpBufferedEventPrim = !clientPrimServer[i]->sendTemporarilyBufferedEvent(); 407 // serverPrimFinished *= serverPrimServer[i]->eventLoop(!hasTmpBufferedEventPrim); 408 serverPrimFinished *= serverPrimServer[i]->eventLoop(); 409 } 410 return ( serverFinished && serverPrimFinished); 411 } 412 413 else if (CServer::serverLevel == 2) 414 { 415 client->checkBuffers(); 416 bool hasTmpBufferedEvent = client->hasTemporarilyBufferedEvent(); 417 // if (hasTmpBufferedEvent) 418 // hasTmpBufferedEvent = !client->sendTemporarilyBufferedEvent(); 419 // return server->eventLoop(!hasTmpBufferedEvent); 420 return server->eventLoop(); 377 bool CContext::checkBuffersAndListen(void) 378 { 379 bool clientReady, serverFinished; 380 381 // Only classical servers are non-blocking 382 if (CServer::serverLevel == 0) 383 { 384 client->checkBuffers(); 385 bool hasTmpBufferedEvent = client->hasTemporarilyBufferedEvent(); 386 if (hasTmpBufferedEvent) 387 hasTmpBufferedEvent = !client->sendTemporarilyBufferedEvent(); 388 // Don't process events if there is a temporarily buffered event 389 return server->eventLoop(!hasTmpBufferedEvent); 390 } 391 else if (CServer::serverLevel == 1) 392 { 393 client->checkBuffers(); 394 bool serverFinished = server->eventLoop(); 395 bool serverPrimFinished = true; 396 for (int i = 0; i < clientPrimServer.size(); ++i) 397 { 398 clientPrimServer[i]->checkBuffers(); 399 serverPrimFinished *= serverPrimServer[i]->eventLoop(); 421 400 } 422 } 401 return ( serverFinished && serverPrimFinished); 402 } 403 404 else if (CServer::serverLevel == 2) 405 { 406 client->checkBuffers(); 407 return server->eventLoop(); 408 } 409 } 423 410 424 411 //! Terminate a context 425 412 void CContext::finalize(void) 426 413 { 427 if (!finalized) 428 { 429 finalized = true; 430 414 // Send registry upon calling the function the first time 415 if (countChildCtx_ == 0) 431 416 if (hasClient) sendRegistry() ; 432 417 433 if ((hasClient) && (hasServer)) 418 // Client: 419 // (1) blocking send context finalize to its server 420 // (2) blocking receive context finalize from its server 421 if (CXios::isClient) 422 { 423 // Make sure that client (model) enters the loop only once 424 if (countChildCtx_ < 1) 434 425 { 426 ++countChildCtx_; 427 428 client->finalize(); 429 while (client->havePendingRequests()) 430 client->checkBuffers(); 431 432 while (!server->hasFinished()) 433 server->eventLoop(); 434 } 435 } 436 // Server: non-blocking send context finalize 437 else if (CXios::isServer) 438 { 439 // First context finalize message received from a model => send context finalize to its child contexts (if any) 440 if (countChildCtx_ == 0) 435 441 for (int i = 0; i < clientPrimServer.size(); ++i) 436 442 clientPrimServer[i]->finalize(); 437 443 438 for (int i = 0; i < serverPrimServer.size(); ++i) 439 { 440 while (!serverPrimServer[i]->hasFinished()) 441 { 442 serverPrimServer[i]->eventLoop(); 443 CServer::eventScheduler->checkEvent() ; 444 } 445 } 446 } 447 client->finalize(); 448 while (!server->hasFinished()) 449 { 450 server->eventLoop(); 451 } 452 453 info(20)<<"Server Side context <"<<getId()<<"> finalized"<<endl; 454 report(0)<< " Memory report : Context <"<<getId()<<"> : server side : total memory used for buffers "<<CContextServer::getTotalBuf()<<" bytes"<<endl; 455 456 // if (hasServer) 457 if (hasServer && !hasClient) 458 { 459 closeAllFile(); 460 registryOut->hierarchicalGatherRegistry() ; 461 if (server->intraCommRank==0) CXios::globalRegistry->mergeRegistry(*registryOut) ; 462 } 463 } 464 } 465 466 //! Free internally allocated communicators 467 void CContext::freeComms(void) 468 { 444 // (Last) context finalized message received => send context finalize to its parent context 445 if (countChildCtx_ == clientPrimServer.size()) 446 client->finalize(); 447 448 ++countChildCtx_; 449 } 450 451 // If in mode attache call postFinalize 452 if (CXios::isServer && CXios::isClient) 453 postFinalize(); 454 } 455 456 /*! 457 * \fn void CContext::postFinalize(void) 458 * Close files, gather registries, , and make deallocations. 459 * Function is called when a context is finalized (it has nothing to receive and nothing to send). 460 */ 461 void CContext::postFinalize(void) 462 { 463 info(20)<<"Context <"<<getId()<<"> is finalized."<<endl; 464 465 // if (hasServer && !hasClient) 466 { 467 closeAllFile(); 468 registryOut->hierarchicalGatherRegistry() ; 469 if (server->intraCommRank==0) CXios::globalRegistry->mergeRegistry(*registryOut) ; 470 } 471 472 //! Free internally allocated communicators 469 473 for (std::list<MPI_Comm>::iterator it = comms.begin(); it != comms.end(); ++it) 470 474 MPI_Comm_free(&(*it)); 471 475 comms.clear(); 476 477 //! Deallocate client buffers 478 client->releaseBuffers(); 479 for (int i = 0; i < clientPrimServer.size(); ++i) 480 clientPrimServer[i]->releaseBuffers(); 481 } 482 483 //! Free internally allocated communicators 484 void CContext::freeComms(void) 485 { 486 for (std::list<MPI_Comm>::iterator it = comms.begin(); it != comms.end(); ++it) 487 MPI_Comm_free(&(*it)); 488 comms.clear(); 489 } 490 491 //! Deallocate buffers allocated by clientContexts 492 void CContext::releaseClientBuffers(void) 493 { 494 client->releaseBuffers(); 495 for (int i = 0; i < clientPrimServer.size(); ++i) 496 clientPrimServer[i]->releaseBuffers(); 472 497 } 473 498 … … 509 534 510 535 // After that, send all grid (if any) 511 sendRefGrid(); 536 sendRefGrid(); 512 537 513 538 // We have a xml tree on the server side and now, it should be also processed 514 539 sendPostProcessing(); 515 516 540 sendGridEnabledFields(); 517 541 } 518 519 542 allProcessed = true; 520 543 } … … 555 578 556 579 void CContext::recvPostProcessingGlobalAttributes(CBufferIn& buffer) 557 { 580 { 581 // CCalendarWrapper::get(CCalendarWrapper::GetDefName())->createCalendar(); 558 582 postProcessingGlobalAttributes(); 559 583 } … … 572 596 postProcessingGlobalAttributes(); 573 597 574 if (hasClient) sendPostProcessingGlobalAttributes(); 575 598 if (hasClient) sendPostProcessingGlobalAttributes(); 599 600 // There are some processings that should be done after all of above. For example: check mask or index 576 601 this->buildFilterGraphOfEnabledFields(); 577 602 578 if (hasClient && !hasServer)603 if (hasClient && !hasServer) 579 604 { 580 buildFilterGraphOfFieldsWithReadAccess(); 605 buildFilterGraphOfFieldsWithReadAccess(); 581 606 } 582 607 … … 622 647 { 623 648 this->enabledFiles[i]->solveOnlyRefOfEnabledFields(false); 624 // this->enabledFiles[i]->solveAllReferenceEnabledField(false);625 649 } 626 650 … … 649 673 } 650 674 651 652 653 675 void CContext::solveOnlyRefOfEnabledFields(bool sendToServer) 654 676 { … … 663 685 this->enabledFiles[i]->generateNewTransformationGridDest(); 664 686 } 687 665 688 } 666 689 … … 857 880 } 858 881 859 // // Only send close definition from process having hasClient860 // void CContext::sendCloseDefinitionToServer(void)861 // {862 // CEventClient event(getType(),EVENT_ID_CLOSE_DEFINITION);863 // }864 865 882 //! Client side: Send a message to server to make it close 866 883 void CContext::sendCloseDefinition(void) 867 884 { 868 885 // Use correct context client to send message 869 // int nbSrvPools = (hasServer) ? clientPrimServer.size() : 1;870 886 int nbSrvPools = (this->hasServer) ? (this->hasClient ? this->clientPrimServer.size() : 0) : 1; 871 887 for (int i = 0; i < nbSrvPools; ++i) … … 902 918 { 903 919 // Use correct context client to send message 904 // CContextClient* contextClientTmp = (0 != clientPrimServer) ? clientPrimServer : client;905 // int nbSrvPools = (hasServer) ? clientPrimServer.size() : 1;906 920 int nbSrvPools = (this->hasServer) ? (this->hasClient ? this->clientPrimServer.size() : 0) : 1; 907 921 for (int i = 0; i < nbSrvPools; ++i) … … 1462 1476 void CContext::updateCalendar(int step) 1463 1477 { 1464 info(50) << "updateCalendar : before : " << calendar->getCurrentDate() << endl;1478 info(50) <<"Context "<< this->getId() <<" updateCalendar : before : " << calendar->getCurrentDate() << endl; 1465 1479 calendar->update(step); 1466 info(50) << "updateCalendar : after : " << calendar->getCurrentDate() << endl;1480 info(50) <<"Context "<< this->getId() << " updateCalendar : after : " << calendar->getCurrentDate() << endl; 1467 1481 1468 1482 if (hasClient) … … 1569 1583 } 1570 1584 1585 /*! 1586 * \fn bool CContext::isFinalized(void) 1587 * Context is finalized if: 1588 * (1) it has received all context finalize events 1589 * (2) it has no pending events to send. 1590 */ 1571 1591 bool CContext::isFinalized(void) 1572 1592 { 1573 return finalized; 1593 if (countChildCtx_==clientPrimServer.size()+1) 1594 { 1595 bool buffersReleased = !client->havePendingRequests(); 1596 for (int i = 0; i < clientPrimServer.size(); ++i) 1597 buffersReleased *= !clientPrimServer[i]->havePendingRequests(); 1598 return buffersReleased; 1599 } 1600 else 1601 return false; 1574 1602 } 1575 1603 -
XIOS/dev/dev_olga/src/node/context.hpp
r1129 r1130 99 99 // Finalize a context 100 100 void finalize(void); 101 void postFinalize(void); 102 bool isFinalized(void); 103 101 104 void closeDefinition(void); 102 bool isFinalized(void);103 105 104 106 // Some functions to process context … … 167 169 void recvRegistry(CBufferIn& buffer) ; //!< registry is received by the servers 168 170 169 void freeComms(void); //!< Free internally allcoated communicators 171 void freeComms(void); //!< Free internally allcoated communicators 172 void releaseClientBuffers(void); //! Deallocate buffers allocated by clientContexts 170 173 171 174 // dispatch event … … 233 236 bool hasServer; 234 237 235 CContextServer* server; //!< Concrete context server236 CContextClient* client; //!< Concrete contex client238 CContextServer* server; //!< Concrete context server 239 CContextClient* client; //!< Concrete contex client 237 240 std::vector<CContextServer*> serverPrimServer; 238 241 std::vector<CContextClient*> clientPrimServer; 239 242 240 CRegistry* registryIn ; //!< input registry which is read from file241 CRegistry* registryOut ; //!< output registry which will be wrote onfile at the finalize243 CRegistry* registryIn ; //!< input registry which is read from file 244 CRegistry* registryOut ; //!< output registry which will be written into file at the finalize 242 245 243 246 private: 244 247 bool isPostProcessed; 245 248 bool allProcessed; 246 bool finalized; 249 // bool finalized; 250 int countChildCtx_; //!< Counter of child contexts (for now it is the number of secondary server pools) 247 251 StdString idServer_; 248 252 CGarbageCollector garbageCollector; -
XIOS/dev/dev_olga/src/node/domain.cpp
r1129 r1130 3051 3051 if ((0 <= indexI) && (0 <= indexJ)) 3052 3052 { 3053 data_i_index(nbCompressedData) = (1 == data_dim) ? ind : i _index(ind) - i_index(0);3054 data_j_index(nbCompressedData) = (1 == data_dim) ? 0 : j_index(ind) - j_index(0);3053 data_i_index(nbCompressedData) = (1 == data_dim) ? ind : ind % ni; 3054 data_j_index(nbCompressedData) = (1 == data_dim) ? 0 : ind / ni; 3055 3055 ++nbCompressedData; 3056 3056 } -
XIOS/dev/dev_olga/src/node/file.cpp
r1129 r1130 866 866 { 867 867 sendAddItem(id, EVENT_ID_ADD_FIELD); 868 // CContext* context = CContext::getCurrent();869 870 // if (! context->hasServer )871 // {872 // CContextClient* client = context->client;873 874 // CEventClient event(this->getType(),EVENT_ID_ADD_FIELD);875 // if (client->isServerLeader())876 // {877 // CMessage msg;878 // msg << this->getId();879 // msg << id;880 // const std::list<int>& ranks = client->getRanksServerLeader();881 // for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank)882 // event.push(*itRank,1,msg);883 // client->sendEvent(event);884 // }885 // else client->sendEvent(event);886 // }887 888 868 } 889 869 … … 891 871 { 892 872 sendAddItem(id, EVENT_ID_ADD_FIELD, client); 893 // CContext* context = CContext::getCurrent();894 895 // if (! context->hasServer )896 // {897 // CContextClient* client = context->client;898 899 // CEventClient event(this->getType(),EVENT_ID_ADD_FIELD);900 // if (client->isServerLeader())901 // {902 // CMessage msg;903 // msg << this->getId();904 // msg << id;905 // const std::list<int>& ranks = client->getRanksServerLeader();906 // for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank)907 // event.push(*itRank,1,msg);908 // client->sendEvent(event);909 // }910 // else client->sendEvent(event);911 // }912 913 873 } 914 874 … … 920 880 { 921 881 sendAddItem(id, (int)EVENT_ID_ADD_FIELD_GROUP); 922 // CContext* context = CContext::getCurrent();923 // if (! context->hasServer )924 // {925 // CContextClient* client = context->client;926 927 // CEventClient event(this->getType(),EVENT_ID_ADD_FIELD_GROUP);928 // if (client->isServerLeader())929 // {930 // CMessage msg;931 // msg << this->getId();932 // msg << id;933 // const std::list<int>& ranks = client->getRanksServerLeader();934 // for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank)935 // event.push(*itRank,1,msg);936 // client->sendEvent(event);937 // }938 // else client->sendEvent(event);939 // }940 941 882 } 942 883 … … 1030 971 { 1031 972 sendAddItem(id, (int)EVENT_ID_ADD_VARIABLE_GROUP); 1032 // CContext* context = CContext::getCurrent();1033 // if (! context->hasServer )1034 // {1035 // CContextClient* client = context->client;1036 1037 // CEventClient event(this->getType(),EVENT_ID_ADD_VARIABLE_GROUP);1038 // if (client->isServerLeader())1039 // {1040 // CMessage msg;1041 // msg << this->getId();1042 // msg << id;1043 // const std::list<int>& ranks = client->getRanksServerLeader();1044 // for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank)1045 // event.push(*itRank,1,msg);1046 // client->sendEvent(event);1047 // }1048 // else client->sendEvent(event);1049 // }1050 1051 973 } 1052 974 … … 1059 981 { 1060 982 sendAddItem(id, (int)EVENT_ID_ADD_VARIABLE); 1061 // CContext* context = CContext::getCurrent();1062 1063 // if (! context->hasServer )1064 // {1065 // CContextClient* client = context->client;1066 1067 // CEventClient event(this->getType(),EVENT_ID_ADD_VARIABLE);1068 // if (client->isServerLeader())1069 // {1070 // CMessage msg;1071 // msg << this->getId();1072 // msg << id;1073 // const std::list<int>& ranks = client->getRanksServerLeader();1074 // for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank)1075 // event.push(*itRank,1,msg);1076 // client->sendEvent(event);1077 // }1078 // else client->sendEvent(event);1079 // }1080 1081 983 } 1082 984 1083 985 void CFile::sendAddVariable(const string& id, CContextClient* client) 1084 986 { 1085 sendAddItem(id, (int)EVENT_ID_ADD_VARIABLE); 1086 // CContext* context = CContext::getCurrent(); 1087 1088 // if (! context->hasServer ) 1089 // { 1090 // CContextClient* client = context->client; 1091 1092 // CEventClient event(this->getType(),EVENT_ID_ADD_VARIABLE); 1093 // if (client->isServerLeader()) 1094 // { 1095 // CMessage msg; 1096 // msg << this->getId(); 1097 // msg << id; 1098 // const std::list<int>& ranks = client->getRanksServerLeader(); 1099 // for (std::list<int>::const_iterator itRank = ranks.begin(), itRankEnd = ranks.end(); itRank != itRankEnd; ++itRank) 1100 // event.push(*itRank,1,msg); 1101 // client->sendEvent(event); 1102 // } 1103 // else client->sendEvent(event); 1104 // } 1105 987 sendAddItem(id, (int)EVENT_ID_ADD_VARIABLE, client); 1106 988 } 1107 989 … … 1153 1035 addVariableGroup(id); 1154 1036 } 1155 1156 /*!1157 \brief Sending all active (enabled) fields from client to server.1158 Each field is identified uniquely by its string identity. Not only should we1159 send the id to server but also we need to send ids of reference domain and reference axis.1160 With these two id, it's easier to make reference to grid where all data should be written.1161 Remark: This function must be called AFTER all active (enabled) files have been created on the server side1162 */1163 // void CFile::sendEnabledFields()1164 // {1165 // size_t size = this->enabledFields.size();1166 // for (size_t i = 0; i < size; ++i)1167 // {1168 // CField* field = this->enabledFields[i];1169 // this->sendAddField(field->getId());1170 // field->sendAllAttributesToServer();1171 // field->sendAddAllVariables();1172 // }1173 // }1174 1037 1175 1038 /*! -
XIOS/dev/dev_olga/src/server.cpp
r1077 r1130 67 67 68 68 boost::hash<string> hashString ; 69 // unsigned long hashServer1 = hashString(CXios::xiosCodeIdPrm);70 // unsigned long hashServer2 = hashString(CXios::xiosCodeIdSnd);71 // unsigned long hashServer = (CXios::serverLevel < 2) ? hashServer1 : hashServer2;72 69 unsigned long hashServer = hashString(CXios::xiosCodeId); 73 70 … … 193 190 else 194 191 { 195 // int rank ,size;196 int size;192 int size, rank; 193 int myColor; 197 194 if (!is_MPI_Initialized) oasis_init(CXios::xiosCodeId); 198 195 … … 200 197 MPI_Comm localComm; 201 198 oasis_get_localcomm(localComm); 202 MPI_Comm_dup(localComm, &intraComm); 203 199 200 // Create server intraComm 201 if (!CXios::usingServer2) 202 MPI_Comm_dup(localComm, &intraComm); 203 else 204 { 205 MPI_Comm_rank(localComm,&rank) ; 206 MPI_Comm_size(localComm,&serverSize_) ; 207 nbPools = serverSize_ * CXios::ratioServer2 / 100; 208 if ( rank < (serverSize_ - nbPools) ) 209 { 210 serverLevel = 1; 211 myColor = 0; 212 } 213 else 214 { 215 serverLevel = 2; 216 poolId = rank - serverSize_ + nbPools; 217 myColor = rank; 218 } 219 MPI_Comm_split(localComm, myColor, rank, &intraComm) ; 220 221 } 204 222 MPI_Comm_rank(intraComm,&rank_) ; 205 223 MPI_Comm_size(intraComm,&size) ; 224 206 225 string codesId=CXios::getin<string>("oasis_codes_id") ; 207 226 … … 217 236 { 218 237 oasis_get_intercomm(newComm,*it) ; 219 if (rank_==0) MPI_Send(&globalRank,1,MPI_INT,0,0,newComm) ; 220 MPI_Comm_remote_size(newComm,&size); 221 // interComm.push_back(newComm) ; 222 interCommLeft.push_back(newComm) ; 238 // interComm.push_back(newComm) ; 239 if ( !CXios::usingServer2) 240 interCommLeft.push_back(newComm) ; 241 else 242 { 243 if (serverLevel == 1) 244 { 245 info(50)<<"intercommCreate::server "<<rank_<<" intraCommSize : "<<size 246 <<" intraCommRank :"<<rank_<<" clientLeader "<< rank<<endl ; 247 MPI_Intercomm_create(intraComm, 0, localComm, rank, 0, &newComm) ; 248 interCommRight.push_back(newComm) ; 249 250 } 251 else if (serverLevel == 2) 252 { 253 info(50)<<"intercommCreate::server "<<rank_<<" intraCommSize : "<<size 254 <<" intraCommRank :"<<rank_<<" clientLeader "<< 0<<endl ; 255 MPI_Intercomm_create(intraComm, 0, localComm, 0, 0, &newComm) ; 256 interCommLeft.push_back(newComm) ; 257 258 } 259 260 } 261 // if (rank_==0) MPI_Send(&globalRank,1,MPI_INT,0,0,newComm) ; 262 // MPI_Comm_remote_size(newComm,&size); 263 // Send serverLeader to client 264 if (rank_==0) MPI_Send(&globalRank,1,MPI_INT,0,0,interCommLeft.back()) ; 223 265 } 224 266 oasis_enddef() ; … … 286 328 287 329 contextEventLoop() ; 288 // if (finished && contextList.empty()) stop=true ;289 330 if (finished && contextList.empty()) stop=true ; 290 331 eventScheduler->checkEvent() ; … … 510 551 contextInterComms.push_back(inter); 511 552 context->initServer(intraComm, contextInterComms.back()); 512 // context->initServer(intraComm, interCommLeft.front());513 553 } 514 554 … … 535 575 contextIntraComms.push_back(inter); 536 576 context->initClient(contextIntraComms.back(), contextInterComms.back()) ; 537 // context->initClient(intraComm, contextPrimInterComms.back()) ;538 // context->initClient(intraComm, *it) ;539 577 delete [] buff ; 540 578 } … … 545 583 void CServer::contextEventLoop(void) 546 584 { 547 bool finished ;585 bool isFinalized ; 548 586 549 587 map<string,CContext*>::iterator it ; … … 551 589 for(it=contextList.begin();it!=contextList.end();it++) 552 590 { 553 finished=it->second->isFinalized();554 if ( finished)555 { 556 it->second-> freeComms(); // deallocate internally allocated context communicators591 isFinalized=it->second->isFinalized(); 592 if (isFinalized) 593 { 594 it->second->postFinalize(); 557 595 contextList.erase(it) ; 558 596 break ; 559 597 } 560 598 else 561 finished=it->second->checkBuffersAndListen(); 599 { 600 isFinalized=it->second->checkBuffersAndListen(); 601 } 562 602 } 563 603 }
Note: See TracChangeset
for help on using the changeset viewer.