Files
essim/doc/Doxyfile.in
François 66460262af Auto-generated API doc: doxygen → custom Python emitter → doc/api/.
`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>
2026-05-12 08:13:15 +02:00

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