blob: 8a3fcadbea7351b7185f3365e4ec21735686761e [file]
################################################################################
# Doxygen configuration: https://www.doxygen.nl/manual/config.html
# Version of Doxygen that Pigweed uses: v1.9.6
# Maintenance guidelines for this file:
# * Keep the file sorted alphabetically.
# * If the default value for a config option is fine, then omit that option
# from this file entirely.
# * Above each overridden option, provide a link to that option's documentation.
# * Leave a comment explaining the rationale for why Pigweed overrides the
# default option.
################################################################################
# Pigweed injects the API reference information that Doxygen generates into our
# Sphinx site via Breathe. These aliases enable us to do some rich formatting
# within the API references.
#
# Note: Use `leading-asterisk` even though `leading-slashes` is more
# semantically accurate (all Doxygen comments in Pigweed codebase
# start with `///`). See the discussion about undocumented Doxygen
# behavior at the bottom of this section:
# https://breathe.readthedocs.io/en/latest/markups.html#aliases
#
# https://www.doxygen.nl/manual/config.html#cfg_aliases
ALIASES = "rst=^^\verbatim embed:rst:leading-asterisk^^" \
"endrst=\endverbatim" \
"rstref{1}=\verbatim embed:rst:inline :ref:`\1` \endverbatim" \
"crossref{3}=\verbatim embed:rst:inline :\1:\2:`\3` \endverbatim" \
"c_macro{1}=@crossref{c,macro,\1}" \
"cpp_class{1}=@crossref{cpp,class,\1}" \
"cpp_func{1}=@crossref{cpp,func,\1}" \
"cpp_type{1}=@crossref{cpp,type,\1}" \
"cpp_enum{1}=@crossref{cpp,type,\1}" \
"pw_status{1}=@crossref{c,enumerator,\1}" \
"module{1}=\addtogroup \1^^@{" \
"endmodule=@}" \
"submodule{2}=\addtogroup \1_\2^^@{" \
"endsubmodule=@}" \
"OK=\ref pw::OkStatus() \"OK\"" \
"CANCELLED=\ref pw::Status::Cancelled() \"CANCELLED\"" \
"UNKNOWN=\ref pw::Status::Unknown() \"UNKNOWN\"" \
"INVALID_ARGUMENT=\ref pw::Status::InvalidArgument() \"INVALID_ARGUMENT\"" \
"DEADLINE_EXCEEDED=\ref pw::Status::DeadlineExceeded() \"DEADLINE_EXCEEDED\"" \
"NOT_FOUND=\ref pw::Status::NotFound() \"NOT_FOUND\"" \
"ALREADY_EXISTS=\ref pw::Status::AlreadyExists() \"ALREADY_EXISTS\"" \
"PERMISSION_DENIED=\ref pw::Status::PermissionDenied() \"PERMISSION_DENIED\"" \
"RESOURCE_EXHAUSTED=\ref pw::Status::ResourceExhausted() \"RESOURCE_EXHAUSTED\"" \
"FAILED_PRECONDITION=\ref pw::Status::FailedPrecondition() \"FAILED_PRECONDITION\"" \
"ABORTED=\ref pw::Status::Aborted() \"ABORTED\"" \
"OUT_OF_RANGE=\ref pw::Status::OutOfRange() \"OUT_OF_RANGE\"" \
"UNIMPLEMENTED=\ref pw::Status::Unimplemented() \"UNIMPLEMENTED\"" \
"INTERNAL=\ref pw::Status::Internal() \"INTERNAL\"" \
"UNAVAILABLE=\ref pw::Status::Unavailable() \"UNAVAILABLE\"" \
"DATA_LOSS=\ref pw::Status::DataLoss() \"DATA_LOSS\"" \
"UNAUTHENTICATED=\ref pw::Status::Unauthenticated() \"UNAUTHENTICATED\"" \
"Result{1}=A \ref pw::Result \"Result\" containing \1 on success or one of the following error codes on failure:" \
"maindocs=@details @htmlonly <!-- maindocs --> @endhtmlonly Main docs:" \
"endmaindocs=@htmlonly <!-- endmaindocs --> @endhtmlonly" \
# https://www.doxygen.nl/manual/config.html#cfg_case_sense_names
CASE_SENSE_NAMES = NO
# This option, along with FULL_SIDEBAR and GENERATE_TREEVIEW,
# controls the overall layout of the Doxygen HTML site.
# https://www.doxygen.nl/manual/customize.html#minor_tweaks_treeview
#
# https://www.doxygen.nl/manual/config.html#cfg_disable_index
DISABLE_INDEX = NO
# https://www.doxygen.nl/manual/config.html#cfg_enable_preprocessing
ENABLE_PREPROCESSING = YES
# https://www.doxygen.nl/manual/config.html#cfg_extract_package
EXTRACT_PACKAGE = YES
# https://www.doxygen.nl/manual/config.html#cfg_extract_priv_virtual
EXTRACT_PRIV_VIRTUAL = YES
# https://www.doxygen.nl/manual/config.html#cfg_extract_static
EXTRACT_STATIC = YES
# This option, along with DISABLE_INDEX and GENERATE_TREEVIEW,
# controls the overall layout of the Doxygen HTML site.
# https://www.doxygen.nl/manual/customize.html#minor_tweaks_treeview
#
# https://www.doxygen.nl/manual/config.html#cfg_full_sidebar
FULL_SIDEBAR = NO
# https://www.doxygen.nl/manual/config.html#cfg_generate_buglist
GENERATE_BUGLIST = NO
# https://www.doxygen.nl/manual/config.html#cfg_generate_latex
GENERATE_LATEX = NO
# rules_doxygen replaces `OUTDIR` with the correct output directory path:
# https://github.com/TendTo/rules_doxygen/blob/main/docs/doxygen_doc.md
#
# https://www.doxygen.nl/manual/config.html#cfg_generate_tagfile
GENERATE_TAGFILE = {{OUTDIR}}/html/index.tag
# https://www.doxygen.nl/manual/config.html#cfg_generate_testlist
GENERATE_TESTLIST = NO
# https://www.doxygen.nl/manual/config.html#cfg_generate_todolist
GENERATE_TODOLIST = NO
# This option, along with DISABLE_INDEX and FULL_SIDEBAR,
# controls the overall layout of the Doxygen HTML site.
# https://www.doxygen.nl/manual/customize.html#minor_tweaks_treeview
#
# https://www.doxygen.nl/manual/config.html#cfg_generate_treeview
GENERATE_TREEVIEW = YES
# Breathe uses Doxygen's XML output to inject the API reference
# information into our Sphinx site.
#
# https://www.doxygen.nl/manual/config.html#cfg_generate_xml
GENERATE_XML = YES
# https://www.doxygen.nl/manual/config.html#cfg_html_colorstyle
HTML_COLORSTYLE = TOGGLE
# https://www.doxygen.nl/manual/config.html#cfg_html_dynamic_menus
HTML_DYNAMIC_MENUS = NO
# https://www.doxygen.nl/manual/config.html#cfg_html_footer
HTML_FOOTER = docs/doxygen/footer.html
# https://www.doxygen.nl/manual/config.html#cfg_html_header
HTML_HEADER = docs/doxygen/header.html
# https://www.doxygen.nl/manual/config.html#cfg_html_stylesheet
HTML_STYLESHEET = docs/doxygen/styles.css
# https://www.doxygen.nl/manual/config.html#cfg_include_path
#
# Doxygen requires this include path to resolve the absolute-style include
# of `pw_string/internal/string_common_functions.inc` in `string.h`.
# Because this is a `.inc` file rather than a standard header, Doxygen
# cannot resolve it by basename matching, and the physical path contains
# `public` (`pw_string/public/pw_string/internal/...`) which does not match
# the include path without this configuration.
INCLUDE_PATH = pw_string/public
# https://www.doxygen.nl/manual/config.html#cfg_layout_file
LAYOUT_FILE = docs/doxygen/layout.xml
# https://www.doxygen.nl/manual/config.html#cfg_macro_expansion
MACRO_EXPANSION = YES
# Let Doxygen figure out how many cores it can use.
#
# https://www.doxygen.nl/manual/config.html#cfg_num_proc_threads
NUM_PROC_THREADS = 0
# rules_doxygen replaces `OUTDIR` with the correct output directory path:
# https://github.com/TendTo/rules_doxygen/blob/main/docs/doxygen_doc.md
#
# https://www.doxygen.nl/manual/config.html#cfg_output_directory
OUTPUT_DIRECTORY = {{OUTDIR}}
# TODO: https://pwbug.dev/402489948 - Replace PW_ALLOCATOR_HAS_ATOMICS
# when `pw_atomic` provides portable atomics.
#
# https://www.doxygen.nl/manual/config.html#cfg_predefined
PREDEFINED = __cplusplus=202002L \
__cpp_concepts=202002L \
PW_LOCKABLE= \
PW_PRINTF_FORMAT(...)= \
PW_CONSTEXPR_CPP20= \
PW_EXCLUSIVE_LOCK_FUNCTION(...)= \
PW_EXCLUSIVE_TRYLOCK_FUNCTION(...)= \
PW_UNLOCK_FUNCTION(...)= \
PW_NO_LOCK_SAFETY_ANALYSIS= \
PW_CXX_STANDARD_IS_SUPPORTED(...)=1 \
PW_EXTERN_C_START= \
PW_LOCKS_EXCLUDED(...)= \
PW_EXCLUSIVE_LOCKS_REQUIRED(...)= \
PW_GUARDED_BY(...)= \
PW_LOCK_RETURNED(...)= \
PW_MODIFY_DIAGNOSTIC_CLANG(...)= \
PW_NO_SANITIZE(...)= \
PW_NODISCARD_STR(...)= \
PW_ALLOCATOR_HAS_ATOMICS=1 \
configSUPPORT_STATIC_ALLOCATION=1 \
configUSE_TIMERS=1 \
configCHECK_FOR_STACK_OVERFLOW=1 \
PW_EXCLUDE_FROM_DOXYGEN=1 \
PW_MULTIBUF_DEPRECATED=
# https://www.doxygen.nl/manual/config.html#cfg_project_brief
PROJECT_BRIEF = "C/C++ API Reference"
# We hardcode the logo in header.html. We don't attempt to set it via
# PROJECT_LOGO because Doxygen expects the PROJECT_LOGO file to be local
# whereas we fetch our logo over CDN.
# https://www.doxygen.nl/manual/config.html#cfg_project_logo
# PROJECT_LOGO =
# https://www.doxygen.nl/manual/config.html#cfg_project_name
PROJECT_NAME = "Pigweed"
# https://www.doxygen.nl/manual/config.html#cfg_quiet
QUIET = YES
# Bazel and rules_doxygen put the sources into subdirectories so it's
# important to let Doxygen search for sources recursively.
#
# https://www.doxygen.nl/manual/config.html#cfg_recursive
RECURSIVE = YES
# The headers that Doxygen generates are incorrect.
#
# https://www.doxygen.nl/manual/config.html#cfg_show_headerfile
SHOW_HEADERFILE = NO
# Alphabetically sort the modules index page.
#
# https://www.doxygen.nl/manual/config.html#cfg_sort_group_names
SORT_GROUP_NAMES = YES
# https://google.github.io/styleguide/cppguide.html#Spaces_vs._Tabs
#
# https://www.doxygen.nl/manual/config.html#cfg_tab_size
TAB_SIZE = 2
# https://www.doxygen.nl/manual/config.html#cfg_use_mdfile_as_mainpage
USE_MDFILE_AS_MAINPAGE = docs/doxygen/index.md
# Do not generate a verbatim copy of each header that Doxygen processes.
# These verbatim copies of headers can cause a lot of noise in our search
# results.
#
# https://www.doxygen.nl/manual/config.html#cfg_verbatim_headers
VERBATIM_HEADERS = NO
# https://www.doxygen.nl/manual/config.html#cfg_warn_as_error
WARN_AS_ERROR = YES
# TODO: https://pwbug.dev/393634135 - Turn this on.
#
# https://www.doxygen.nl/manual/config.html#cfg_warn_if_incomplete_doc
WARN_IF_INCOMPLETE_DOC = NO
# TODO: https://pwbug.dev/393634135 - Turn this on.
#
# https://www.doxygen.nl/manual/config.html#cfg_warn_if_undocumented
WARN_IF_UNDOCUMENTED = NO
# https://www.doxygen.nl/manual/config.html#cfg_warnings
WARNINGS = YES