PROJECT_NAME           = "ProvSQL C/C++ API"
PROJECT_BRIEF          = "Adding support for provenance and uncertainty management to PostgreSQL databases"

# Input
INPUT                  = ../../src mainpage-c.md
USE_MDFILE_AS_MAINPAGE = mainpage-c.md
RECURSIVE              = YES
EXCLUDE_SYMBOLS        = PG_FUNCTION_INFO_V1

# Extraction
EXTRACT_ALL            = YES
EXTRACT_PRIVATE        = YES
EXTRACT_STATIC         = YES
JAVADOC_AUTOBRIEF      = YES
TYPEDEF_HIDES_STRUCT   = YES
FORCE_LOCAL_INCLUDES   = YES

# Preprocessor: strip GCC/Clang attributes so Doxygen can match declarations
# to definitions (otherwise e.g. __attribute__((visibility("default"))) on a
# function definition breaks the declaration/definition link and pollutes
# call graphs).
ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
PREDEFINED             = __attribute__(x)= \
                         PGDLLEXPORT= \
                         DOXYGEN

# Source browsing
SOURCE_BROWSER         = YES
STRIP_CODE_COMMENTS    = NO

# Output
OUTPUT_DIRECTORY       = ../doxygen-c
GENERATE_LATEX         = NO
GENERATE_TREEVIEW      = YES
QUIET                  = YES

# Math rendering (MathJax renders LaTeX formulas in the browser, no LaTeX install needed)
USE_MATHJAX            = YES
MATHJAX_VERSION        = MathJax_3

# Branding
PROJECT_LOGO           = ../../branding/logo.png
HTML_EXTRA_STYLESHEET  = doxygen-custom.css
HTML_FOOTER            = doxygen-footer.html
HTML_COLORSTYLE        = LIGHT
HTML_COLORSTYLE_HUE    = 265
HTML_COLORSTYLE_SAT    = 130

# Graphs
HAVE_DOT               = YES
CALL_GRAPH             = YES
CALLER_GRAPH           = YES
# provsql_utils.h is included (directly or transitively) by more than the
# default 50 files; raise the cap so its included-by graph still renders.
DOT_GRAPH_MAX_NODES    = 64
