# Doxygen configuration for the Exvi Timing SDK.
#
# Run from the repository root:
#   doxygen docs/api/Doxyfile
#
# Output lands in docs/exvi_tdc_a_docs/api/html/.

# ---------- Project ----------
PROJECT_NAME           = "Exvi Timing SDK"
PROJECT_NUMBER         = "0.2.0"
PROJECT_BRIEF          = "C, C++, and Python APIs for Exvi timing devices"
OUTPUT_DIRECTORY       = ../exvi_tdc_a_docs/api
USE_MDFILE_AS_MAINPAGE = mainpage.md

# ---------- Input ----------
# Only outward-facing surfaces are listed here.
INPUT                  = mainpage.md \
                         ../../host/python/src/exvi/analysis/__init__.py \
                         ../../host/python/src/exvi/analysis/api.py \
                         ../../host/python/src/exvi/timing/__init__.py \
                         ../../host/python/src/exvi/timing/api.py \
                         ../../host/cpp/include/exvi/analysis.h \
                         ../../host/cpp/include/exvi/analysis.hpp \
                         ../../host/cpp/include/exvi/timing.h \
                         ../../host/cpp/include/exvi/timing.hpp
FILE_PATTERNS          = *.py *.h *.hpp *.md
RECURSIVE              = YES
EXCLUDE_PATTERNS       = */__pycache__/* */dist/* */build/*
# Hide Python "internal" classes / helpers (leading underscore) from the
# public reference. Doxygen does not natively treat _Name as private in
# Python, so they must be excluded by name.
EXCLUDE_SYMBOLS        = _* *::_*
EXTENSION_MAPPING      = py=Python
INPUT_ENCODING         = UTF-8

# ---------- Extraction ----------
# EXTRACT_ALL=NO + HIDE_UNDOC_* keep the reference focused on items that
# carry a real docstring or Doxygen comment.
EXTRACT_ALL            = NO
EXTRACT_STATIC         = NO
EXTRACT_PRIVATE        = NO
EXTRACT_PACKAGE        = NO
EXTRACT_LOCAL_CLASSES  = NO
HIDE_UNDOC_MEMBERS     = YES
HIDE_UNDOC_CLASSES     = YES
HIDE_UNDOC_RELATIONS   = YES
INTERNAL_DOCS          = NO
JAVADOC_AUTOBRIEF      = YES
QT_AUTOBRIEF           = YES
OPTIMIZE_OUTPUT_FOR_C  = NO
MARKDOWN_SUPPORT       = YES
AUTOLINK_SUPPORT       = YES
PYTHON_DOCSTRING       = YES

# ---------- Source browsing ----------
SOURCE_BROWSER         = NO
INLINE_SOURCES         = NO
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION    = NO
STRIP_CODE_COMMENTS    = YES

# ---------- Output formats ----------
GENERATE_HTML          = YES
GENERATE_LATEX         = NO
GENERATE_XML           = NO

# ---------- HTML look ----------
HTML_OUTPUT            = html
HTML_FILE_EXTENSION    = .html
GENERATE_TREEVIEW      = YES
DISABLE_INDEX          = NO
FULL_SIDEBAR           = NO
HTML_COLORSTYLE        = TOGGLE
HTML_COLORSTYLE_HUE    = 220
HTML_COLORSTYLE_SAT    = 100
HTML_COLORSTYLE_GAMMA  = 80
HTML_TIMESTAMP         = YES
SEARCHENGINE           = YES

# ---------- Diagrams ----------
HAVE_DOT               = NO
CLASS_DIAGRAMS         = YES

# ---------- Warnings ----------
QUIET                  = NO
WARNINGS               = YES
WARN_IF_UNDOCUMENTED   = NO
WARN_IF_DOC_ERROR      = YES
WARN_NO_PARAMDOC       = NO

# ---------- Misc ----------
ALPHABETICAL_INDEX     = YES
GROUP_NESTED_COMPOUNDS = YES
SHOW_NAMESPACES        = YES
SHOW_FILES             = YES
SHOW_INCLUDE_FILES     = YES
INHERIT_DOCS           = YES
TAB_SIZE               = 4
