# Doxygen configuration for CAT-Surface API documentation

PROJECT_NAME           = "CAT-Surface"
PROJECT_BRIEF          = "Cortex Analysis Tools surface-processing library and CLI APIs"
PROJECT_NUMBER         = "dev"
OUTPUT_DIRECTORY       = docs/doxygen

CREATE_SUBDIRS         = NO
ALLOW_UNICODE_NAMES    = YES
OUTPUT_LANGUAGE        = English
BRIEF_MEMBER_DESC      = YES
REPEAT_BRIEF           = NO
ALWAYS_DETAILED_SEC    = YES
INLINE_INHERITED_MEMB  = NO
FULL_PATH_NAMES        = NO
STRIP_FROM_PATH        = .

# Build formats
GENERATE_HTML          = YES
HTML_OUTPUT            = html
HTML_FILE_EXTENSION    = .html
GENERATE_TREEVIEW      = YES
DISABLE_INDEX          = NO
GENERATE_LATEX         = NO
GENERATE_XML           = YES
XML_OUTPUT             = xml

# Source parsing
INPUT                  = Include Lib Progs cat_surface_cython
FILE_PATTERNS          = *.h *.c *.cpp *.cc *.cxx *.py
RECURSIVE              = YES
EXCLUDE                = 3rdparty build-native-arm64 deprecated .git .venv .vscode
EXCLUDE_PATTERNS       = */__pycache__/*

# Extraction policy
EXTRACT_ALL            = NO
EXTRACT_PRIVATE        = NO
EXTRACT_STATIC         = NO
EXTRACT_LOCAL_CLASSES  = NO
HIDE_UNDOC_MEMBERS     = NO
HIDE_UNDOC_CLASSES     = NO
HIDE_FRIEND_COMPOUNDS  = NO
SHOW_USED_FILES        = YES
SHOW_FILES             = YES
SHOW_NAMESPACES        = YES

# C-centric output
OPTIMIZE_OUTPUT_FOR_C  = YES
TYPEDEF_HIDES_STRUCT   = YES
SORT_MEMBER_DOCS       = YES
SORT_BRIEF_DOCS        = YES
SORT_BY_SCOPE_NAME     = YES

# Preprocessing
ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = NO
EXPAND_ONLY_PREDEF     = NO
SEARCH_INCLUDES        = YES
INCLUDE_PATH           = Include 3rdparty/bicpl-surface/Include 3rdparty/volume_io/Include

# Warnings
QUIET                  = NO
WARNINGS               = YES
WARN_IF_UNDOCUMENTED   = YES
WARN_IF_DOC_ERROR      = YES
WARN_NO_PARAMDOC       = YES
WARN_AS_ERROR          = NO
WARN_LOGFILE           = docs/doxygen/warnings.log

# Input filtering and graphs
FILTER_SOURCE_FILES    = NO
SOURCE_BROWSER         = YES
INLINE_SOURCES         = NO
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION    = YES
CALL_GRAPH             = NO
CALLER_GRAPH           = NO
HAVE_DOT               = NO

# Aliases for common CAT docs style
ALIASES                += in="\\b in"
ALIASES                += out="\\b out"
ALIASES                += inout="\\b in/out"
