blob: e9452addbbd8e21b1ea962913753395f1d5b194f [file] [log] [blame] [view]
<!-- Generated with Stardoc: http://skydoc.bazel.build -->
Doxygen rule for Bazel.
<a id="TransitiveSourcesInfo"></a>
## TransitiveSourcesInfo
<pre>
load("@rules_doxygen//doxygen:doxygen.bzl", "TransitiveSourcesInfo")
TransitiveSourcesInfo(<a href="#TransitiveSourcesInfo-srcs">srcs</a>)
</pre>
A provider to collect source files transitively from the target and its dependencies
**FIELDS**
| Name | Description |
| :------------- | :------------- |
| <a id="TransitiveSourcesInfo-srcs"></a>srcs | depset of source files collected from the target and its dependencies |
<a id="doxygen"></a>
## doxygen
<pre>
load("@doxygen//:doxygen.bzl", "doxygen")
doxygen(<a href="#doxygen-name">name</a>, <a href="#doxygen-srcs">srcs</a>, <a href="#doxygen-deps">deps</a>, <a href="#doxygen-dot_executable">dot_executable</a>, <a href="#doxygen-configurations">configurations</a>, <a href="#doxygen-doxyfile_template">doxyfile_template</a>, <a href="#doxygen-doxygen_extra_args">doxygen_extra_args</a>,
<a href="#doxygen-outs">outs</a>, <a href="#doxygen-doxyfile_encoding">doxyfile_encoding</a>, <a href="#doxygen-project_name">project_name</a>, <a href="#doxygen-project_number">project_number</a>, <a href="#doxygen-project_brief">project_brief</a>, <a href="#doxygen-project_logo">project_logo</a>,
<a href="#doxygen-project_icon">project_icon</a>, <a href="#doxygen-create_subdirs">create_subdirs</a>, <a href="#doxygen-create_subdirs_level">create_subdirs_level</a>, <a href="#doxygen-allow_unicode_names">allow_unicode_names</a>, <a href="#doxygen-output_language">output_language</a>,
<a href="#doxygen-brief_member_desc">brief_member_desc</a>, <a href="#doxygen-repeat_brief">repeat_brief</a>, <a href="#doxygen-abbreviate_brief">abbreviate_brief</a>, <a href="#doxygen-always_detailed_sec">always_detailed_sec</a>, <a href="#doxygen-inline_inherited_memb">inline_inherited_memb</a>,
<a href="#doxygen-full_path_names">full_path_names</a>, <a href="#doxygen-strip_from_path">strip_from_path</a>, <a href="#doxygen-strip_from_inc_path">strip_from_inc_path</a>, <a href="#doxygen-short_names">short_names</a>, <a href="#doxygen-javadoc_autobrief">javadoc_autobrief</a>,
<a href="#doxygen-javadoc_banner">javadoc_banner</a>, <a href="#doxygen-qt_autobrief">qt_autobrief</a>, <a href="#doxygen-multiline_cpp_is_brief">multiline_cpp_is_brief</a>, <a href="#doxygen-python_docstring">python_docstring</a>, <a href="#doxygen-inherit_docs">inherit_docs</a>,
<a href="#doxygen-separate_member_pages">separate_member_pages</a>, <a href="#doxygen-tab_size">tab_size</a>, <a href="#doxygen-aliases">aliases</a>, <a href="#doxygen-optimize_output_for_c">optimize_output_for_c</a>, <a href="#doxygen-optimize_output_java">optimize_output_java</a>,
<a href="#doxygen-optimize_for_fortran">optimize_for_fortran</a>, <a href="#doxygen-optimize_output_vhdl">optimize_output_vhdl</a>, <a href="#doxygen-optimize_output_slice">optimize_output_slice</a>, <a href="#doxygen-extension_mapping">extension_mapping</a>,
<a href="#doxygen-markdown_support">markdown_support</a>, <a href="#doxygen-toc_include_headings">toc_include_headings</a>, <a href="#doxygen-markdown_id_style">markdown_id_style</a>, <a href="#doxygen-autolink_support">autolink_support</a>,
<a href="#doxygen-autolink_ignore_words">autolink_ignore_words</a>, <a href="#doxygen-builtin_stl_support">builtin_stl_support</a>, <a href="#doxygen-cpp_cli_support">cpp_cli_support</a>, <a href="#doxygen-sip_support">sip_support</a>,
<a href="#doxygen-idl_property_support">idl_property_support</a>, <a href="#doxygen-distribute_group_doc">distribute_group_doc</a>, <a href="#doxygen-group_nested_compounds">group_nested_compounds</a>, <a href="#doxygen-subgrouping">subgrouping</a>,
<a href="#doxygen-inline_grouped_classes">inline_grouped_classes</a>, <a href="#doxygen-inline_simple_structs">inline_simple_structs</a>, <a href="#doxygen-typedef_hides_struct">typedef_hides_struct</a>, <a href="#doxygen-lookup_cache_size">lookup_cache_size</a>,
<a href="#doxygen-num_proc_threads">num_proc_threads</a>, <a href="#doxygen-timestamp">timestamp</a>, <a href="#doxygen-extract_all">extract_all</a>, <a href="#doxygen-extract_private">extract_private</a>, <a href="#doxygen-extract_priv_virtual">extract_priv_virtual</a>,
<a href="#doxygen-extract_package">extract_package</a>, <a href="#doxygen-extract_static">extract_static</a>, <a href="#doxygen-extract_local_classes">extract_local_classes</a>, <a href="#doxygen-extract_local_methods">extract_local_methods</a>,
<a href="#doxygen-extract_anon_nspaces">extract_anon_nspaces</a>, <a href="#doxygen-resolve_unnamed_params">resolve_unnamed_params</a>, <a href="#doxygen-hide_undoc_members">hide_undoc_members</a>, <a href="#doxygen-hide_undoc_classes">hide_undoc_classes</a>,
<a href="#doxygen-hide_undoc_namespaces">hide_undoc_namespaces</a>, <a href="#doxygen-hide_friend_compounds">hide_friend_compounds</a>, <a href="#doxygen-hide_in_body_docs">hide_in_body_docs</a>, <a href="#doxygen-internal_docs">internal_docs</a>,
<a href="#doxygen-case_sense_names">case_sense_names</a>, <a href="#doxygen-hide_scope_names">hide_scope_names</a>, <a href="#doxygen-hide_compound_reference">hide_compound_reference</a>, <a href="#doxygen-show_headerfile">show_headerfile</a>,
<a href="#doxygen-show_include_files">show_include_files</a>, <a href="#doxygen-show_grouped_memb_inc">show_grouped_memb_inc</a>, <a href="#doxygen-force_local_includes">force_local_includes</a>, <a href="#doxygen-inline_info">inline_info</a>,
<a href="#doxygen-sort_member_docs">sort_member_docs</a>, <a href="#doxygen-sort_brief_docs">sort_brief_docs</a>, <a href="#doxygen-sort_members_ctors_1st">sort_members_ctors_1st</a>, <a href="#doxygen-sort_group_names">sort_group_names</a>,
<a href="#doxygen-sort_by_scope_name">sort_by_scope_name</a>, <a href="#doxygen-strict_proto_matching">strict_proto_matching</a>, <a href="#doxygen-generate_todolist">generate_todolist</a>, <a href="#doxygen-generate_testlist">generate_testlist</a>,
<a href="#doxygen-generate_buglist">generate_buglist</a>, <a href="#doxygen-generate_deprecatedlist">generate_deprecatedlist</a>, <a href="#doxygen-enabled_sections">enabled_sections</a>, <a href="#doxygen-max_initializer_lines">max_initializer_lines</a>,
<a href="#doxygen-show_used_files">show_used_files</a>, <a href="#doxygen-show_files">show_files</a>, <a href="#doxygen-show_namespaces">show_namespaces</a>, <a href="#doxygen-file_version_filter">file_version_filter</a>, <a href="#doxygen-layout_file">layout_file</a>,
<a href="#doxygen-cite_bib_files">cite_bib_files</a>, <a href="#doxygen-external_tool_path">external_tool_path</a>, <a href="#doxygen-quiet">quiet</a>, <a href="#doxygen-warnings">warnings</a>, <a href="#doxygen-warn_if_undocumented">warn_if_undocumented</a>, <a href="#doxygen-warn_if_doc_error">warn_if_doc_error</a>,
<a href="#doxygen-warn_if_incomplete_doc">warn_if_incomplete_doc</a>, <a href="#doxygen-warn_no_paramdoc">warn_no_paramdoc</a>, <a href="#doxygen-warn_if_undoc_enum_val">warn_if_undoc_enum_val</a>, <a href="#doxygen-warn_layout_file">warn_layout_file</a>,
<a href="#doxygen-warn_as_error">warn_as_error</a>, <a href="#doxygen-warn_format">warn_format</a>, <a href="#doxygen-warn_line_format">warn_line_format</a>, <a href="#doxygen-warn_logfile">warn_logfile</a>, <a href="#doxygen-input">input</a>, <a href="#doxygen-input_encoding">input_encoding</a>,
<a href="#doxygen-input_file_encoding">input_file_encoding</a>, <a href="#doxygen-file_patterns">file_patterns</a>, <a href="#doxygen-recursive">recursive</a>, <a href="#doxygen-exclude">exclude</a>, <a href="#doxygen-exclude_symlinks">exclude_symlinks</a>, <a href="#doxygen-exclude_patterns">exclude_patterns</a>,
<a href="#doxygen-exclude_symbols">exclude_symbols</a>, <a href="#doxygen-example_path">example_path</a>, <a href="#doxygen-example_patterns">example_patterns</a>, <a href="#doxygen-example_recursive">example_recursive</a>, <a href="#doxygen-image_path">image_path</a>, <a href="#doxygen-input_filter">input_filter</a>,
<a href="#doxygen-filter_patterns">filter_patterns</a>, <a href="#doxygen-filter_source_files">filter_source_files</a>, <a href="#doxygen-filter_source_patterns">filter_source_patterns</a>, <a href="#doxygen-use_mdfile_as_mainpage">use_mdfile_as_mainpage</a>,
<a href="#doxygen-implicit_dir_docs">implicit_dir_docs</a>, <a href="#doxygen-fortran_comment_after">fortran_comment_after</a>, <a href="#doxygen-source_browser">source_browser</a>, <a href="#doxygen-inline_sources">inline_sources</a>, <a href="#doxygen-strip_code_comments">strip_code_comments</a>,
<a href="#doxygen-referenced_by_relation">referenced_by_relation</a>, <a href="#doxygen-references_relation">references_relation</a>, <a href="#doxygen-references_link_source">references_link_source</a>, <a href="#doxygen-source_tooltips">source_tooltips</a>,
<a href="#doxygen-use_htags">use_htags</a>, <a href="#doxygen-verbatim_headers">verbatim_headers</a>, <a href="#doxygen-clang_assisted_parsing">clang_assisted_parsing</a>, <a href="#doxygen-clang_add_inc_paths">clang_add_inc_paths</a>, <a href="#doxygen-clang_options">clang_options</a>,
<a href="#doxygen-clang_database_path">clang_database_path</a>, <a href="#doxygen-alphabetical_index">alphabetical_index</a>, <a href="#doxygen-ignore_prefix">ignore_prefix</a>, <a href="#doxygen-generate_html">generate_html</a>, <a href="#doxygen-html_output">html_output</a>,
<a href="#doxygen-html_file_extension">html_file_extension</a>, <a href="#doxygen-html_header">html_header</a>, <a href="#doxygen-html_footer">html_footer</a>, <a href="#doxygen-html_stylesheet">html_stylesheet</a>, <a href="#doxygen-html_extra_stylesheet">html_extra_stylesheet</a>,
<a href="#doxygen-html_extra_files">html_extra_files</a>, <a href="#doxygen-html_colorstyle">html_colorstyle</a>, <a href="#doxygen-html_colorstyle_hue">html_colorstyle_hue</a>, <a href="#doxygen-html_colorstyle_sat">html_colorstyle_sat</a>,
<a href="#doxygen-html_colorstyle_gamma">html_colorstyle_gamma</a>, <a href="#doxygen-html_dynamic_menus">html_dynamic_menus</a>, <a href="#doxygen-html_dynamic_sections">html_dynamic_sections</a>, <a href="#doxygen-html_code_folding">html_code_folding</a>,
<a href="#doxygen-html_copy_clipboard">html_copy_clipboard</a>, <a href="#doxygen-html_project_cookie">html_project_cookie</a>, <a href="#doxygen-html_index_num_entries">html_index_num_entries</a>, <a href="#doxygen-generate_docset">generate_docset</a>,
<a href="#doxygen-docset_feedname">docset_feedname</a>, <a href="#doxygen-docset_feedurl">docset_feedurl</a>, <a href="#doxygen-docset_bundle_id">docset_bundle_id</a>, <a href="#doxygen-docset_publisher_id">docset_publisher_id</a>, <a href="#doxygen-docset_publisher_name">docset_publisher_name</a>,
<a href="#doxygen-generate_htmlhelp">generate_htmlhelp</a>, <a href="#doxygen-chm_file">chm_file</a>, <a href="#doxygen-hhc_location">hhc_location</a>, <a href="#doxygen-generate_chi">generate_chi</a>, <a href="#doxygen-chm_index_encoding">chm_index_encoding</a>, <a href="#doxygen-binary_toc">binary_toc</a>,
<a href="#doxygen-toc_expand">toc_expand</a>, <a href="#doxygen-sitemap_url">sitemap_url</a>, <a href="#doxygen-generate_qhp">generate_qhp</a>, <a href="#doxygen-qch_file">qch_file</a>, <a href="#doxygen-qhp_namespace">qhp_namespace</a>, <a href="#doxygen-qhp_virtual_folder">qhp_virtual_folder</a>,
<a href="#doxygen-qhp_cust_filter_name">qhp_cust_filter_name</a>, <a href="#doxygen-qhp_cust_filter_attrs">qhp_cust_filter_attrs</a>, <a href="#doxygen-qhp_sect_filter_attrs">qhp_sect_filter_attrs</a>, <a href="#doxygen-qhg_location">qhg_location</a>,
<a href="#doxygen-generate_eclipsehelp">generate_eclipsehelp</a>, <a href="#doxygen-eclipse_doc_id">eclipse_doc_id</a>, <a href="#doxygen-disable_index">disable_index</a>, <a href="#doxygen-generate_treeview">generate_treeview</a>, <a href="#doxygen-page_outline_panel">page_outline_panel</a>,
<a href="#doxygen-full_sidebar">full_sidebar</a>, <a href="#doxygen-enum_values_per_line">enum_values_per_line</a>, <a href="#doxygen-show_enum_values">show_enum_values</a>, <a href="#doxygen-treeview_width">treeview_width</a>, <a href="#doxygen-ext_links_in_window">ext_links_in_window</a>,
<a href="#doxygen-obfuscate_emails">obfuscate_emails</a>, <a href="#doxygen-html_formula_format">html_formula_format</a>, <a href="#doxygen-formula_fontsize">formula_fontsize</a>, <a href="#doxygen-formula_macrofile">formula_macrofile</a>, <a href="#doxygen-use_mathjax">use_mathjax</a>,
<a href="#doxygen-mathjax_version">mathjax_version</a>, <a href="#doxygen-mathjax_format">mathjax_format</a>, <a href="#doxygen-mathjax_relpath">mathjax_relpath</a>, <a href="#doxygen-mathjax_extensions">mathjax_extensions</a>, <a href="#doxygen-mathjax_codefile">mathjax_codefile</a>,
<a href="#doxygen-searchengine">searchengine</a>, <a href="#doxygen-server_based_search">server_based_search</a>, <a href="#doxygen-external_search">external_search</a>, <a href="#doxygen-searchengine_url">searchengine_url</a>, <a href="#doxygen-searchdata_file">searchdata_file</a>,
<a href="#doxygen-external_search_id">external_search_id</a>, <a href="#doxygen-extra_search_mappings">extra_search_mappings</a>, <a href="#doxygen-generate_latex">generate_latex</a>, <a href="#doxygen-latex_output">latex_output</a>, <a href="#doxygen-latex_cmd_name">latex_cmd_name</a>,
<a href="#doxygen-makeindex_cmd_name">makeindex_cmd_name</a>, <a href="#doxygen-latex_makeindex_cmd">latex_makeindex_cmd</a>, <a href="#doxygen-compact_latex">compact_latex</a>, <a href="#doxygen-paper_type">paper_type</a>, <a href="#doxygen-extra_packages">extra_packages</a>,
<a href="#doxygen-latex_header">latex_header</a>, <a href="#doxygen-latex_footer">latex_footer</a>, <a href="#doxygen-latex_extra_stylesheet">latex_extra_stylesheet</a>, <a href="#doxygen-latex_extra_files">latex_extra_files</a>, <a href="#doxygen-pdf_hyperlinks">pdf_hyperlinks</a>,
<a href="#doxygen-use_pdflatex">use_pdflatex</a>, <a href="#doxygen-latex_batchmode">latex_batchmode</a>, <a href="#doxygen-latex_hide_indices">latex_hide_indices</a>, <a href="#doxygen-latex_bib_style">latex_bib_style</a>, <a href="#doxygen-latex_emoji_directory">latex_emoji_directory</a>,
<a href="#doxygen-generate_rtf">generate_rtf</a>, <a href="#doxygen-rtf_output">rtf_output</a>, <a href="#doxygen-compact_rtf">compact_rtf</a>, <a href="#doxygen-rtf_hyperlinks">rtf_hyperlinks</a>, <a href="#doxygen-rtf_stylesheet_file">rtf_stylesheet_file</a>,
<a href="#doxygen-rtf_extensions_file">rtf_extensions_file</a>, <a href="#doxygen-rtf_extra_files">rtf_extra_files</a>, <a href="#doxygen-generate_man">generate_man</a>, <a href="#doxygen-man_output">man_output</a>, <a href="#doxygen-man_extension">man_extension</a>, <a href="#doxygen-man_subdir">man_subdir</a>,
<a href="#doxygen-man_links">man_links</a>, <a href="#doxygen-generate_xml">generate_xml</a>, <a href="#doxygen-xml_output">xml_output</a>, <a href="#doxygen-xml_programlisting">xml_programlisting</a>, <a href="#doxygen-xml_ns_memb_file_scope">xml_ns_memb_file_scope</a>,
<a href="#doxygen-generate_docbook">generate_docbook</a>, <a href="#doxygen-docbook_output">docbook_output</a>, <a href="#doxygen-generate_autogen_def">generate_autogen_def</a>, <a href="#doxygen-generate_sqlite3">generate_sqlite3</a>, <a href="#doxygen-sqlite3_output">sqlite3_output</a>,
<a href="#doxygen-sqlite3_recreate_db">sqlite3_recreate_db</a>, <a href="#doxygen-generate_perlmod">generate_perlmod</a>, <a href="#doxygen-perlmod_latex">perlmod_latex</a>, <a href="#doxygen-perlmod_pretty">perlmod_pretty</a>, <a href="#doxygen-perlmod_makevar_prefix">perlmod_makevar_prefix</a>,
<a href="#doxygen-enable_preprocessing">enable_preprocessing</a>, <a href="#doxygen-macro_expansion">macro_expansion</a>, <a href="#doxygen-expand_only_predef">expand_only_predef</a>, <a href="#doxygen-search_includes">search_includes</a>, <a href="#doxygen-include_path">include_path</a>,
<a href="#doxygen-include_file_patterns">include_file_patterns</a>, <a href="#doxygen-predefined">predefined</a>, <a href="#doxygen-expand_as_defined">expand_as_defined</a>, <a href="#doxygen-skip_function_macros">skip_function_macros</a>, <a href="#doxygen-tagfiles">tagfiles</a>,
<a href="#doxygen-generate_tagfile">generate_tagfile</a>, <a href="#doxygen-allexternals">allexternals</a>, <a href="#doxygen-external_groups">external_groups</a>, <a href="#doxygen-external_pages">external_pages</a>, <a href="#doxygen-hide_undoc_relations">hide_undoc_relations</a>,
<a href="#doxygen-have_dot">have_dot</a>, <a href="#doxygen-dot_num_threads">dot_num_threads</a>, <a href="#doxygen-dot_common_attr">dot_common_attr</a>, <a href="#doxygen-dot_edge_attr">dot_edge_attr</a>, <a href="#doxygen-dot_node_attr">dot_node_attr</a>, <a href="#doxygen-dot_fontpath">dot_fontpath</a>,
<a href="#doxygen-dot_transparent">dot_transparent</a>, <a href="#doxygen-class_graph">class_graph</a>, <a href="#doxygen-collaboration_graph">collaboration_graph</a>, <a href="#doxygen-group_graphs">group_graphs</a>, <a href="#doxygen-uml_look">uml_look</a>,
<a href="#doxygen-uml_limit_num_fields">uml_limit_num_fields</a>, <a href="#doxygen-uml_max_edge_labels">uml_max_edge_labels</a>, <a href="#doxygen-dot_uml_details">dot_uml_details</a>, <a href="#doxygen-dot_wrap_threshold">dot_wrap_threshold</a>,
<a href="#doxygen-template_relations">template_relations</a>, <a href="#doxygen-include_graph">include_graph</a>, <a href="#doxygen-included_by_graph">included_by_graph</a>, <a href="#doxygen-call_graph">call_graph</a>, <a href="#doxygen-caller_graph">caller_graph</a>,
<a href="#doxygen-graphical_hierarchy">graphical_hierarchy</a>, <a href="#doxygen-directory_graph">directory_graph</a>, <a href="#doxygen-dir_graph_max_depth">dir_graph_max_depth</a>, <a href="#doxygen-dot_image_format">dot_image_format</a>, <a href="#doxygen-interactive_svg">interactive_svg</a>,
<a href="#doxygen-dot_path">dot_path</a>, <a href="#doxygen-dotfile_dirs">dotfile_dirs</a>, <a href="#doxygen-dia_path">dia_path</a>, <a href="#doxygen-diafile_dirs">diafile_dirs</a>, <a href="#doxygen-plantuml_jar_path">plantuml_jar_path</a>, <a href="#doxygen-plantuml_cfg_file">plantuml_cfg_file</a>,
<a href="#doxygen-plantuml_include_path">plantuml_include_path</a>, <a href="#doxygen-plantumlfile_dirs">plantumlfile_dirs</a>, <a href="#doxygen-dot_graph_max_nodes">dot_graph_max_nodes</a>, <a href="#doxygen-max_dot_graph_depth">max_dot_graph_depth</a>,
<a href="#doxygen-dot_multi_targets">dot_multi_targets</a>, <a href="#doxygen-generate_legend">generate_legend</a>, <a href="#doxygen-dot_cleanup">dot_cleanup</a>, <a href="#doxygen-mscgen_tool">mscgen_tool</a>, <a href="#doxygen-mscfile_dirs">mscfile_dirs</a>, <a href="#doxygen-kwargs">**kwargs</a>)
</pre>
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
For the complete list of Doxygen configuration options, please refer to the [Doxygen documentation](https://www.doxygen.nl/manual/config.html).
> [!NOTE]
> If not istructed otherwise, the rule will use the Doxyfile from its default `doxygen` version.
> Any update could change some default values or add some flags which will be unrecognized by older `doxygen` versions, resulting in innocuous warnings.
> If you want to use a specific Doxyfile, just generate one with `doxygen -g` and specify it in the `doxyfile_template` attribute.
### Make variables
There are cases where you need access to information about the build environment, such as the output directory doxygen is writing to.
In such cases, you can use make variables in the parameters of the macro.
The `doxygen` rule will take care of expanding them to the appropriate values.
By default, the following make variables are available:
- `$(OUTDIR)`: The output directory where the documentation will be generated.
- All the predefined variables indicated in the [Bazel documentation](https://bazel.build/reference/be/make-variables#predefined_variables).
The former is particularly useful when `doxygen` needs to generate unusual files, such as [tag files](https://www.doxygen.nl/manual/config.html#cfg_generate_tagfile).
For example, you can use it to generate a tag file in the output directory:
```bzl
doxygen(
name = "doxygen",
srcs = ["README.md"] + glob(["*.h", "*.cpp"]),
outs = ["html", "tags"],
generate_tagfile = "$(OUTDIR)/tags/PolyVox.tag",
)
```
> [!NOTE]
> Make sure that generated files are put in some directory and that directory is included in the `outs` attribute.
You can add your own substitutions by adding a rule that returns a TemplateVariableInfo provider in the `toolchains` attribute of the `doxygen` rule.
See [this example](../examples/substitutions/) for more details.
### Differences between `srcs` and `deps`
The `srcs` and `deps` attributes work differently and are not interchangeable.
`srcs` is a list of files that will be passed to Doxygen for documentation generation.
You can use `glob` to include a collection of multiple files.
On the other hand, if you indicate a target (e.g., `:my_genrule`), it will include all the files produced by that target.
More precisely, the files in the DefaultInfo provider the target returns.
Hence, when the documentation is generated, all rules in the `srcs` attribute **will** be built, and the files they output will be passed to Doxygen.
On the other hand, `deps` is a list of targets whose sources will be included in the documentation generation.
It will automatically include all the files in the `srcs`, `hdrs`, and `data` attributes of the target, and the same applies to all of its transitive dependencies, recursively.
Since we are only interested in the source files, the `deps` targets **will not** be built when the documentation is generated.
```bzl
# My BUILD.bazel file
load("@doxygen//:doxygen.bzl", "doxygen")
load("@rules_cc//cc:defs.bzl", "cc_library")
cc_library(
name = "lib",
hdrs = ["add.h", "sub.h"],
srcs = ["add.cpp", "sub.cpp"],
)
cc_library(
name = "main",
srcs = ["main.cpp"],
deps = [":lib"],
)
genrule(
name = "section",
outs = ["Section.md"],
cmd = """
echo "# Section " > $@
echo "This is some amazing documentation with section!! " >> $@
echo "Incredible." >> $@
""",
)
doxygen(
name = "doxygen",
project_name = "dependencies",
# The output of the genrule will be included in the documentation.
# The genrule will be executed when the documentation is generated.
srcs = [
"README.md", # file
":section", # genrule
# WARNING: By adding this, the main target will be built
# and only the output files `libmain.so` and `libmain.a`
# will be passed to Doxygen, which is likely not what you want.
# ":main"
],
# The sources of the main target and its dependencies will be included.
# No compilation will be performed, so compile error won't be reported.
deps = [":main"], # cc_library
# Always starts at the root folder
use_mdfile_as_mainpage = "dependencies/README.md",
)
```
### Excluding Bazel specific folders
Including the root directory among the input directories, which happens when a target starting with `//:` is used as a source,
may cause Bazel specific folders, such as `external`, to be explored by Doxygen.
This can slow down the documentation generation or even cause an input buffer overflow.
To avoid this, it is recommended to use the `exclude_patterns` parameter and set it to something like `["*/external/*"]`, extending it with other patterns as needed.
### Example
```bzl
# 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")
```
```bzl
# BUILD.bazel file
load("@doxygen//:doxygen.bzl", "doxygen")
load("@rules_cc//cc:defs.bzl", "cc_library")
cc_library(
name = "lib",
srcs = ["add.cpp", "sub.cpp"],
hdrs = ["add.h", "sub.h"],
)
cc_library(
name = "main",
srcs = ["main.cpp"],
deps = [":lib"],
)
doxygen(
name = "doxygen",
srcs = glob([
"*.md",
]),
deps = [":main"]
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 |
| :------------- | :------------- | :------------- |
| <a id="doxygen-name"></a>name | Name for the target. | none |
| <a id="doxygen-srcs"></a>srcs | List of source files to generate documentation for. Can include any file that Doxygen can parse, as well as targets that return a DefaultInfo provider (usually genrules). Since we are only considering the outputs files and not the sources, these targets **will** be built if necessary. | `[]` |
| <a id="doxygen-deps"></a>deps | List of dependencies targets whose files present in the 'src', 'hdrs' and 'data' attributes will be collected to generate the documentation. Transitive dependencies are also taken into account. Since we are only considering the source files and not the outputs, these targets **will not** be built. | `[]` |
| <a id="doxygen-dot_executable"></a>dot_executable | Label of the doxygen executable. Make sure it is also added to the `srcs` of the macro | `None` |
| <a id="doxygen-configurations"></a>configurations | List of additional configuration parameters to pass to Doxygen. | `None` |
| <a id="doxygen-doxyfile_template"></a>doxyfile_template | The template file to use to generate the Doxyfile. The following substitutions are available:<br> - `# {{INPUT}}`: Subpackage directory in the sandbox.<br> - `# {{ADDITIONAL PARAMETERS}}`: Additional parameters given in the `configurations` attribute.<br> - `# {{OUTPUT DIRECTORY}}`: The directory provided in the `outs` attribute.<br> - `{{OUTDIR}}`: The output directory where the generated documentation will be placed. Can be used anywhere in the Doxyfile, usually to generate additional output files, like tag files. | `None` |
| <a id="doxygen-doxygen_extra_args"></a>doxygen_extra_args | Extra arguments to pass to the doxygen executable. | `[]` |
| <a id="doxygen-outs"></a>outs | 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"]). Note that the rule will also generate an output group for each folder in the outs list having the same name. | `["html"]` |
| <a id="doxygen-doxyfile_encoding"></a>doxyfile_encoding | This tag specifies the encoding used for all characters in the configuration file that follow. | `None` |
| <a id="doxygen-project_name"></a>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` |
| <a id="doxygen-project_number"></a>project_number | The `project_number` tag can be used to enter a project or revision number. | `None` |
| <a id="doxygen-project_brief"></a>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` |
| <a id="doxygen-project_logo"></a>project_logo | With the `project_logo` tag one can specify a logo or an icon that is included in the documentation. | `None` |
| <a id="doxygen-project_icon"></a>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` |
| <a id="doxygen-create_subdirs"></a>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` |
| <a id="doxygen-create_subdirs_level"></a>create_subdirs_level | Controls the number of sub-directories that will be created when `create_subdirs` tag is set to `True`. | `None` |
| <a id="doxygen-allow_unicode_names"></a>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` |
| <a id="doxygen-output_language"></a>output_language | The `output_language` tag is used to specify the language in which all documentation generated by Doxygen is written. | `None` |
| <a id="doxygen-brief_member_desc"></a>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` |
| <a id="doxygen-repeat_brief"></a>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` |
| <a id="doxygen-abbreviate_brief"></a>abbreviate_brief | This tag implements a quasi-intelligent brief description abbreviator that is used to form the text in various listings. | `None` |
| <a id="doxygen-always_detailed_sec"></a>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` |
| <a id="doxygen-inline_inherited_memb"></a>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` |
| <a id="doxygen-full_path_names"></a>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` |
| <a id="doxygen-strip_from_path"></a>strip_from_path | The `strip_from_path` tag can be used to strip a user-defined part of the path. | `None` |
| <a id="doxygen-strip_from_inc_path"></a>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` |
| <a id="doxygen-short_names"></a>short_names | If the `short_names` tag is set to `True`, Doxygen will generate much shorter (but less readable) file names. | `None` |
| <a id="doxygen-javadoc_autobrief"></a>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` |
| <a id="doxygen-javadoc_banner"></a>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` |
| <a id="doxygen-qt_autobrief"></a>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` |
| <a id="doxygen-multiline_cpp_is_brief"></a>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` |
| <a id="doxygen-python_docstring"></a>python_docstring | By default Python docstrings are displayed as preformatted text and Doxygen's special commands cannot be used. | `None` |
| <a id="doxygen-inherit_docs"></a>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` |
| <a id="doxygen-separate_member_pages"></a>separate_member_pages | If the `separate_member_pages` tag is set to `True` then Doxygen will produce a new page for each member. | `None` |
| <a id="doxygen-tab_size"></a>tab_size | The `tab_size` tag can be used to set the number of spaces in a tab. | `None` |
| <a id="doxygen-aliases"></a>aliases | This tag can be used to specify a number of aliases that act as commands in the documentation. | `None` |
| <a id="doxygen-optimize_output_for_c"></a>optimize_output_for_c | Set the `optimize_output_for_c` tag to `True` if your project consists of C sources only. | `None` |
| <a id="doxygen-optimize_output_java"></a>optimize_output_java | Set the `optimize_output_java` tag to `True` if your project consists of Java or Python sources only. | `None` |
| <a id="doxygen-optimize_for_fortran"></a>optimize_for_fortran | Set the `optimize_for_fortran` tag to `True` if your project consists of Fortran sources. | `None` |
| <a id="doxygen-optimize_output_vhdl"></a>optimize_output_vhdl | Set the `optimize_output_vhdl` tag to `True` if your project consists of VHDL sources. | `None` |
| <a id="doxygen-optimize_output_slice"></a>optimize_output_slice | Set the `optimize_output_slice` tag to `True` if your project consists of Slice sources only. | `None` |
| <a id="doxygen-extension_mapping"></a>extension_mapping | Doxygen selects the parser to use depending on the extension of the files it parses. | `None` |
| <a id="doxygen-markdown_support"></a>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` |
| <a id="doxygen-toc_include_headings"></a>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` |
| <a id="doxygen-markdown_id_style"></a>markdown_id_style | The `markdown_id_style` tag can be used to specify the algorithm used to generate identifiers for the Markdown headings. | `None` |
| <a id="doxygen-autolink_support"></a>autolink_support | When enabled Doxygen tries to link words that correspond to documented classes, or namespaces to their corresponding documentation. | `None` |
| <a id="doxygen-autolink_ignore_words"></a>autolink_ignore_words | This tag specifies a list of words that, when matching the start of a word in the documentation, will suppress auto links generation, if it is enabled via autolink_support. | `None` |
| <a id="doxygen-builtin_stl_support"></a>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` |
| <a id="doxygen-cpp_cli_support"></a>cpp_cli_support | If you use Microsoft's C++/CLI language, you should set this option to `True` to enable parsing support. | `None` |
| <a id="doxygen-sip_support"></a>sip_support | Set the `sip_support` tag to `True` if your project consists of sip (see: https://www.riverbankcomputing.com/software) sources only. | `None` |
| <a id="doxygen-idl_property_support"></a>idl_property_support | For Microsoft's IDL there are propget and propput attributes to indicate getter and setter methods for a property. | `None` |
| <a id="doxygen-distribute_group_doc"></a>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` |
| <a id="doxygen-group_nested_compounds"></a>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` |
| <a id="doxygen-subgrouping"></a>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` |
| <a id="doxygen-inline_grouped_classes"></a>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` |
| <a id="doxygen-inline_simple_structs"></a>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` |
| <a id="doxygen-typedef_hides_struct"></a>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` |
| <a id="doxygen-lookup_cache_size"></a>lookup_cache_size | The size of the symbol lookup cache can be set using `lookup_cache_size`. | `None` |
| <a id="doxygen-num_proc_threads"></a>num_proc_threads | The `num_proc_threads` specifies the number of threads Doxygen is allowed to use during processing. | `None` |
| <a id="doxygen-timestamp"></a>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` |
| <a id="doxygen-extract_all"></a>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` |
| <a id="doxygen-extract_private"></a>extract_private | If the `extract_private` tag is set to `True`, all private members of a class will be included in the documentation. | `None` |
| <a id="doxygen-extract_priv_virtual"></a>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` |
| <a id="doxygen-extract_package"></a>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` |
| <a id="doxygen-extract_static"></a>extract_static | If the `extract_static` tag is set to `True`, all static members of a file will be included in the documentation. | `None` |
| <a id="doxygen-extract_local_classes"></a>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` |
| <a id="doxygen-extract_local_methods"></a>extract_local_methods | This flag is only useful for Objective-C code. | `None` |
| <a id="doxygen-extract_anon_nspaces"></a>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` |
| <a id="doxygen-resolve_unnamed_params"></a>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` |
| <a id="doxygen-hide_undoc_members"></a>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` |
| <a id="doxygen-hide_undoc_classes"></a>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` |
| <a id="doxygen-hide_undoc_namespaces"></a>hide_undoc_namespaces | If the hide_undoc_namespaces tag is set to YES, Doxygen will hide all undocumented namespaces that are normally visible in the namespace hierarchy. | `None` |
| <a id="doxygen-hide_friend_compounds"></a>hide_friend_compounds | If the `hide_friend_compounds` tag is set to `True`, Doxygen will hide all friend declarations. | `None` |
| <a id="doxygen-hide_in_body_docs"></a>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` |
| <a id="doxygen-internal_docs"></a>internal_docs | The `internal_docs` tag determines if documentation that is typed after a \internal command is included. | `None` |
| <a id="doxygen-case_sense_names"></a>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` |
| <a id="doxygen-hide_scope_names"></a>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` |
| <a id="doxygen-hide_compound_reference"></a>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` |
| <a id="doxygen-show_headerfile"></a>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` |
| <a id="doxygen-show_include_files"></a>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` |
| <a id="doxygen-show_grouped_memb_inc"></a>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` |
| <a id="doxygen-force_local_includes"></a>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` |
| <a id="doxygen-inline_info"></a>inline_info | If the `inline_info` tag is set to `True` then a tag [inline] is inserted in the documentation for inline members. | `None` |
| <a id="doxygen-sort_member_docs"></a>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` |
| <a id="doxygen-sort_brief_docs"></a>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` |
| <a id="doxygen-sort_members_ctors_1st"></a>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` |
| <a id="doxygen-sort_group_names"></a>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` |
| <a id="doxygen-sort_by_scope_name"></a>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` |
| <a id="doxygen-strict_proto_matching"></a>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` |
| <a id="doxygen-generate_todolist"></a>generate_todolist | The `generate_todolist` tag can be used to enable (YES) or disable (NO) the todo list. | `None` |
| <a id="doxygen-generate_testlist"></a>generate_testlist | The `generate_testlist` tag can be used to enable (YES) or disable (NO) the test list. | `None` |
| <a id="doxygen-generate_buglist"></a>generate_buglist | The `generate_buglist` tag can be used to enable (YES) or disable (NO) the bug list. | `None` |
| <a id="doxygen-generate_deprecatedlist"></a>generate_deprecatedlist | The `generate_deprecatedlist` tag can be used to enable (YES) or disable (NO) the deprecated list. | `None` |
| <a id="doxygen-enabled_sections"></a>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` |
| <a id="doxygen-max_initializer_lines"></a>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` |
| <a id="doxygen-show_used_files"></a>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` |
| <a id="doxygen-show_files"></a>show_files | Set the `show_files` tag to `False` to disable the generation of the Files page. | `None` |
| <a id="doxygen-show_namespaces"></a>show_namespaces | Set the `show_namespaces` tag to `False` to disable the generation of the Namespaces page. | `None` |
| <a id="doxygen-file_version_filter"></a>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` |
| <a id="doxygen-layout_file"></a>layout_file | The `layout_file` tag can be used to specify a layout file which will be parsed by Doxygen. | `None` |
| <a id="doxygen-cite_bib_files"></a>cite_bib_files | The `cite_bib_files` tag can be used to specify one or more bib files containing the reference definitions. | `None` |
| <a id="doxygen-external_tool_path"></a>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` |
| <a id="doxygen-quiet"></a>quiet | The `quiet` tag can be used to turn on/off the messages that are generated to standard output by Doxygen. | `None` |
| <a id="doxygen-warnings"></a>warnings | The `warnings` tag can be used to turn on/off the warning messages that are generated to standard error (stderr) by Doxygen. | `None` |
| <a id="doxygen-warn_if_undocumented"></a>warn_if_undocumented | If the `warn_if_undocumented` tag is set to `True` then Doxygen will generate warnings for undocumented members. | `None` |
| <a id="doxygen-warn_if_doc_error"></a>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` |
| <a id="doxygen-warn_if_incomplete_doc"></a>warn_if_incomplete_doc | If `warn_if_incomplete_doc` is set to `True`, Doxygen will warn about incomplete function parameter documentation. | `None` |
| <a id="doxygen-warn_no_paramdoc"></a>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` |
| <a id="doxygen-warn_if_undoc_enum_val"></a>warn_if_undoc_enum_val | If `warn_if_undoc_enum_val` option is set to `True`, Doxygen will warn about undocumented enumeration values. | `None` |
| <a id="doxygen-warn_layout_file"></a>warn_layout_file | If warn_layout_file option is set to `True`, Doxygen will warn about issues found while parsing the user defined layout file, such as missing or wrong elements | `None` |
| <a id="doxygen-warn_as_error"></a>warn_as_error | If the `warn_as_error` tag is set to `True` then Doxygen will immediately stop when a warning is encountered. | `None` |
| <a id="doxygen-warn_format"></a>warn_format | The `warn_format` tag determines the format of the warning messages that Doxygen can produce. | `None` |
| <a id="doxygen-warn_line_format"></a>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` |
| <a id="doxygen-warn_logfile"></a>warn_logfile | The `warn_logfile` tag can be used to specify a file to which warning and error messages should be written. | `None` |
| <a id="doxygen-input"></a>input | The `input` tag is used to specify the files and/or directories that contain documented source files. | `None` |
| <a id="doxygen-input_encoding"></a>input_encoding | This tag can be used to specify the character encoding of the source files that Doxygen parses. | `None` |
| <a id="doxygen-input_file_encoding"></a>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` |
| <a id="doxygen-file_patterns"></a>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` |
| <a id="doxygen-recursive"></a>recursive | The `recursive` tag can be used to specify whether or not subdirectories should be searched for input files as well. | `None` |
| <a id="doxygen-exclude"></a>exclude | The `exclude` tag can be used to specify files and/or directories that should be excluded from the `input` source files. | `None` |
| <a id="doxygen-exclude_symlinks"></a>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` |
| <a id="doxygen-exclude_patterns"></a>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` |
| <a id="doxygen-exclude_symbols"></a>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` |
| <a id="doxygen-example_path"></a>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` |
| <a id="doxygen-example_patterns"></a>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` |
| <a id="doxygen-example_recursive"></a>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` |
| <a id="doxygen-image_path"></a>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` |
| <a id="doxygen-input_filter"></a>input_filter | The `input_filter` tag can be used to specify a program that Doxygen should invoke to filter for each input file. | `None` |
| <a id="doxygen-filter_patterns"></a>filter_patterns | The `filter_patterns` tag can be used to specify filters on a per file pattern basis. | `None` |
| <a id="doxygen-filter_source_files"></a>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` |
| <a id="doxygen-filter_source_patterns"></a>filter_source_patterns | The `filter_source_patterns` tag can be used to specify source filters per file pattern. | `None` |
| <a id="doxygen-use_mdfile_as_mainpage"></a>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` |
| <a id="doxygen-implicit_dir_docs"></a>implicit_dir_docs | If the implicit_dir_docs tag is set to `True`, any README.md file found in subdirectories of the project's root, is used as the documentation for that subdirectory, except when the README.md starts with a \dir, \page or \mainpage command. | `None` |
| <a id="doxygen-fortran_comment_after"></a>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` |
| <a id="doxygen-source_browser"></a>source_browser | If the `source_browser` tag is set to `True` then a list of source files will be generated. | `None` |
| <a id="doxygen-inline_sources"></a>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` |
| <a id="doxygen-strip_code_comments"></a>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` |
| <a id="doxygen-referenced_by_relation"></a>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` |
| <a id="doxygen-references_relation"></a>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` |
| <a id="doxygen-references_link_source"></a>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` |
| <a id="doxygen-source_tooltips"></a>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` |
| <a id="doxygen-use_htags"></a>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` |
| <a id="doxygen-verbatim_headers"></a>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` |
| <a id="doxygen-clang_assisted_parsing"></a>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` |
| <a id="doxygen-clang_add_inc_paths"></a>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` |
| <a id="doxygen-clang_options"></a>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` |
| <a id="doxygen-clang_database_path"></a>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` |
| <a id="doxygen-alphabetical_index"></a>alphabetical_index | If the `alphabetical_index` tag is set to `True`, an alphabetical index of all compounds will be generated. | `None` |
| <a id="doxygen-ignore_prefix"></a>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` |
| <a id="doxygen-generate_html"></a>generate_html | If the `generate_html` tag is set to `True`, Doxygen will generate HTML output The default value is: `True`. | `None` |
| <a id="doxygen-html_output"></a>html_output | The `html_output` tag is used to specify where the HTML docs will be put. | `None` |
| <a id="doxygen-html_file_extension"></a>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` |
| <a id="doxygen-html_header"></a>html_header | The `html_header` tag can be used to specify a user-defined HTML header file for each generated HTML page. | `None` |
| <a id="doxygen-html_footer"></a>html_footer | The `html_footer` tag can be used to specify a user-defined HTML footer for each generated HTML page. | `None` |
| <a id="doxygen-html_stylesheet"></a>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` |
| <a id="doxygen-html_extra_stylesheet"></a>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` |
| <a id="doxygen-html_extra_files"></a>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` |
| <a id="doxygen-html_colorstyle"></a>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` |
| <a id="doxygen-html_colorstyle_hue"></a>html_colorstyle_hue | The `html_colorstyle_hue` tag controls the color of the HTML output. | `None` |
| <a id="doxygen-html_colorstyle_sat"></a>html_colorstyle_sat | The `html_colorstyle_sat` tag controls the purity (or saturation) of the colors in the HTML output. | `None` |
| <a id="doxygen-html_colorstyle_gamma"></a>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` |
| <a id="doxygen-html_dynamic_menus"></a>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` |
| <a id="doxygen-html_dynamic_sections"></a>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` |
| <a id="doxygen-html_code_folding"></a>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` |
| <a id="doxygen-html_copy_clipboard"></a>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` |
| <a id="doxygen-html_project_cookie"></a>html_project_cookie | Doxygen stores a couple of settings persistently in the browser (via e.g. cookies). | `None` |
| <a id="doxygen-html_index_num_entries"></a>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` |
| <a id="doxygen-generate_docset"></a>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` |
| <a id="doxygen-docset_feedname"></a>docset_feedname | This tag determines the name of the docset feed. | `None` |
| <a id="doxygen-docset_feedurl"></a>docset_feedurl | This tag determines the URL of the docset feed. | `None` |
| <a id="doxygen-docset_bundle_id"></a>docset_bundle_id | This tag specifies a string that should uniquely identify the documentation set bundle. | `None` |
| <a id="doxygen-docset_publisher_id"></a>docset_publisher_id | The `docset_publisher_id` tag specifies a string that should uniquely identify the documentation publisher. | `None` |
| <a id="doxygen-docset_publisher_name"></a>docset_publisher_name | The `docset_publisher_name` tag identifies the documentation publisher. | `None` |
| <a id="doxygen-generate_htmlhelp"></a>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` |
| <a id="doxygen-chm_file"></a>chm_file | The `chm_file` tag can be used to specify the file name of the resulting .chm file. | `None` |
| <a id="doxygen-hhc_location"></a>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` |
| <a id="doxygen-generate_chi"></a>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` |
| <a id="doxygen-chm_index_encoding"></a>chm_index_encoding | The `chm_index_encoding` is used to encode HtmlHelp index (hhk), content (hhc) and project file content. | `None` |
| <a id="doxygen-binary_toc"></a>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` |
| <a id="doxygen-toc_expand"></a>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` |
| <a id="doxygen-sitemap_url"></a>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` |
| <a id="doxygen-generate_qhp"></a>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` |
| <a id="doxygen-qch_file"></a>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` |
| <a id="doxygen-qhp_namespace"></a>qhp_namespace | The `qhp_namespace` tag specifies the namespace to use when generating Qt Help Project output. | `None` |
| <a id="doxygen-qhp_virtual_folder"></a>qhp_virtual_folder | The `qhp_virtual_folder` tag specifies the namespace to use when generating Qt Help Project output. | `None` |
| <a id="doxygen-qhp_cust_filter_name"></a>qhp_cust_filter_name | If the `qhp_cust_filter_name` tag is set, it specifies the name of a custom filter to add. | `None` |
| <a id="doxygen-qhp_cust_filter_attrs"></a>qhp_cust_filter_attrs | The `qhp_cust_filter_attrs` tag specifies the list of the attributes of the custom filter to add. | `None` |
| <a id="doxygen-qhp_sect_filter_attrs"></a>qhp_sect_filter_attrs | The `qhp_sect_filter_attrs` tag specifies the list of the attributes this project's filter section matches. | `None` |
| <a id="doxygen-qhg_location"></a>qhg_location | The `qhg_location` tag can be used to specify the location (absolute path including file name) of Qt's qhelpgenerator. | `None` |
| <a id="doxygen-generate_eclipsehelp"></a>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` |
| <a id="doxygen-eclipse_doc_id"></a>eclipse_doc_id | A unique identifier for the Eclipse help plugin. | `None` |
| <a id="doxygen-disable_index"></a>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` |
| <a id="doxygen-generate_treeview"></a>generate_treeview | The `generate_treeview` tag is used to specify whether a tree-like index structure should be generated to display hierarchical information. | `None` |
| <a id="doxygen-page_outline_panel"></a>page_outline_panel | When `generate_treeview` is set to YES, the `page_outline_panel` option determines if an additional navigation panel is shown at the right hand side of the screen, displaying an outline of the contents of the main page, similar to e.g. https://developer.android.com/reference. | `None` |
| <a id="doxygen-full_sidebar"></a>full_sidebar | When `generate_treeview` is set to `True`, 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` |
| <a id="doxygen-enum_values_per_line"></a>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` |
| <a id="doxygen-show_enum_values"></a>show_enum_values | When the `show_enum_values` tag is set doxygen will show the specified enumeration values besides the enumeration mnemonics. | `None` |
| <a id="doxygen-treeview_width"></a>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` |
| <a id="doxygen-ext_links_in_window"></a>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` |
| <a id="doxygen-obfuscate_emails"></a>obfuscate_emails | If the `obfuscate_emails` tag is set to `True`, Doxygen will obfuscate email addresses. | `None` |
| <a id="doxygen-html_formula_format"></a>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` |
| <a id="doxygen-formula_fontsize"></a>formula_fontsize | Use this tag to change the font size of LaTeX formulas included as images in the HTML documentation. | `None` |
| <a id="doxygen-formula_macrofile"></a>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` |
| <a id="doxygen-use_mathjax"></a>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` |
| <a id="doxygen-mathjax_version"></a>mathjax_version | With `mathjax_version` it is possible to specify the MathJax version to be used. | `None` |
| <a id="doxygen-mathjax_format"></a>mathjax_format | When MathJax is enabled you can set the default output format to be used for the MathJax output. | `None` |
| <a id="doxygen-mathjax_relpath"></a>mathjax_relpath | When MathJax is enabled you need to specify the location relative to the HTML output directory using the `mathjax_relpath` option. | `None` |
| <a id="doxygen-mathjax_extensions"></a>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` |
| <a id="doxygen-mathjax_codefile"></a>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` |
| <a id="doxygen-searchengine"></a>searchengine | When the `searchengine` tag is enabled Doxygen will generate a search box for the HTML output. | `None` |
| <a id="doxygen-server_based_search"></a>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` |
| <a id="doxygen-external_search"></a>external_search | When `external_search` tag is enabled Doxygen will no longer generate the PHP script for searching. | `None` |
| <a id="doxygen-searchengine_url"></a>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` |
| <a id="doxygen-searchdata_file"></a>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` |
| <a id="doxygen-external_search_id"></a>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` |
| <a id="doxygen-extra_search_mappings"></a>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` |
| <a id="doxygen-generate_latex"></a>generate_latex | If the `generate_latex` tag is set to `True`, Doxygen will generate LaTeX output. | `None` |
| <a id="doxygen-latex_output"></a>latex_output | The `latex_output` tag is used to specify where the LaTeX docs will be put. | `None` |
| <a id="doxygen-latex_cmd_name"></a>latex_cmd_name | The `latex_cmd_name` tag can be used to specify the LaTeX command name to be invoked. | `None` |
| <a id="doxygen-makeindex_cmd_name"></a>makeindex_cmd_name | The `makeindex_cmd_name` tag can be used to specify the command name to generate index for LaTeX. | `None` |
| <a id="doxygen-latex_makeindex_cmd"></a>latex_makeindex_cmd | The `latex_makeindex_cmd` tag can be used to specify the command name to generate index for LaTeX. | `None` |
| <a id="doxygen-compact_latex"></a>compact_latex | If the `compact_latex` tag is set to `True`, Doxygen generates more compact LaTeX documents. | `None` |
| <a id="doxygen-paper_type"></a>paper_type | The `paper_type` tag can be used to set the paper type that is used by the printer. | `None` |
| <a id="doxygen-extra_packages"></a>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` |
| <a id="doxygen-latex_header"></a>latex_header | The `latex_header` tag can be used to specify a user-defined LaTeX header for the generated LaTeX document. | `None` |
| <a id="doxygen-latex_footer"></a>latex_footer | The `latex_footer` tag can be used to specify a user-defined LaTeX footer for the generated LaTeX document. | `None` |
| <a id="doxygen-latex_extra_stylesheet"></a>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` |
| <a id="doxygen-latex_extra_files"></a>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` |
| <a id="doxygen-pdf_hyperlinks"></a>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` |
| <a id="doxygen-use_pdflatex"></a>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` |
| <a id="doxygen-latex_batchmode"></a>latex_batchmode | The `latex_batchmode` tag signals the behavior of LaTeX in case of an error. | `None` |
| <a id="doxygen-latex_hide_indices"></a>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` |
| <a id="doxygen-latex_bib_style"></a>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` |
| <a id="doxygen-latex_emoji_directory"></a>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` |
| <a id="doxygen-generate_rtf"></a>generate_rtf | If the `generate_rtf` tag is set to `True`, Doxygen will generate RTF output. | `None` |
| <a id="doxygen-rtf_output"></a>rtf_output | The `rtf_output` tag is used to specify where the RTF docs will be put. | `None` |
| <a id="doxygen-compact_rtf"></a>compact_rtf | If the `compact_rtf` tag is set to `True`, Doxygen generates more compact RTF documents. | `None` |
| <a id="doxygen-rtf_hyperlinks"></a>rtf_hyperlinks | If the `rtf_hyperlinks` tag is set to `True`, the RTF that is generated will contain hyperlink fields. | `None` |
| <a id="doxygen-rtf_stylesheet_file"></a>rtf_stylesheet_file | Load stylesheet definitions from file. | `None` |
| <a id="doxygen-rtf_extensions_file"></a>rtf_extensions_file | Set optional variables used in the generation of an RTF document. | `None` |
| <a id="doxygen-rtf_extra_files"></a>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` |
| <a id="doxygen-generate_man"></a>generate_man | If the `generate_man` tag is set to `True`, Doxygen will generate man pages for classes and files. | `None` |
| <a id="doxygen-man_output"></a>man_output | The `man_output` tag is used to specify where the man pages will be put. | `None` |
| <a id="doxygen-man_extension"></a>man_extension | The `man_extension` tag determines the extension that is added to the generated man pages. | `None` |
| <a id="doxygen-man_subdir"></a>man_subdir | The `man_subdir` tag determines the name of the directory created within `man_output` in which the man pages are placed. | `None` |
| <a id="doxygen-man_links"></a>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` |
| <a id="doxygen-generate_xml"></a>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` |
| <a id="doxygen-xml_output"></a>xml_output | The `xml_output` tag is used to specify where the XML pages will be put. | `None` |
| <a id="doxygen-xml_programlisting"></a>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` |
| <a id="doxygen-xml_ns_memb_file_scope"></a>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` |
| <a id="doxygen-generate_docbook"></a>generate_docbook | If the `generate_docbook` tag is set to `True`, Doxygen will generate Docbook files that can be used to generate PDF. | `None` |
| <a id="doxygen-docbook_output"></a>docbook_output | The `docbook_output` tag is used to specify where the Docbook pages will be put. | `None` |
| <a id="doxygen-generate_autogen_def"></a>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` |
| <a id="doxygen-generate_sqlite3"></a>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` |
| <a id="doxygen-sqlite3_output"></a>sqlite3_output | The `sqlite3_output` tag is used to specify where the Sqlite3 database will be put. | `None` |
| <a id="doxygen-sqlite3_recreate_db"></a>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` |
| <a id="doxygen-generate_perlmod"></a>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` |
| <a id="doxygen-perlmod_latex"></a>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` |
| <a id="doxygen-perlmod_pretty"></a>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` |
| <a id="doxygen-perlmod_makevar_prefix"></a>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` |
| <a id="doxygen-enable_preprocessing"></a>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` |
| <a id="doxygen-macro_expansion"></a>macro_expansion | If the `macro_expansion` tag is set to `True`, Doxygen will expand all macro names in the source code. | `None` |
| <a id="doxygen-expand_only_predef"></a>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` |
| <a id="doxygen-search_includes"></a>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` |
| <a id="doxygen-include_path"></a>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` |
| <a id="doxygen-include_file_patterns"></a>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` |
| <a id="doxygen-predefined"></a>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` |
| <a id="doxygen-expand_as_defined"></a>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` |
| <a id="doxygen-skip_function_macros"></a>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` |
| <a id="doxygen-tagfiles"></a>tagfiles | The `tagfiles` tag can be used to specify one or more tag files. | `None` |
| <a id="doxygen-generate_tagfile"></a>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` |
| <a id="doxygen-allexternals"></a>allexternals | If the `allexternals` tag is set to `True`, all external classes and namespaces will be listed in the class and namespace index. | `None` |
| <a id="doxygen-external_groups"></a>external_groups | If the `external_groups` tag is set to `True`, all external groups will be listed in the topic index. | `None` |
| <a id="doxygen-external_pages"></a>external_pages | If the `external_pages` tag is set to `True`, all external pages will be listed in the related pages index. | `None` |
| <a id="doxygen-hide_undoc_relations"></a>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` |
| <a id="doxygen-have_dot"></a>have_dot | If you set the `have_dot` tag to `True` then Doxygen will assume the dot tool is available from the path. | `None` |
| <a id="doxygen-dot_num_threads"></a>dot_num_threads | The `dot_num_threads` specifies the number of dot invocations Doxygen is allowed to run in parallel. | `None` |
| <a id="doxygen-dot_common_attr"></a>dot_common_attr | `dot_common_attr` is common attributes for nodes, edges and labels of subgraphs. | `None` |
| <a id="doxygen-dot_edge_attr"></a>dot_edge_attr | `dot_edge_attr` is concatenated with `dot_common_attr`. | `None` |
| <a id="doxygen-dot_node_attr"></a>dot_node_attr | `dot_node_attr` is concatenated with `dot_common_attr`. | `None` |
| <a id="doxygen-dot_fontpath"></a>dot_fontpath | You can set the path where dot can find font specified with fontname in `dot_common_attr` and others dot attributes. | `None` |
| <a id="doxygen-dot_transparent"></a>dot_transparent | If the `dot_transparent` tag is set to `True`, then the images generated by dot will have a transparent background. | `None` |
| <a id="doxygen-class_graph"></a>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` |
| <a id="doxygen-collaboration_graph"></a>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` |
| <a id="doxygen-group_graphs"></a>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` |
| <a id="doxygen-uml_look"></a>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` |
| <a id="doxygen-uml_limit_num_fields"></a>uml_limit_num_fields | If the `uml_look` tag is enabled, the fields and methods are shown inside the class node. | `None` |
| <a id="doxygen-uml_max_edge_labels"></a>uml_max_edge_labels | If the `uml_look` tag is enabled, field labels are shown along the edge between two class nodes. | `None` |
| <a id="doxygen-dot_uml_details"></a>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` |
| <a id="doxygen-dot_wrap_threshold"></a>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` |
| <a id="doxygen-template_relations"></a>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` |
| <a id="doxygen-include_graph"></a>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` |
| <a id="doxygen-included_by_graph"></a>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` |
| <a id="doxygen-call_graph"></a>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` |
| <a id="doxygen-caller_graph"></a>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` |
| <a id="doxygen-graphical_hierarchy"></a>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` |
| <a id="doxygen-directory_graph"></a>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` |
| <a id="doxygen-dir_graph_max_depth"></a>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` |
| <a id="doxygen-dot_image_format"></a>dot_image_format | The `dot_image_format` tag can be used to set the image format of the images generated by dot. | `None` |
| <a id="doxygen-interactive_svg"></a>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` |
| <a id="doxygen-dot_path"></a>dot_path | The `dot_path` tag can be used to specify the path where the dot tool can be found. | `None` |
| <a id="doxygen-dotfile_dirs"></a>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` |
| <a id="doxygen-dia_path"></a>dia_path | You can include diagrams made with dia in Doxygen documentation. | `None` |
| <a id="doxygen-diafile_dirs"></a>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` |
| <a id="doxygen-plantuml_jar_path"></a>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` |
| <a id="doxygen-plantuml_cfg_file"></a>plantuml_cfg_file | When using PlantUML, the `plantuml_cfg_file` tag can be used to specify a configuration file for PlantUML. | `None` |
| <a id="doxygen-plantuml_include_path"></a>plantuml_include_path | When using PlantUML, the specified paths are searched for files specified by the !include statement in a PlantUML block. | `None` |
| <a id="doxygen-plantumlfile_dirs"></a>plantumlfile_dirs | The plantumlfile_dirs tag can be used to specify one or more directories that contain PlantUml files that are included in the documentation (see the \plantumlfile command). | `None` |
| <a id="doxygen-dot_graph_max_nodes"></a>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` |
| <a id="doxygen-max_dot_graph_depth"></a>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` |
| <a id="doxygen-dot_multi_targets"></a>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` |
| <a id="doxygen-generate_legend"></a>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` |
| <a id="doxygen-dot_cleanup"></a>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` |
| <a id="doxygen-mscgen_tool"></a>mscgen_tool | You can define message sequence charts within Doxygen comments using the \msc command. | `None` |
| <a id="doxygen-mscfile_dirs"></a>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` |
| <a id="doxygen-kwargs"></a>kwargs | Additional arguments to pass to the rule (e.g. `visibility = ["//visibility:public"], tags = ["manual"]`) | none |
<a id="collect_files_aspect"></a>
## collect_files_aspect
<pre>
load("@rules_doxygen//doxygen:doxygen.bzl", "collect_files_aspect")
collect_files_aspect()
</pre>
When applied to a target, this aspect collects the source files from the target and its dependencies, and makes them available in the TransitiveSourcesInfo provider.
**ASPECT ATTRIBUTES**
| Name | Type |
| :------------- | :------------- |
| deps| String |