# Doxyfile.in — configured by CMake (docs/CMakeLists.txt) into the build tree,
# then run by the `docs` target. Generates the HTML API reference published at
# https://plugin.fedem.eu/api (dropped under the tenant's static/api/).
#
# The hand-written narrative companions are the Reference Manual at
# https://plugin.fedem.eu/reference and the CLI signing tools at
# https://plugin.fedem.eu/tools. This tree adds the machine-produced detail:
# full signatures, class / collaboration diagrams, include (dependency) graphs
# and per-function call / caller graphs.
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "plugin"
PROJECT_NUMBER = "@DOXYGEN_PROJECT_NUMBER@"
PROJECT_BRIEF = "Runtime plugin loader and Ed25519 DSO signing for C++ applications"
OUTPUT_DIRECTORY = "@DOXYGEN_OUTPUT_DIR@"
CREATE_SUBDIRS = NO
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
MARKDOWN_SUPPORT = YES
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = YES
# ── Input ───────────────────────────────────────────────────────────────────
# The three library modules — dso/ (the DSOLoader), plugin/ (the catalog /
# registration templates) and sign/ (Ed25519 manifest + verifier) — plus the
# dso-keygen / dso-sign / dso-verify CLI sources. The Shape example under
# example/ is walked through on the site (/examples, /walkthrough), not here.
INPUT = @DOXYGEN_INPUT_DIR@
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.hh *.cpp
RECURSIVE = YES
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = "@DOXYGEN_STRIP_FROM_PATH@"
# ── What to extract ─────────────────────────────────────────────────────────
# EXTRACT_ALL is on so the tree also shows the loader internals and the
# manifest/ELF-section helpers — that wiring is what makes the call / caller
# graphs worth generating. The hand-written /reference manual is the
# public-API-only companion.
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_PRIV_VIRTUAL = YES
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
SORT_MEMBER_DOCS = NO
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = YES
# ── Build / diagnostics ─────────────────────────────────────────────────────
QUIET = YES
WARNINGS = YES
WARN_IF_UNDOCUMENTED = NO
WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_NO_PARAMDOC = YES
WARN_AS_ERROR = @DOXYGEN_WARN_AS_ERROR@
# ── HTML output ─────────────────────────────────────────────────────────────
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_COLORSTYLE = LIGHT
GENERATE_TREEVIEW = YES
DISABLE_INDEX = NO
FULL_SIDEBAR = NO
HTML_DYNAMIC_SECTIONS = YES
SEARCHENGINE = YES
GENERATE_LATEX = NO
GENERATE_XML = NO
GENERATE_MAN = NO
# Source browser stays off — the code ships in the release archives, not here.
SOURCE_BROWSER = NO
VERBATIM_HEADERS = NO
# ── Preprocessing ──────────────────────────────────────────────────────────
# DSOLD_WITH_SIGN is defined for the build; predefine it here so the signed
# loadSigned() / loadVerified() overloads appear in the generated tree.
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
PREDEFINED = DSOLD_WITH_SIGN=1 \
PLUGIN_EXPORT=
# ── Diagrams ───────────────────────────────────────────────────────────────
# HAVE_DOT is set by CMake from whether Graphviz (`dot`) was found. With it
# off, Doxygen falls back to its own simple inheritance diagrams and the
# call / collaboration / include graphs are skipped.
HAVE_DOT = @DOXYGEN_HAVE_DOT@
DOT_NUM_THREADS = 0
DOT_IMAGE_FORMAT = svg
INTERACTIVE_SVG = YES
DOT_MULTI_TARGETS = YES
DOT_CLEANUP = YES
DOT_GRAPH_MAX_NODES = 60
MAX_DOT_GRAPH_DEPTH = 0
# Class diagrams
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = YES
GRAPHICAL_HIERARCHY = YES
# Dependency graphs
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
DIRECTORY_GRAPH = YES
# Call graphs
CALL_GRAPH = YES
CALLER_GRAPH = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES