# Doxyfile for NeoGraph — C++ Graph Agent Engine Library

#---------------------------------------------------------------------------
# Project
#---------------------------------------------------------------------------
PROJECT_NAME           = "NeoGraph"
# PROJECT_NUMBER is sed-replaced from pyproject.toml at workflow build time
# (see .github/workflows/docs.yml). Default 0.0.0-dev for local doxygen runs.
PROJECT_NUMBER         = "0.0.0-dev"
PROJECT_BRIEF          = "A C++17 Graph Agent Engine Library — LangGraph for C++"
PROJECT_LOGO           =
OUTPUT_DIRECTORY       = docs/api

#---------------------------------------------------------------------------
# Input
#---------------------------------------------------------------------------
# include/neograph     → C++ public headers (the canonical API surface)
# docs/doxygen-mainpage.md → landing page rendered as Main Page
# docs/concepts.md     → narrative concepts guide, indexed for search
# docs/troubleshooting.md → symptom-first fixes
INPUT                  = include/neograph \
                         docs/doxygen-mainpage.md \
                         docs/concepts.md \
                         docs/troubleshooting.md
FILE_PATTERNS          = *.h *.hpp *.md
RECURSIVE              = YES
EXCLUDE_PATTERNS       = */deps/*

# C++ examples are referenced via @example blocks (TBD) and as raw
# code samples. Doxygen also surfaces them under the "Examples" tab
# when EXAMPLE_PATH is set.
EXAMPLE_PATH           = examples
EXAMPLE_PATTERNS       = *.cpp *.h
EXAMPLE_RECURSIVE      = YES

#---------------------------------------------------------------------------
# Build
#---------------------------------------------------------------------------
EXTRACT_ALL            = NO
EXTRACT_PRIVATE        = NO
EXTRACT_STATIC         = YES
EXTRACT_LOCAL_CLASSES  = NO
HIDE_UNDOC_MEMBERS     = YES
HIDE_UNDOC_CLASSES     = YES

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

#---------------------------------------------------------------------------
# Preprocessing
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = NO
EXPAND_ONLY_PREDEF     = NO

#---------------------------------------------------------------------------
# Output formats
#---------------------------------------------------------------------------
GENERATE_HTML          = YES
HTML_OUTPUT            = html
HTML_COLORSTYLE        = LIGHT
GENERATE_TREEVIEW      = YES
DISABLE_INDEX          = NO
FULL_SIDEBAR           = NO

GENERATE_LATEX         = NO
GENERATE_XML           = YES
XML_OUTPUT             = xml

#---------------------------------------------------------------------------
# Diagrams (Graphviz)
#---------------------------------------------------------------------------
HAVE_DOT               = YES
DOT_IMAGE_FORMAT       = svg
INTERACTIVE_SVG        = YES
CLASS_GRAPH            = YES
COLLABORATION_GRAPH    = YES
INCLUDE_GRAPH          = YES
INCLUDED_BY_GRAPH      = YES
CALL_GRAPH             = NO
CALLER_GRAPH           = NO
DOT_MULTI_TARGETS      = YES

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

#---------------------------------------------------------------------------
# Misc
#---------------------------------------------------------------------------
SORT_MEMBER_DOCS       = YES
SORT_BRIEF_DOCS        = YES
ALPHABETICAL_INDEX     = YES
SHOW_NAMESPACES        = YES
USE_MDFILE_AS_MAINPAGE = docs/doxygen-mainpage.md
JAVADOC_AUTOBRIEF      = YES
MULTILINE_CPP_IS_BRIEF = NO
TAB_SIZE               = 4
OPTIMIZE_OUTPUT_FOR_C  = NO
BUILTIN_STL_SUPPORT    = YES
