Doxygen now builds with **0 warnings** (was 27). Root cause: `[label](doc/api/tests.md)`-style relative markdown links in README.md and CLAUDE.md were being interpreted by Doxygen as \ref commands and failed to resolve (Doxygen indexes .md files by basename, not by repo-relative path). Fix: add a per-file `FILTER_PATTERNS` to Doxyfile that rewrites `[label](path/to/file.md)` into `<a href="path/to/file.md">label</a>` just for Doxygen. HTML anchors bypass \ref resolution entirely; the generated Doxygen HTML still hyperlinks correctly. The on-disk markdown is untouched, so GitHub rendering is unaffected. New file: scripts/doxygen-md-filter.sh (24 lines, documented). Also: append a "Known limitations (state at the time of the reviewer meeting)" table to doc/architecture/locked-vs-flexible.md so the external reviewer sees the 7 deliberate gaps (output_uv_map covers 3 of 5 entries; pipe-only chaining; Phase 9b-analytic derived but not implemented; Doxygen WARN_IF_UNDOCUMENTED policy; CI test-count gate; research-track utilities) with effort estimates next to each. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
133 lines
5.8 KiB
Plaintext
133 lines
5.8 KiB
Plaintext
# Doxyfile for conformallab++
|
|
#
|
|
# Phase 7.5 — minimal CGAL-style Doxygen configuration.
|
|
# Only non-default values are set; Doxygen ≥ 1.9.5 supplies the rest.
|
|
#
|
|
# Usage:
|
|
# doxygen Doxyfile # generates HTML into doc/doxygen/html/
|
|
# open doc/doxygen/html/index.html
|
|
#
|
|
# Or via CMake:
|
|
# cmake --build build --target doc
|
|
|
|
# ── Project identity ─────────────────────────────────────────────────────────
|
|
PROJECT_NAME = "conformallab++"
|
|
PROJECT_NUMBER = 0.7.0
|
|
PROJECT_BRIEF = "Discrete conformal maps on triangle meshes — C++17 reimplementation of ConformalLab (TU Berlin)"
|
|
PROJECT_LOGO =
|
|
OUTPUT_DIRECTORY = doc/doxygen
|
|
USE_MDFILE_AS_MAINPAGE = README.md
|
|
|
|
# ── Input ────────────────────────────────────────────────────────────────────
|
|
INPUT = README.md \
|
|
CLAUDE.md \
|
|
code/include \
|
|
doc/api \
|
|
doc/architecture \
|
|
doc/math
|
|
FILE_PATTERNS = *.hpp *.h *.cpp *.md
|
|
RECURSIVE = YES
|
|
EXCLUDE_PATTERNS = */build*/* \
|
|
*/deps/* \
|
|
*/.git/* \
|
|
*/test-reports/* \
|
|
*/* 2.hpp
|
|
EXCLUDE_SYMBOLS = Eigen::* boost::* std::*
|
|
|
|
# Markdown filter: rewrites repo-relative links like [x](doc/api/tests.md)
|
|
# into basename-only links [x](tests.md) so Doxygen's basename-indexed
|
|
# \ref resolver can find them. On-disk files are untouched (GitHub keeps
|
|
# rendering them correctly). See scripts/doxygen-md-filter.sh.
|
|
FILTER_PATTERNS = *.md=scripts/doxygen-md-filter.sh
|
|
|
|
# ── Source browsing ──────────────────────────────────────────────────────────
|
|
EXTRACT_ALL = YES
|
|
EXTRACT_PRIVATE = NO
|
|
EXTRACT_STATIC = YES
|
|
EXTRACT_LOCAL_CLASSES = YES
|
|
HIDE_UNDOC_MEMBERS = NO
|
|
SOURCE_BROWSER = YES
|
|
INLINE_SOURCES = NO
|
|
STRIP_CODE_COMMENTS = NO
|
|
REFERENCED_BY_RELATION = YES
|
|
REFERENCES_RELATION = YES
|
|
REFERENCES_LINK_SOURCE = YES
|
|
|
|
# ── Build options ────────────────────────────────────────────────────────────
|
|
JAVADOC_AUTOBRIEF = YES
|
|
QT_AUTOBRIEF = NO
|
|
MARKDOWN_SUPPORT = YES
|
|
AUTOLINK_SUPPORT = YES
|
|
BUILTIN_STL_SUPPORT = YES
|
|
DISTRIBUTE_GROUP_DOC = YES
|
|
GROUP_NESTED_COMPOUNDS = YES
|
|
SUBGROUPING = YES
|
|
INLINE_GROUPED_CLASSES = NO
|
|
INLINE_SIMPLE_STRUCTS = NO
|
|
TYPEDEF_HIDES_STRUCT = NO
|
|
EXTENSION_MAPPING = h=C++ hpp=C++
|
|
|
|
# ── Warnings ─────────────────────────────────────────────────────────────────
|
|
QUIET = NO
|
|
WARNINGS = YES
|
|
WARN_IF_UNDOCUMENTED = NO
|
|
WARN_IF_DOC_ERROR = YES
|
|
WARN_IF_INCOMPLETE_DOC = YES
|
|
WARN_NO_PARAMDOC = NO
|
|
WARN_AS_ERROR = NO
|
|
WARN_FORMAT = "$file:$line: $text"
|
|
WARN_LOGFILE = doc/doxygen/doxygen-warnings.log
|
|
|
|
# ── HTML output ──────────────────────────────────────────────────────────────
|
|
GENERATE_HTML = YES
|
|
HTML_OUTPUT = html
|
|
HTML_FILE_EXTENSION = .html
|
|
HTML_COLORSTYLE = LIGHT
|
|
HTML_COLORSTYLE_HUE = 220
|
|
HTML_COLORSTYLE_SAT = 100
|
|
HTML_COLORSTYLE_GAMMA = 80
|
|
HTML_TIMESTAMP = NO
|
|
HTML_DYNAMIC_SECTIONS = YES
|
|
GENERATE_TREEVIEW = YES
|
|
DISABLE_INDEX = NO
|
|
ENUM_VALUES_PER_LINE = 1
|
|
TREEVIEW_WIDTH = 280
|
|
EXT_LINKS_IN_WINDOW = NO
|
|
SEARCHENGINE = YES
|
|
SERVER_BASED_SEARCH = NO
|
|
|
|
# ── Disabled outputs (we only want HTML) ─────────────────────────────────────
|
|
GENERATE_LATEX = NO
|
|
GENERATE_RTF = NO
|
|
GENERATE_MAN = NO
|
|
GENERATE_XML = NO
|
|
GENERATE_DOCBOOK = NO
|
|
GENERATE_AUTOGEN_DEF = NO
|
|
GENERATE_PERLMOD = NO
|
|
|
|
# ── Preprocessor ─────────────────────────────────────────────────────────────
|
|
ENABLE_PREPROCESSING = YES
|
|
MACRO_EXPANSION = YES
|
|
EXPAND_ONLY_PREDEF = YES
|
|
SEARCH_INCLUDES = YES
|
|
INCLUDE_PATH = code/include
|
|
PREDEFINED = CGAL_DISABLE_GMP \
|
|
CGAL_DISABLE_MPFR \
|
|
DOXYGEN_RUNNING
|
|
|
|
# ── Diagrams ─────────────────────────────────────────────────────────────────
|
|
HAVE_DOT = NO
|
|
CLASS_GRAPH = YES
|
|
COLLABORATION_GRAPH = NO
|
|
GROUP_GRAPHS = YES
|
|
INCLUDE_GRAPH = NO
|
|
INCLUDED_BY_GRAPH = NO
|
|
CALL_GRAPH = NO
|
|
CALLER_GRAPH = NO
|
|
|
|
# ── Aliases (CGAL-style) ─────────────────────────────────────────────────────
|
|
ALIASES += "concept{1}=\xrefitem concept \"Concept\" \"Concepts\" \1"
|
|
ALIASES += "models{1}=\xrefitem models \"Models\" \"Models\" \1"
|
|
ALIASES += "cgalRequires{1}=\par Requirements: \n\1"
|
|
ALIASES += "cgalParam{2}=\param \1 \2"
|