# Doxygen configuration for H753_CPP_SPI_Resistive_Touch_Screen_Controller

PROJECT_NAME           = "H753_CPP_SPI_Resistive_Touch_Screen_Controller"
PROJECT_NUMBER         = 1.0
PROJECT_BRIEF          = "STM32H753 SPI resistive touchscreen (Adafruit 333 overlay + 5767 TSC2046 controller) driver and tutorial"
OUTPUT_DIRECTORY       = docs

# Custom tag so source files can self-identify their project folder name
# via @project, rendered as its own labeled section rather than buried in
# @brief text.
ALIASES                = project="@par Project:"

INPUT                  = project_mainpage.dox \
                         Core/Inc \
                         Core/Src \
                         STM32BusIO \
                         TSC2046
FILE_PATTERNS          = *.h *.c *.hpp *.cpp *.dox *.md
RECURSIVE              = YES

# TODO: add README.md back to INPUT above once the project README exists
# (it is listed nowhere right now so Doxygen does not warn about a missing file).
#
# README.md is included as a browsable page (build instructions, hardware
# pinout table, debug output sample) -- deliberately NOT set as
# USE_MDFILE_AS_MAINPAGE, since project_mainpage.dox is the curated,
# Doxygen-reader-specific mainpage and the two would conflict (only one
# @mainpage is allowed).

# Skip CubeMX/ST boilerplate: its own documentation conventions differ from ours.
EXCLUDE                = Core/Src/syscalls.c \
                         Core/Src/sysmem.c \
                         Core/Src/system_stm32h7xx.c \
                         Core/Src/stm32h7xx_hal_msp.c \
                         Core/Src/stm32h7xx_it.c \
                         Core/Inc/stm32h7xx_hal_conf.h \
                         Core/Inc/stm32h7xx_it.h

# CubeMX-generated names in main.c / main.h that we do not document: the
# init functions, the pin-label macros (<Label>_Pin / <Label>_GPIO_Port), the
# peripheral handles, and the build-script error handler.
EXCLUDE_SYMBOLS        = MX_* \
                         SystemClock_Config \
                         Error_Handler \
                         _Error_Handler \
                         REDIRECT_PRINTF \
                         *_Pin \
                         *_GPIO_Port \
                         hspi1 \
                         huart1

# NOT setting OPTIMIZE_OUTPUT_FOR_C here: this project has genuine C++
# classes (STM32SPIDevice, STM32BusIORegister, TSC2046) with constructors and
# member functions that need documenting as classes, not flattened into
# plain C-style functions.

EXTRACT_ALL            = NO
EXTRACT_STATIC         = YES
HIDE_UNDOC_MEMBERS     = NO
HIDE_UNDOC_CLASSES     = NO
WARN_IF_UNDOCUMENTED   = YES
WARN_IF_DOC_ERROR      = YES
WARN_NO_PARAMDOC       = YES

GENERATE_HTML          = YES
GENERATE_LATEX         = NO
FULL_PATH_NAMES        = NO
STRIP_FROM_PATH        = .
QUIET                  = NO

# Reader navigation and clickable source for the tutorial.
GENERATE_TREEVIEW      = YES
SOURCE_BROWSER         = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION    = YES

# Optional: call / caller graphs. Requires Graphviz (the 'dot' tool) installed.
# HAVE_DOT             = YES
# CALL_GRAPH           = YES
# CALLER_GRAPH         = YES
