Skip to content

Latest commit

 

History

History
executable file
·
431 lines (413 loc) · 81.7 KB

doxygen_doc.md

File metadata and controls

executable file
·
431 lines (413 loc) · 81.7 KB

Doxygen rule for Bazel.

doxygen

load("@doxygen//:doxygen.bzl", "doxygen")

doxygen(name, srcs, dot_executable, configurations, doxyfile_template, doxygen_extra_args, outs,
        doxyfile_encoding, project_name, project_number, project_brief, project_logo, project_icon,
        create_subdirs, create_subdirs_level, allow_unicode_names, output_language, brief_member_desc,
        repeat_brief, abbreviate_brief, always_detailed_sec, inline_inherited_memb, full_path_names,
        strip_from_path, strip_from_inc_path, short_names, javadoc_autobrief, javadoc_banner,
        qt_autobrief, multiline_cpp_is_brief, python_docstring, inherit_docs, separate_member_pages,
        tab_size, aliases, optimize_output_for_c, optimize_output_java, optimize_for_fortran,
        optimize_output_vhdl, optimize_output_slice, extension_mapping, markdown_support,
        toc_include_headings, markdown_id_style, autolink_support, builtin_stl_support,
        cpp_cli_support, sip_support, idl_property_support, distribute_group_doc,
        group_nested_compounds, subgrouping, inline_grouped_classes, inline_simple_structs,
        typedef_hides_struct, lookup_cache_size, num_proc_threads, timestamp, extract_all,
        extract_private, extract_priv_virtual, extract_package, extract_static, extract_local_classes,
        extract_local_methods, extract_anon_nspaces, resolve_unnamed_params, hide_undoc_members,
        hide_undoc_classes, hide_friend_compounds, hide_in_body_docs, internal_docs, case_sense_names,
        hide_scope_names, hide_compound_reference, show_headerfile, show_include_files,
        show_grouped_memb_inc, force_local_includes, inline_info, sort_member_docs, sort_brief_docs,
        sort_members_ctors_1st, sort_group_names, sort_by_scope_name, strict_proto_matching,
        generate_todolist, generate_testlist, generate_buglist, generate_deprecatedlist,
        enabled_sections, max_initializer_lines, show_used_files, show_files, show_namespaces,
        file_version_filter, layout_file, cite_bib_files, external_tool_path, quiet, warnings,
        warn_if_undocumented, warn_if_doc_error, warn_if_incomplete_doc, warn_no_paramdoc,
        warn_if_undoc_enum_val, warn_as_error, warn_format, warn_line_format, warn_logfile, input,
        input_encoding, input_file_encoding, file_patterns, recursive, exclude, exclude_symlinks,
        exclude_patterns, exclude_symbols, example_path, example_patterns, example_recursive,
        image_path, input_filter, filter_patterns, filter_source_files, filter_source_patterns,
        use_mdfile_as_mainpage, fortran_comment_after, source_browser, inline_sources,
        strip_code_comments, referenced_by_relation, references_relation, references_link_source,
        source_tooltips, use_htags, verbatim_headers, clang_assisted_parsing, clang_add_inc_paths,
        clang_options, clang_database_path, alphabetical_index, ignore_prefix, generate_html,
        html_output, html_file_extension, html_header, html_footer, html_stylesheet,
        html_extra_stylesheet, html_extra_files, html_colorstyle, html_colorstyle_hue,
        html_colorstyle_sat, html_colorstyle_gamma, html_dynamic_menus, html_dynamic_sections,
        html_code_folding, html_copy_clipboard, html_project_cookie, html_index_num_entries,
        generate_docset, docset_feedname, docset_feedurl, docset_bundle_id, docset_publisher_id,
        docset_publisher_name, generate_htmlhelp, chm_file, hhc_location, generate_chi,
        chm_index_encoding, binary_toc, toc_expand, sitemap_url, generate_qhp, qch_file,
        qhp_namespace, qhp_virtual_folder, qhp_cust_filter_name, qhp_cust_filter_attrs,
        qhp_sect_filter_attrs, qhg_location, generate_eclipsehelp, eclipse_doc_id, disable_index,
        generate_treeview, full_sidebar, enum_values_per_line, show_enum_values, treeview_width,
        ext_links_in_window, obfuscate_emails, html_formula_format, formula_fontsize,
        formula_macrofile, use_mathjax, mathjax_version, mathjax_format, mathjax_relpath,
        mathjax_extensions, mathjax_codefile, searchengine, server_based_search, external_search,
        searchengine_url, searchdata_file, external_search_id, extra_search_mappings, generate_latex,
        latex_output, latex_cmd_name, makeindex_cmd_name, latex_makeindex_cmd, compact_latex,
        paper_type, extra_packages, latex_header, latex_footer, latex_extra_stylesheet,
        latex_extra_files, pdf_hyperlinks, use_pdflatex, latex_batchmode, latex_hide_indices,
        latex_bib_style, latex_emoji_directory, generate_rtf, rtf_output, compact_rtf, rtf_hyperlinks,
        rtf_stylesheet_file, rtf_extensions_file, rtf_extra_files, generate_man, man_output,
        man_extension, man_subdir, man_links, generate_xml, xml_output, xml_programlisting,
        xml_ns_memb_file_scope, generate_docbook, docbook_output, generate_autogen_def,
        generate_sqlite3, sqlite3_output, sqlite3_recreate_db, generate_perlmod, perlmod_latex,
        perlmod_pretty, perlmod_makevar_prefix, enable_preprocessing, macro_expansion,
        expand_only_predef, search_includes, include_path, include_file_patterns, predefined,
        expand_as_defined, skip_function_macros, tagfiles, generate_tagfile, allexternals,
        external_groups, external_pages, hide_undoc_relations, have_dot, dot_num_threads,
        dot_common_attr, dot_edge_attr, dot_node_attr, dot_fontpath, dot_transparent, class_graph,
        collaboration_graph, group_graphs, uml_look, uml_limit_num_fields, dot_uml_details,
        dot_wrap_threshold, template_relations, include_graph, included_by_graph, call_graph,
        caller_graph, graphical_hierarchy, directory_graph, dir_graph_max_depth, dot_image_format,
        interactive_svg, dot_path, dotfile_dirs, dia_path, diafile_dirs, plantuml_jar_path,
        plantuml_cfg_file, plantuml_include_path, dot_graph_max_nodes, max_dot_graph_depth,
        dot_multi_targets, generate_legend, dot_cleanup, mscgen_tool, mscfile_dirs, **kwargs)

Generates documentation using Doxygen.

The set of attributes the macro provides is a subset of the Doxygen configuration options. Depending on the type of the attribute, the macro will convert it to the appropriate string:

  • None (default): the attribute will not be included in the Doxyfile
  • bool: the value of the attribute is the string "YES" or "NO" respectively
  • list: the value of the attribute is a string with the elements separated by spaces and enclosed in double quotes
  • str: the value of the attribute is will be set to the string, unchanged. You may need to provide proper quoting if the value contains spaces

Example

# MODULE.bazel file
bazel_dep(name = "rules_doxygen", dev_dependency = True)
doxygen_extension = use_extension("@rules_doxygen//:extensions.bzl", "doxygen_extension")
use_repo(doxygen_extension, "doxygen")
# BUILD.bazel file
load("@doxygen//:doxygen.bzl", "doxygen")

doxygen(
    name = "doxygen",
    srcs = glob([
        "*.h",
        "*.cpp",
    ]),
    aliases = [
        "licence=@par Licence:^^",
        "verb{1}=@verbatim \\1 @endverbatim",
    ],
    optimize_output_for_c = True,
    project_brief = "Example project for doxygen",
    project_name = "example",
)

PARAMETERS

Name Description Default Value
name A name for the target. none
srcs A list of source files to generate documentation for. none
dot_executable Label of the doxygen executable. Make sure it is also added to the srcs of the macro None
configurations A list of additional configuration parameters to pass to Doxygen. None
doxyfile_template The template file to use to generate the Doxyfile. The following substitutions are available:
- # {{INPUT}}: Subpackage directory in the sandbox.
- # {{ADDITIONAL PARAMETERS}}: Additional parameters given in the configurations attribute.
- # {{OUTPUT DIRECTORY}}: The directory provided in the outs attribute.
None
doxygen_extra_args Extra arguments to pass to the doxygen executable. []
outs The output folders bazel will keep. If only the html outputs is of interest, the default value will do. otherwise, a list of folders to keep is expected (e.g. ["html", "latex"]). ["html"]
doxyfile_encoding This tag specifies the encoding used for all characters in the configuration file that follow. None
project_name The project_name tag is a single word (or a sequence of words surrounded by double-quotes, unless you are using Doxywizard) that should identify the project for which the documentation is generated. None
project_number The project_number tag can be used to enter a project or revision number. None
project_brief Using the project_brief tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. None
project_logo With the project_logo tag one can specify a logo or an icon that is included in the documentation. None
project_icon With the project_icon tag one can specify an icon that is included in the tabs when the HTML document is shown. None
create_subdirs If the create_subdirs tag is set to True then Doxygen will create up to 4096 sub-directories (in 2 levels) under the output directory of each output format and will distribute the generated files over these directories. None
create_subdirs_level Controls the number of sub-directories that will be created when create_subdirs tag is set to True. None
allow_unicode_names If the allow_unicode_names tag is set to True, Doxygen will allow non-ASCII characters to appear in the names of generated files. None
output_language The output_language tag is used to specify the language in which all documentation generated by Doxygen is written. None
brief_member_desc If the brief_member_desc tag is set to True, Doxygen will include brief member descriptions after the members that are listed in the file and class documentation (similar to Javadoc). None
repeat_brief If the repeat_brief tag is set to True, Doxygen will prepend the brief description of a member or function before the detailed description Note: If both hide_undoc_members and brief_member_desc are set to False, the brief descriptions will be completely suppressed. None
abbreviate_brief This tag implements a quasi-intelligent brief description abbreviator that is used to form the text in various listings. None
always_detailed_sec If the always_detailed_sec and repeat_brief tags are both set to True then Doxygen will generate a detailed section even if there is only a brief description. None
inline_inherited_memb If the inline_inherited_memb tag is set to True, Doxygen will show all inherited members of a class in the documentation of that class as if those members were ordinary class members. None
full_path_names If the full_path_names tag is set to True, Doxygen will prepend the full path before files name in the file list and in the header files. None
strip_from_path The strip_from_path tag can be used to strip a user-defined part of the path. None
strip_from_inc_path The strip_from_inc_path tag can be used to strip a user-defined part of the path mentioned in the documentation of a class, which tells the reader which header file to include in order to use a class. None
short_names If the short_names tag is set to True, Doxygen will generate much shorter (but less readable) file names. None
javadoc_autobrief If the javadoc_autobrief tag is set to True then Doxygen will interpret the first line (until the first dot) of a Javadoc-style comment as the brief description. None
javadoc_banner If the javadoc_banner tag is set to True then Doxygen will interpret a line such as /*************** as being the beginning of a Javadoc-style comment "banner". None
qt_autobrief If the qt_autobrief tag is set to True then Doxygen will interpret the first line (until the first dot) of a Qt-style comment as the brief description. None
multiline_cpp_is_brief The multiline_cpp_is_brief tag can be set to True to make Doxygen treat a multi-line C++ special comment block (i.e. a block of //! or /// comments) as a brief description. None
python_docstring By default Python docstrings are displayed as preformatted text and Doxygen's special commands cannot be used. None
inherit_docs If the inherit_docs tag is set to True then an undocumented member inherits the documentation from any documented member that it re-implements. None
separate_member_pages If the separate_member_pages tag is set to True then Doxygen will produce a new page for each member. None
tab_size The tab_size tag can be used to set the number of spaces in a tab. None
aliases This tag can be used to specify a number of aliases that act as commands in the documentation. None
optimize_output_for_c Set the optimize_output_for_c tag to True if your project consists of C sources only. None
optimize_output_java Set the optimize_output_java tag to True if your project consists of Java or Python sources only. None
optimize_for_fortran Set the optimize_for_fortran tag to True if your project consists of Fortran sources. None
optimize_output_vhdl Set the optimize_output_vhdl tag to True if your project consists of VHDL sources. None
optimize_output_slice Set the optimize_output_slice tag to True if your project consists of Slice sources only. None
extension_mapping Doxygen selects the parser to use depending on the extension of the files it parses. None
markdown_support If the markdown_support tag is enabled then Doxygen pre-processes all comments according to the Markdown format, which allows for more readable documentation. None
toc_include_headings When the toc_include_headings tag is set to a non-zero value, all headings up to that level are automatically included in the table of contents, even if they do not have an id attribute. None
markdown_id_style The markdown_id_style tag can be used to specify the algorithm used to generate identifiers for the Markdown headings. None
autolink_support When enabled Doxygen tries to link words that correspond to documented classes, or namespaces to their corresponding documentation. None
builtin_stl_support If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to include (a tag file for) the STL sources as input, then you should set this tag to True in order to let Doxygen match functions declarations and definitions whose arguments contain STL classes (e.g. func(std::string); versus func(std::string) {}). None
cpp_cli_support If you use Microsoft's C++/CLI language, you should set this option to True to enable parsing support. None
sip_support Set the sip_support tag to True if your project consists of sip (see: https://www.riverbankcomputing.com/software) sources only. None
idl_property_support For Microsoft's IDL there are propget and propput attributes to indicate getter and setter methods for a property. None
distribute_group_doc If member grouping is used in the documentation and the distribute_group_doc tag is set to True then Doxygen will reuse the documentation of the first member in the group (if any) for the other members of the group. None
group_nested_compounds If one adds a struct or class to a group and this option is enabled, then also any nested class or struct is added to the same group. None
subgrouping Set the subgrouping tag to True to allow class member groups of the same type (for instance a group of public functions) to be put as a subgroup of that type (e.g. under the Public Functions section). None
inline_grouped_classes When the inline_grouped_classes tag is set to True, classes, structs and unions are shown inside the group in which they are included (e.g. using \ingroup) instead of on a separate page (for HTML and Man pages) or section (for LaTeX and RTF). None
inline_simple_structs When the inline_simple_structs tag is set to True, structs, classes, and unions with only public data fields or simple typedef fields will be shown inline in the documentation of the scope in which they are defined (i.e. file, namespace, or group documentation), provided this scope is documented. None
typedef_hides_struct When typedef_hides_struct tag is enabled, a typedef of a struct, union, or enum is documented as struct, union, or enum with the name of the typedef. None
lookup_cache_size The size of the symbol lookup cache can be set using lookup_cache_size. None
num_proc_threads The num_proc_threads specifies the number of threads Doxygen is allowed to use during processing. None
timestamp If the timestamp tag is set different from False then each generated page will contain the date or date and time when the page was generated. None
extract_all If the extract_all tag is set to True, Doxygen will assume all entities in documentation are documented, even if no documentation was available. None
extract_private If the extract_private tag is set to True, all private members of a class will be included in the documentation. None
extract_priv_virtual If the extract_priv_virtual tag is set to True, documented private virtual methods of a class will be included in the documentation. None
extract_package If the extract_package tag is set to True, all members with package or internal scope will be included in the documentation. None
extract_static If the extract_static tag is set to True, all static members of a file will be included in the documentation. None
extract_local_classes If the extract_local_classes tag is set to True, classes (and structs) defined locally in source files will be included in the documentation. None
extract_local_methods This flag is only useful for Objective-C code. None
extract_anon_nspaces If this flag is set to True, the members of anonymous namespaces will be extracted and appear in the documentation as a namespace called 'anonymous_namespace{file}', where file will be replaced with the base name of the file that contains the anonymous namespace. None
resolve_unnamed_params If this flag is set to True, the name of an unnamed parameter in a declaration will be determined by the corresponding definition. None
hide_undoc_members If the hide_undoc_members tag is set to True, Doxygen will hide all undocumented members inside documented classes or files. None
hide_undoc_classes If the hide_undoc_classes tag is set to True, Doxygen will hide all undocumented classes that are normally visible in the class hierarchy. None
hide_friend_compounds If the hide_friend_compounds tag is set to True, Doxygen will hide all friend declarations. None
hide_in_body_docs If the hide_in_body_docs tag is set to True, Doxygen will hide any documentation blocks found inside the body of a function. None
internal_docs The internal_docs tag determines if documentation that is typed after a \internal command is included. None
case_sense_names With the correct setting of option case_sense_names Doxygen will better be able to match the capabilities of the underlying filesystem. None
hide_scope_names If the hide_scope_names tag is set to False then Doxygen will show members with their full class and namespace scopes in the documentation. None
hide_compound_reference If the hide_compound_reference tag is set to False (default) then Doxygen will append additional text to a page's title, such as Class Reference. None
show_headerfile If the show_headerfile tag is set to True then the documentation for a class will show which file needs to be included to use the class. None
show_include_files If the show_include_files tag is set to True then Doxygen will put a list of the files that are included by a file in the documentation of that file. None
show_grouped_memb_inc If the show_grouped_memb_inc tag is set to True then Doxygen will add for each grouped member an include statement to the documentation, telling the reader which file to include in order to use the member. None
force_local_includes If the force_local_includes tag is set to True then Doxygen will list include files with double quotes in the documentation rather than with sharp brackets. None
inline_info If the inline_info tag is set to True then a tag [inline] is inserted in the documentation for inline members. None
sort_member_docs If the sort_member_docs tag is set to True then Doxygen will sort the (detailed) documentation of file and class members alphabetically by member name. None
sort_brief_docs If the sort_brief_docs tag is set to True then Doxygen will sort the brief descriptions of file, namespace and class members alphabetically by member name. None
sort_members_ctors_1st If the sort_members_ctors_1st tag is set to True then Doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. None
sort_group_names If the sort_group_names tag is set to True then Doxygen will sort the hierarchy of group names into alphabetical order. None
sort_by_scope_name If the sort_by_scope_name tag is set to True, the class list will be sorted by fully-qualified names, including namespaces. None
strict_proto_matching If the strict_proto_matching option is enabled and Doxygen fails to do proper type resolution of all parameters of a function it will reject a match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. None
generate_todolist The generate_todolist tag can be used to enable (YES) or disable (NO) the todo list. None
generate_testlist The generate_testlist tag can be used to enable (YES) or disable (NO) the test list. None
generate_buglist The generate_buglist tag can be used to enable (YES) or disable (NO) the bug list. None
generate_deprecatedlist The generate_deprecatedlist tag can be used to enable (YES) or disable (NO) the deprecated list. None
enabled_sections The enabled_sections tag can be used to enable conditional documentation sections, marked by \if <section_label> ... \endif and \cond <section_label> ... \endcond blocks. None
max_initializer_lines The max_initializer_lines tag determines the maximum number of lines that the initial value of a variable or macro / define can have for it to appear in the documentation. None
show_used_files Set the show_used_files tag to False to disable the list of files generated at the bottom of the documentation of classes and structs. None
show_files Set the show_files tag to False to disable the generation of the Files page. None
show_namespaces Set the show_namespaces tag to False to disable the generation of the Namespaces page. None
file_version_filter The file_version_filter tag can be used to specify a program or script that Doxygen should invoke to get the current version for each file (typically from the version control system). None
layout_file The layout_file tag can be used to specify a layout file which will be parsed by Doxygen. None
cite_bib_files The cite_bib_files tag can be used to specify one or more bib files containing the reference definitions. None
external_tool_path The external_tool_path tag can be used to extend the search path (PATH environment variable) so that external tools such as latex and gs can be found. None
quiet The quiet tag can be used to turn on/off the messages that are generated to standard output by Doxygen. None
warnings The warnings tag can be used to turn on/off the warning messages that are generated to standard error (stderr) by Doxygen. None
warn_if_undocumented If the warn_if_undocumented tag is set to True then Doxygen will generate warnings for undocumented members. None
warn_if_doc_error If the warn_if_doc_error tag is set to True, Doxygen will generate warnings for potential errors in the documentation, such as documenting some parameters in a documented function twice, or documenting parameters that don't exist or using markup commands wrongly. None
warn_if_incomplete_doc If warn_if_incomplete_doc is set to True, Doxygen will warn about incomplete function parameter documentation. None
warn_no_paramdoc This warn_no_paramdoc option can be enabled to get warnings for functions that are documented, but have no documentation for their parameters or return value. None
warn_if_undoc_enum_val If warn_if_undoc_enum_val option is set to True, Doxygen will warn about undocumented enumeration values. None
warn_as_error If the warn_as_error tag is set to True then Doxygen will immediately stop when a warning is encountered. None
warn_format The warn_format tag determines the format of the warning messages that Doxygen can produce. None
warn_line_format In the $text part of the warn_format command it is possible that a reference to a more specific place is given. None
warn_logfile The warn_logfile tag can be used to specify a file to which warning and error messages should be written. None
input The input tag is used to specify the files and/or directories that contain documented source files. None
input_encoding This tag can be used to specify the character encoding of the source files that Doxygen parses. None
input_file_encoding This tag can be used to specify the character encoding of the source files that Doxygen parses The input_file_encoding tag can be used to specify character encoding on a per file pattern basis. None
file_patterns If the value of the input tag contains directories, you can use the file_patterns tag to specify one or more wildcard patterns (like *.cpp and *.h) to filter out the source-files in the directories. None
recursive The recursive tag can be used to specify whether or not subdirectories should be searched for input files as well. None
exclude The exclude tag can be used to specify files and/or directories that should be excluded from the input source files. None
exclude_symlinks The exclude_symlinks tag can be used to select whether or not files or directories that are symbolic links (a Unix file system feature) are excluded from the input. None
exclude_patterns If the value of the input tag contains directories, you can use the exclude_patterns tag to specify one or more wildcard patterns to exclude certain files from those directories. None
exclude_symbols The exclude_symbols tag can be used to specify one or more symbol names (namespaces, classes, functions, etc.) that should be excluded from the output. None
example_path The example_path tag can be used to specify one or more files or directories that contain example code fragments that are included (see the \include command). None
example_patterns If the value of the example_path tag contains directories, you can use the example_patterns tag to specify one or more wildcard pattern (like *.cpp and *.h) to filter out the source-files in the directories. None
example_recursive If the example_recursive tag is set to True then subdirectories will be searched for input files to be used with the \include or \dontinclude commands irrespective of the value of the recursive tag. None
image_path The image_path tag can be used to specify one or more files or directories that contain images that are to be included in the documentation (see the \image command). None
input_filter The input_filter tag can be used to specify a program that Doxygen should invoke to filter for each input file. None
filter_patterns The filter_patterns tag can be used to specify filters on a per file pattern basis. None
filter_source_files If the filter_source_files tag is set to True, the input filter (if set using input_filter) will also be used to filter the input files that are used for producing the source files to browse (i.e. when source_browser is set to True). None
filter_source_patterns The filter_source_patterns tag can be used to specify source filters per file pattern. None
use_mdfile_as_mainpage If the use_mdfile_as_mainpage tag refers to the name of a markdown file that is part of the input, its contents will be placed on the main page (index.html). None
fortran_comment_after The Fortran standard specifies that for fixed formatted Fortran code all characters from position 72 are to be considered as comment. None
source_browser If the source_browser tag is set to True then a list of source files will be generated. None
inline_sources Setting the inline_sources tag to True will include the body of functions, multi-line macros, enums or list initialized variables directly into the documentation. None
strip_code_comments Setting the strip_code_comments tag to True will instruct Doxygen to hide any special comment blocks from generated source code fragments. None
referenced_by_relation If the referenced_by_relation tag is set to True then for each documented entity all documented functions referencing it will be listed. None
references_relation If the references_relation tag is set to True then for each documented function all documented entities called/used by that function will be listed. None
references_link_source If the references_link_source tag is set to True and source_browser tag is set to True then the hyperlinks from functions in references_relation and referenced_by_relation lists will link to the source code. None
source_tooltips If source_tooltips is enabled (the default) then hovering a hyperlink in the source code will show a tooltip with additional information such as prototype, brief description and links to the definition and documentation. None
use_htags If the use_htags tag is set to True then the references to source code will point to the HTML generated by the htags(1) tool instead of Doxygen built-in source browser. None
verbatim_headers If the verbatim_headers tag is set the True then Doxygen will generate a verbatim copy of the header file for each class for which an include is specified. None
clang_assisted_parsing If the clang_assisted_parsing tag is set to True then Doxygen will use the clang parser (see: http://clang.llvm.org/) for more accurate parsing at the cost of reduced performance. None
clang_add_inc_paths If the clang_assisted_parsing tag is set to True and the clang_add_inc_paths tag is set to True then Doxygen will add the directory of each input to the include path. None
clang_options If clang assisted parsing is enabled you can provide the compiler with command line options that you would normally use when invoking the compiler. None
clang_database_path If clang assisted parsing is enabled you can provide the clang parser with the path to the directory containing a file called compile_commands.json. None
alphabetical_index If the alphabetical_index tag is set to True, an alphabetical index of all compounds will be generated. None
ignore_prefix The ignore_prefix tag can be used to specify a prefix (or a list of prefixes) that should be ignored while generating the index headers. None
generate_html If the generate_html tag is set to True, Doxygen will generate HTML output The default value is: True. None
html_output The html_output tag is used to specify where the HTML docs will be put. None
html_file_extension The html_file_extension tag can be used to specify the file extension for each generated HTML page (for example: .htm, .php, .asp). None
html_header The html_header tag can be used to specify a user-defined HTML header file for each generated HTML page. None
html_footer The html_footer tag can be used to specify a user-defined HTML footer for each generated HTML page. None
html_stylesheet The html_stylesheet tag can be used to specify a user-defined cascading style sheet that is used by each HTML page. None
html_extra_stylesheet The html_extra_stylesheet tag can be used to specify additional user-defined cascading style sheets that are included after the standard style sheets created by Doxygen. None
html_extra_files The html_extra_files tag can be used to specify one or more extra images or other source files which should be copied to the HTML output directory. None
html_colorstyle The html_colorstyle tag can be used to specify if the generated HTML output should be rendered with a dark or light theme. None
html_colorstyle_hue The html_colorstyle_hue tag controls the color of the HTML output. None
html_colorstyle_sat The html_colorstyle_sat tag controls the purity (or saturation) of the colors in the HTML output. None
html_colorstyle_gamma The html_colorstyle_gamma tag controls the gamma correction applied to the luminance component of the colors in the HTML output. None
html_dynamic_menus If the html_dynamic_menus tag is set to True then the generated HTML documentation will contain a main index with vertical navigation menus that are dynamically created via JavaScript. None
html_dynamic_sections If the html_dynamic_sections tag is set to True then the generated HTML documentation will contain sections that can be hidden and shown after the page has loaded. None
html_code_folding If the html_code_folding tag is set to True then classes and functions can be dynamically folded and expanded in the generated HTML source code. None
html_copy_clipboard If the html_copy_clipboard tag is set to True then Doxygen will show an icon in the top right corner of code and text fragments that allows the user to copy its content to the clipboard. None
html_project_cookie Doxygen stores a couple of settings persistently in the browser (via e.g. cookies). None
html_index_num_entries With html_index_num_entries one can control the preferred number of entries shown in the various tree structured indices initially; the user can expand and collapse entries dynamically later on. None
generate_docset If the generate_docset tag is set to True, additional index files will be generated that can be used as input for Apple's Xcode 3 integrated development environment (see: https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). None
docset_feedname This tag determines the name of the docset feed. None
docset_feedurl This tag determines the URL of the docset feed. None
docset_bundle_id This tag specifies a string that should uniquely identify the documentation set bundle. None
docset_publisher_id The docset_publisher_id tag specifies a string that should uniquely identify the documentation publisher. None
docset_publisher_name The docset_publisher_name tag identifies the documentation publisher. None
generate_htmlhelp If the generate_htmlhelp tag is set to True then Doxygen generates three additional HTML index files: index.hhp, index.hhc, and index.hhk. None
chm_file The chm_file tag can be used to specify the file name of the resulting .chm file. None
hhc_location The hhc_location tag can be used to specify the location (absolute path including file name) of the HTML help compiler (hhc.exe). None
generate_chi The generate_chi flag controls if a separate .chi index file is generated (YES) or that it should be included in the main .chm file (NO). None
chm_index_encoding The chm_index_encoding is used to encode HtmlHelp index (hhk), content (hhc) and project file content. None
binary_toc The binary_toc flag controls whether a binary table of contents is generated (YES) or a normal table of contents (NO) in the .chm file. None
toc_expand The toc_expand flag can be set to True to add extra items for group members to the table of contents of the HTML help documentation and to the tree view. None
sitemap_url The sitemap_url tag is used to specify the full URL of the place where the generated documentation will be placed on the server by the user during the deployment of the documentation. None
generate_qhp If the generate_qhp tag is set to True and both qhp_namespace and qhp_virtual_folder are set, an additional index file will be generated that can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated HTML documentation. None
qch_file If the qhg_location tag is specified, the qch_file tag can be used to specify the file name of the resulting .qch file. None
qhp_namespace The qhp_namespace tag specifies the namespace to use when generating Qt Help Project output. None
qhp_virtual_folder The qhp_virtual_folder tag specifies the namespace to use when generating Qt Help Project output. None
qhp_cust_filter_name If the qhp_cust_filter_name tag is set, it specifies the name of a custom filter to add. None
qhp_cust_filter_attrs The qhp_cust_filter_attrs tag specifies the list of the attributes of the custom filter to add. None
qhp_sect_filter_attrs The qhp_sect_filter_attrs tag specifies the list of the attributes this project's filter section matches. None
qhg_location The qhg_location tag can be used to specify the location (absolute path including file name) of Qt's qhelpgenerator. None
generate_eclipsehelp If the generate_eclipsehelp tag is set to True, additional index files will be generated, together with the HTML files, they form an Eclipse help plugin. None
eclipse_doc_id A unique identifier for the Eclipse help plugin. None
disable_index If you want full control over the layout of the generated HTML pages it might be necessary to disable the index and replace it with your own. None
generate_treeview The generate_treeview tag is used to specify whether a tree-like index structure should be generated to display hierarchical information. None
full_sidebar When both generate_treeview and disable_index are set to True, then the full_sidebar option determines if the side bar is limited to only the treeview area (value False) or if it should extend to the full height of the window (value True). None
enum_values_per_line The enum_values_per_line tag can be used to set the number of enum values that Doxygen will group on one line in the generated HTML documentation. None
show_enum_values When the show_enum_values tag is set doxygen will show the specified enumeration values besides the enumeration mnemonics. None
treeview_width If the treeview is enabled (see generate_treeview) then this tag can be used to set the initial width (in pixels) of the frame in which the tree is shown. None
ext_links_in_window If the ext_links_in_window option is set to True, Doxygen will open links to external symbols imported via tag files in a separate window. None
obfuscate_emails If the obfuscate_emails tag is set to True, Doxygen will obfuscate email addresses. None
html_formula_format If the html_formula_format option is set to svg, Doxygen will use the pdf2svg tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see https://inkscape.org) to generate formulas as SVG images instead of PNGs for the HTML output. None
formula_fontsize Use this tag to change the font size of LaTeX formulas included as images in the HTML documentation. None
formula_macrofile The formula_macrofile can contain LaTeX \newcommand and \renewcommand commands to create new LaTeX commands to be used in formulas as building blocks. None
use_mathjax Enable the use_mathjax option to render LaTeX formulas using MathJax (see https://www.mathjax.org) which uses client side JavaScript for the rendering instead of using pre-rendered bitmaps. None
mathjax_version With mathjax_version it is possible to specify the MathJax version to be used. None
mathjax_format When MathJax is enabled you can set the default output format to be used for the MathJax output. None
mathjax_relpath When MathJax is enabled you need to specify the location relative to the HTML output directory using the mathjax_relpath option. None
mathjax_extensions The mathjax_extensions tag can be used to specify one or more MathJax extension names that should be enabled during MathJax rendering. None
mathjax_codefile The mathjax_codefile tag can be used to specify a file with JavaScript pieces of code that will be used on startup of the MathJax code. None
searchengine When the searchengine tag is enabled Doxygen will generate a search box for the HTML output. None
server_based_search When the server_based_search tag is enabled the search engine will be implemented using a web server instead of a web client using JavaScript. None
external_search When external_search tag is enabled Doxygen will no longer generate the PHP script for searching. None
searchengine_url The searchengine_url should point to a search engine hosted by a web server which will return the search results when external_search is enabled. None
searchdata_file When server_based_search and external_search are both enabled the unindexed search data is written to a file for indexing by an external tool. None
external_search_id When server_based_search and external_search are both enabled the external_search_id tag can be used as an identifier for the project. None
extra_search_mappings The extra_search_mappings tag can be used to enable searching through Doxygen projects other than the one defined by this configuration file, but that are all added to the same external search index. None
generate_latex If the generate_latex tag is set to True, Doxygen will generate LaTeX output. None
latex_output The latex_output tag is used to specify where the LaTeX docs will be put. None
latex_cmd_name The latex_cmd_name tag can be used to specify the LaTeX command name to be invoked. None
makeindex_cmd_name The makeindex_cmd_name tag can be used to specify the command name to generate index for LaTeX. None
latex_makeindex_cmd The latex_makeindex_cmd tag can be used to specify the command name to generate index for LaTeX. None
compact_latex If the compact_latex tag is set to True, Doxygen generates more compact LaTeX documents. None
paper_type The paper_type tag can be used to set the paper type that is used by the printer. None
extra_packages The extra_packages tag can be used to specify one or more LaTeX package names that should be included in the LaTeX output. None
latex_header The latex_header tag can be used to specify a user-defined LaTeX header for the generated LaTeX document. None
latex_footer The latex_footer tag can be used to specify a user-defined LaTeX footer for the generated LaTeX document. None
latex_extra_stylesheet The latex_extra_stylesheet tag can be used to specify additional user-defined LaTeX style sheets that are included after the standard style sheets created by Doxygen. None
latex_extra_files The latex_extra_files tag can be used to specify one or more extra images or other source files which should be copied to the latex_output output directory. None
pdf_hyperlinks If the pdf_hyperlinks tag is set to True, the LaTeX that is generated is prepared for conversion to PDF (using ps2pdf or pdflatex). None
use_pdflatex If the use_pdflatex tag is set to True, Doxygen will use the engine as specified with latex_cmd_name to generate the PDF file directly from the LaTeX files. None
latex_batchmode The latex_batchmode tag signals the behavior of LaTeX in case of an error. None
latex_hide_indices If the latex_hide_indices tag is set to True then Doxygen will not include the index chapters (such as File Index, Compound Index, etc.) in the output. None
latex_bib_style The latex_bib_style tag can be used to specify the style to use for the bibliography, e.g. plainnat, or ieeetr. None
latex_emoji_directory The latex_emoji_directory tag is used to specify the (relative or absolute) path from which the emoji images will be read. None
generate_rtf If the generate_rtf tag is set to True, Doxygen will generate RTF output. None
rtf_output The rtf_output tag is used to specify where the RTF docs will be put. None
compact_rtf If the compact_rtf tag is set to True, Doxygen generates more compact RTF documents. None
rtf_hyperlinks If the rtf_hyperlinks tag is set to True, the RTF that is generated will contain hyperlink fields. None
rtf_stylesheet_file Load stylesheet definitions from file. None
rtf_extensions_file Set optional variables used in the generation of an RTF document. None
rtf_extra_files The rtf_extra_files tag can be used to specify one or more extra images or other source files which should be copied to the rtf_output output directory. None
generate_man If the generate_man tag is set to True, Doxygen will generate man pages for classes and files. None
man_output The man_output tag is used to specify where the man pages will be put. None
man_extension The man_extension tag determines the extension that is added to the generated man pages. None
man_subdir The man_subdir tag determines the name of the directory created within man_output in which the man pages are placed. None
man_links If the man_links tag is set to True and Doxygen generates man output, then it will generate one additional man file for each entity documented in the real man page(s). None
generate_xml If the generate_xml tag is set to True, Doxygen will generate an XML file that captures the structure of the code including all documentation. None
xml_output The xml_output tag is used to specify where the XML pages will be put. None
xml_programlisting If the xml_programlisting tag is set to True, Doxygen will dump the program listings (including syntax highlighting and cross-referencing information) to the XML output. None
xml_ns_memb_file_scope If the xml_ns_memb_file_scope tag is set to True, Doxygen will include namespace members in file scope as well, matching the HTML output. None
generate_docbook If the generate_docbook tag is set to True, Doxygen will generate Docbook files that can be used to generate PDF. None
docbook_output The docbook_output tag is used to specify where the Docbook pages will be put. None
generate_autogen_def If the generate_autogen_def tag is set to True, Doxygen will generate an AutoGen Definitions (see https://autogen.sourceforge.net/) file that captures the structure of the code including all documentation. None
generate_sqlite3 If the generate_sqlite3 tag is set to True Doxygen will generate a Sqlite3 database with symbols found by Doxygen stored in tables. None
sqlite3_output The sqlite3_output tag is used to specify where the Sqlite3 database will be put. None
sqlite3_recreate_db The sqlite3_recreate_db tag is set to True, the existing doxygen_sqlite3.db database file will be recreated with each Doxygen run. None
generate_perlmod If the generate_perlmod tag is set to True, Doxygen will generate a Perl module file that captures the structure of the code including all documentation. None
perlmod_latex If the perlmod_latex tag is set to True, Doxygen will generate the necessary Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI output from the Perl module output. None
perlmod_pretty If the perlmod_pretty tag is set to True, the Perl module output will be nicely formatted so it can be parsed by a human reader. None
perlmod_makevar_prefix The names of the make variables in the generated doxyrules.make file are prefixed with the string contained in perlmod_makevar_prefix. None
enable_preprocessing If the enable_preprocessing tag is set to True, Doxygen will evaluate all C-preprocessor directives found in the sources and include files. None
macro_expansion If the macro_expansion tag is set to True, Doxygen will expand all macro names in the source code. None
expand_only_predef If the expand_only_predef and macro_expansion tags are both set to True then the macro expansion is limited to the macros specified with the predefined and expand_as_defined tags. None
search_includes If the search_includes tag is set to True, the include files in the include_path will be searched if a #include is found. None
include_path The include_path tag can be used to specify one or more directories that contain include files that are not input files but should be processed by the preprocessor. None
include_file_patterns You can use the include_file_patterns tag to specify one or more wildcard patterns (like *.h and *.hpp) to filter out the header-files in the directories. None
predefined The predefined tag can be used to specify one or more macro names that are defined before the preprocessor is started (similar to the -D option of e.g. gcc). None
expand_as_defined If the macro_expansion and expand_only_predef tags are set to True then this tag can be used to specify a list of macro names that should be expanded. None
skip_function_macros If the skip_function_macros tag is set to True then Doxygen's preprocessor will remove all references to function-like macros that are alone on a line, have an all uppercase name, and do not end with a semicolon. None
tagfiles The tagfiles tag can be used to specify one or more tag files. None
generate_tagfile When a file name is specified after generate_tagfile, Doxygen will create a tag file that is based on the input files it reads. None
allexternals If the allexternals tag is set to True, all external classes and namespaces will be listed in the class and namespace index. None
external_groups If the external_groups tag is set to True, all external groups will be listed in the topic index. None
external_pages If the external_pages tag is set to True, all external pages will be listed in the related pages index. None
hide_undoc_relations If set to True the inheritance and collaboration graphs will hide inheritance and usage relations if the target is undocumented or is not a class. None
have_dot If you set the have_dot tag to True then Doxygen will assume the dot tool is available from the path. None
dot_num_threads The dot_num_threads specifies the number of dot invocations Doxygen is allowed to run in parallel. None
dot_common_attr dot_common_attr is common attributes for nodes, edges and labels of subgraphs. None
dot_edge_attr dot_edge_attr is concatenated with dot_common_attr. None
dot_node_attr dot_node_attr is concatenated with dot_common_attr. None
dot_fontpath You can set the path where dot can find font specified with fontname in dot_common_attr and others dot attributes. None
dot_transparent If the dot_transparent tag is set to True, then the images generated by dot will have a transparent background. None
class_graph If the class_graph tag is set to True or GRAPH or BUILTIN then Doxygen will generate a graph for each documented class showing the direct and indirect inheritance relations. None
collaboration_graph If the collaboration_graph tag is set to True then Doxygen will generate a graph for each documented class showing the direct and indirect implementation dependencies (inheritance, containment, and class references variables) of the class with other documented classes. None
group_graphs If the group_graphs tag is set to True then Doxygen will generate a graph for groups, showing the direct groups dependencies. None
uml_look If the uml_look tag is set to True, Doxygen will generate inheritance and collaboration diagrams in a style similar to the OMG's Unified Modeling Language. None
uml_limit_num_fields If the uml_look tag is enabled, the fields and methods are shown inside the class node. None
dot_uml_details If the dot_uml_details tag is set to False, Doxygen will show attributes and methods without types and arguments in the UML graphs. None
dot_wrap_threshold The dot_wrap_threshold tag can be used to set the maximum number of characters to display on a single line. None
template_relations If the template_relations tag is set to True then the inheritance and collaboration graphs will show the relations between templates and their instances. None
include_graph If the include_graph, enable_preprocessing and search_includes tags are set to True then Doxygen will generate a graph for each documented file showing the direct and indirect include dependencies of the file with other documented files. None
included_by_graph If the included_by_graph, enable_preprocessing and search_includes tags are set to True then Doxygen will generate a graph for each documented file showing the direct and indirect include dependencies of the file with other documented files. None
call_graph If the call_graph tag is set to True then Doxygen will generate a call dependency graph for every global function or class method. None
caller_graph If the caller_graph tag is set to True then Doxygen will generate a caller dependency graph for every global function or class method. None
graphical_hierarchy If the graphical_hierarchy tag is set to True then Doxygen will graphical hierarchy of all classes instead of a textual one. None
directory_graph If the directory_graph tag is set to True then Doxygen will show the dependencies a directory has on other directories in a graphical way. None
dir_graph_max_depth The dir_graph_max_depth tag can be used to limit the maximum number of levels of child directories generated in directory dependency graphs by dot. None
dot_image_format The dot_image_format tag can be used to set the image format of the images generated by dot. None
interactive_svg If dot_image_format is set to svg, then this option can be set to True to enable generation of interactive SVG images that allow zooming and panning. None
dot_path The dot_path tag can be used to specify the path where the dot tool can be found. None
dotfile_dirs The dotfile_dirs tag can be used to specify one or more directories that contain dot files that are included in the documentation (see the \dotfile command). None
dia_path You can include diagrams made with dia in Doxygen documentation. None
diafile_dirs The diafile_dirs tag can be used to specify one or more directories that contain dia files that are included in the documentation (see the \diafile command). None
plantuml_jar_path When using PlantUML, the plantuml_jar_path tag should be used to specify the path where java can find the plantuml.jar file or to the filename of jar file to be used. None
plantuml_cfg_file When using PlantUML, the plantuml_cfg_file tag can be used to specify a configuration file for PlantUML. None
plantuml_include_path When using PlantUML, the specified paths are searched for files specified by the !include statement in a PlantUML block. None
dot_graph_max_nodes The dot_graph_max_nodes tag can be used to set the maximum number of nodes that will be shown in the graph. None
max_dot_graph_depth The max_dot_graph_depth tag can be used to set the maximum depth of the graphs generated by dot. None
dot_multi_targets Set the dot_multi_targets tag to True to allow dot to generate multiple output files in one run (i.e. multiple -o and -T options on the command line). None
generate_legend If the generate_legend tag is set to True Doxygen will generate a legend page explaining the meaning of the various boxes and arrows in the dot generated graphs. None
dot_cleanup If the dot_cleanup tag is set to True, Doxygen will remove the intermediate files that are used to generate the various graphs. None
mscgen_tool You can define message sequence charts within Doxygen comments using the \msc command. None
mscfile_dirs The mscfile_dirs tag can be used to specify one or more directories that contain msc files that are included in the documentation (see the \mscfile command). None
kwargs Additional arguments to pass to the rule (e.g. visibility = ["//visibility:public"], tags = ["manual"]) none