# Doxyfile for DeterministicESPAsyncWebServer
# Copyright (C) 2026 Douglas Quigg (dstroy0) <dquigg123@gmail.com>
# SPDX-License-Identifier: AGPL-3.0-or-later
#
# Generate HTML docs:  doxygen docs/Doxyfile
# Output:              docs/html/index.html

#---------------------------------------------------------------------------
# Project identity
#---------------------------------------------------------------------------
PROJECT_NAME           = "DeterministicESPAsyncWebServer"
PROJECT_BRIEF          = "Zero-allocation, bounded-execution async HTTP server for ESP32"
PROJECT_NUMBER         = "1.2.0"
PROJECT_LOGO           =

#---------------------------------------------------------------------------
# Input / output
#---------------------------------------------------------------------------
INPUT                  = src examples README.md
FILE_PATTERNS          = *.h *.cpp *.ino *.md
RECURSIVE              = YES
EXCLUDE                =
EXCLUDE_PATTERNS       = */test/* */docs/*
USE_MDFILE_AS_MAINPAGE = README.md

OUTPUT_DIRECTORY       = docs/html
CREATE_SUBDIRS         = NO
GENERATE_HTML          = YES
GENERATE_LATEX         = NO
GENERATE_XML           = NO
GENERATE_MAN           = NO

#---------------------------------------------------------------------------
# Extraction settings
#---------------------------------------------------------------------------
EXTRACT_ALL            = YES
EXTRACT_PRIVATE        = NO
EXTRACT_STATIC         = NO
EXTRACT_LOCAL_CLASSES  = YES
HIDE_UNDOC_MEMBERS     = NO
HIDE_UNDOC_CLASSES     = NO
SHOW_GROUPED_MEMB_INC  = YES
SHOW_USED_FILES        = YES
SORT_MEMBER_DOCS       = NO
SORT_BRIEF_DOCS        = NO

#---------------------------------------------------------------------------
# Preprocessing
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
PREDEFINED             = ARDUINO DOXYGEN

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

#---------------------------------------------------------------------------
# HTML appearance — dark ocean theme
#---------------------------------------------------------------------------
HTML_OUTPUT            = .
HTML_FILE_EXTENSION    = .html
HTML_HEADER            =
HTML_FOOTER            =
HTML_EXTRA_STYLESHEET  = docs/custom.css
HTML_EXTRA_FILES       =

# Built-in dark mode (Doxygen >= 1.9.5)
HTML_COLORSTYLE        = DARK
# Hue 210 = cool blue-teal spectrum; sat 80 = muted; gamma 90 = slightly bright
HTML_COLORSTYLE_HUE    = 210
HTML_COLORSTYLE_SAT    = 80
HTML_COLORSTYLE_GAMMA  = 90

HTML_DYNAMIC_MENUS     = YES
HTML_DYNAMIC_SECTIONS  = YES
HTML_INDEX_NUM_ENTRIES = 100

# Navigation tree sidebar
GENERATE_TREEVIEW      = YES
TREEVIEW_WIDTH         = 260
FULL_SIDEBAR           = YES

# Search
SEARCHENGINE           = YES
SERVER_BASED_SEARCH    = NO

#---------------------------------------------------------------------------
# Graphs — disabled to avoid Graphviz dependency
# Set HAVE_DOT = YES and uncomment below if Graphviz is installed
#---------------------------------------------------------------------------
HAVE_DOT               = NO
# CALL_GRAPH           = YES
# CALLER_GRAPH         = YES
# CLASS_GRAPH          = YES
# INCLUDE_GRAPH        = YES

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