`cmake --build build --target doc` runs Doxygen to produce XML, then `doc/gen_api_md.py` (~330 lines, stdlib-only) emits a Markdown tree under `doc/api/` that gitea renders directly in its file browser. - 24 class/struct pages + 51 source-file pages + indices, with source links of the form `../../../../src/...#L42` that gitea turns into clickable line-anchored links. - Doxyfile.in templated by CMake (XML-only output to build/doc/xml/). - Pure Python emitter, zero external deps — no doxybook2 (not packaged on Arch) and no moxygen (avoids Node). - Target gracefully disabled if Doxygen or Python 3 is missing at configure time; regular build target unaffected. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
56 lines
2.0 KiB
Plaintext
56 lines
2.0 KiB
Plaintext
# Doxygen configuration for essim — produces XML only, consumed by
|
|
# doxybook2 to generate the Markdown tree under doc/api/.
|
|
# Substituted by CMake (`configure_file ... @ONLY`).
|
|
|
|
PROJECT_NAME = "@PROJECT_NAME@"
|
|
PROJECT_NUMBER = "@PROJECT_VERSION@"
|
|
PROJECT_BRIEF = "@PROJECT_DESCRIPTION@"
|
|
|
|
OUTPUT_DIRECTORY = @DOXYGEN_OUTPUT_DIR@
|
|
INPUT = @CMAKE_SOURCE_DIR@/src
|
|
RECURSIVE = YES
|
|
FILE_PATTERNS = *.hpp *.cpp *.h
|
|
EXCLUDE_PATTERNS = */build/* */build/_deps/*
|
|
|
|
# We only need XML; doxybook2 will turn that into Markdown.
|
|
GENERATE_HTML = NO
|
|
GENERATE_LATEX = NO
|
|
GENERATE_XML = YES
|
|
XML_OUTPUT = xml
|
|
XML_PROGRAMLISTING = NO
|
|
|
|
# Extraction policy — include everything the user can usefully reach, but
|
|
# keep private implementation details out by default.
|
|
EXTRACT_ALL = YES
|
|
EXTRACT_PRIVATE = NO
|
|
EXTRACT_STATIC = YES
|
|
EXTRACT_LOCAL_CLASSES = YES
|
|
EXTRACT_ANON_NSPACES = NO
|
|
|
|
# Comment style — the existing code uses Doxygen-flavoured `///` and
|
|
# `/** … */`, both of which Doxygen recognises by default. JAVADOC_AUTOBRIEF
|
|
# lets a single-line comment serve as the brief description.
|
|
JAVADOC_AUTOBRIEF = YES
|
|
QT_AUTOBRIEF = YES
|
|
MULTILINE_CPP_IS_BRIEF = YES
|
|
|
|
# Preprocess macros (forward declarations, #pragma once, etc.).
|
|
ENABLE_PREPROCESSING = YES
|
|
MACRO_EXPANSION = NO
|
|
|
|
# Warnings — be helpful but not noisy.
|
|
QUIET = YES
|
|
WARN_IF_UNDOCUMENTED = NO
|
|
WARN_IF_DOC_ERROR = YES
|
|
WARN_NO_PARAMDOC = NO
|
|
|
|
# Diagrams — Graphviz isn't needed for Markdown output; doxybook2 ignores
|
|
# image references unless explicitly handled. Keep DOT off so the build
|
|
# stays light.
|
|
HAVE_DOT = NO
|
|
|
|
# Mainpage — link the top-level README so doxybook2 picks it up as the
|
|
# landing page in doc/api/.
|
|
USE_MDFILE_AS_MAINPAGE = @CMAKE_SOURCE_DIR@/README.md
|
|
INPUT += @CMAKE_SOURCE_DIR@/README.md @CMAKE_SOURCE_DIR@/DESIGN.md
|