Première génération réelle avec Graphviz (doxygen 1.9.8, la version de référence) : 14 avertissements, dont 8 introduits par moi cette session — \return et \param manquants sur la charge utile sg-ready, claimedThingIds(), validateSet() et claimedRelays(). Corrigés. Les 6 restants sont exactement relayrouter.h et energyarbitrator.h, les deux fichiers différés jusqu'après l'étape 3 puisqu'ils vont être restructurés. Le résidu est donc entièrement connu et daté. CORRECTION — la note que j'avais écrite en tête du Doxyfile était fausse. Elle annonçait que l'arête « EnergyArbitrator : public SmartChargingManager » n'apparaîtrait pas. Elle apparaît : doxygen rend une classe de base non résolue en boîte simple. Ce qui manque est derrière — la boîte est un cul-de-sac, sans membres, sans ancêtres, non cliquable (aucun href dans le SVG). La conclusion ne change pas, ne pas élargir INPUT ; la description, si. 101 graphes SVG produits, 3,2 Mo de HTML, 1,8 Mo de XML. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
130 lines
5.8 KiB
Plaintext
130 lines
5.8 KiB
Plaintext
# Doxyfile — etm-powersync-energy-plugin-etm
|
|
# Doxygen 1.9.8
|
|
#
|
|
# Périmètre : energyplugin/etm/ UNIQUEMENT. Le code amont forké
|
|
# (SmartChargingManager et satellites) n'est pas le nôtre ; l'inclure rendrait
|
|
# la mesure ininterprétable.
|
|
#
|
|
# ANGLE MORT ASSUMÉ : les ajouts marqués « // [ETM] » dans les en-têtes amont
|
|
# (energyplugin/smartchargingmanager.h) sont hors de ce périmètre et ne sont
|
|
# mesurés par aucune configuration tant que la frontière est un répertoire. Ils
|
|
# sont peu nombreux, déjà marqués, et documentés à la main — cf. la définition
|
|
# de fait dans AGENTS.md.
|
|
#
|
|
# ATTENTION — le graphe d'héritage est TRONQUÉ, et c'est voulu.
|
|
# « class EnergyArbitrator : public SmartChargingManager » est l'arête la plus
|
|
# intéressante du dépôt. Vérifié sur la sortie réelle (2026-08-11) : l'arête est
|
|
# bien DESSINÉE — doxygen rend une classe de base non résolue en boîte simple.
|
|
# Ce qui manque, c'est tout ce qu'il y a derrière : la boîte est un cul-de-sac,
|
|
# sans membres, sans ancêtres, et non cliquable (aucun href dans le SVG). Le
|
|
# graphe dit « ça hérite de là » sans pouvoir dire de quoi il hérite.
|
|
# La cause est le périmètre : la classe de base vit dans energyplugin/, hors
|
|
# INPUT. Élargir INPUT pour « réparer » ferait entrer tout le code amont dans la
|
|
# mesure et exploser le compte d'avertissements — exactement ce que le périmètre
|
|
# ci-dessus évite. Le graphe est incomplet par choix, pas par oubli.
|
|
#
|
|
# ATTENTION — le nombre d'avertissements dépend des générateurs de sortie
|
|
# activés. Sans aucun générateur, doxygen 1.9.8 émet des « not documented » sur
|
|
# des membres qui SONT documentés (constaté : 163 sans sortie, 113 avec
|
|
# HTML+XML, sur le même arbre). GENERATE_HTML et GENERATE_XML doivent donc
|
|
# rester à YES : c'est ce qui rend le comptage honnête. Ne pas les désactiver
|
|
# pour « aller plus vite ».
|
|
|
|
PROJECT_NAME = "etm-powersync-energy-plugin-etm"
|
|
PROJECT_BRIEF = "Moteur HEMS ETM — couche etm/ (arbitre, scheduler, adaptateurs)"
|
|
OUTPUT_DIRECTORY = doc-generated
|
|
CREATE_SUBDIRS = NO
|
|
OUTPUT_LANGUAGE = French
|
|
|
|
# --- Périmètre -------------------------------------------------------------
|
|
INPUT = energyplugin/etm
|
|
RECURSIVE = YES
|
|
FILE_PATTERNS = *.h *.cpp
|
|
|
|
# --- Extraction ------------------------------------------------------------
|
|
# EXTRACT_ALL = NO : sans cela doxygen documente tout d'office et n'avertit de
|
|
# rien. C'est le réglage qui rend la vérification possible.
|
|
EXTRACT_ALL = NO
|
|
EXTRACT_PRIVATE = NO
|
|
EXTRACT_STATIC = NO
|
|
EXTRACT_LOCAL_CLASSES = NO
|
|
|
|
# --- Avertissements --------------------------------------------------------
|
|
WARNINGS = YES
|
|
WARN_IF_UNDOCUMENTED = YES
|
|
WARN_IF_DOC_ERROR = YES
|
|
WARN_NO_PARAMDOC = YES
|
|
# WARN_AS_ERROR reste NO : le job CI n'est pas bloquant tant que l'étape 3 de
|
|
# specs/spec_ecs.md n'est pas close (relayrouter.h et le noyau de calcul sont
|
|
# différés jusque-là). Passer à YES à ce moment, pas avant.
|
|
WARN_AS_ERROR = NO
|
|
QUIET = YES
|
|
WARN_LOGFILE = doc-generated/warnings.txt
|
|
|
|
# --- Sorties ---------------------------------------------------------------
|
|
GENERATE_HTML = YES
|
|
HTML_OUTPUT = html
|
|
GENERATE_LATEX = NO
|
|
# XML : consommable par Breathe si le dépôt s'aligne un jour sur une chaîne
|
|
# Sphinx. Coût mesuré : ~180 ms, 73 fichiers, 1,5 Mo.
|
|
GENERATE_XML = YES
|
|
XML_OUTPUT = xml
|
|
|
|
# --- Préprocesseur ---------------------------------------------------------
|
|
# Neutralise les macros Qt (sinon Q_OBJECT est lu comme une déclaration) et
|
|
# définit ETM_ARBITRATOR, sans quoi les blocs #ifdef de l'arbitre seraient
|
|
# ignorés.
|
|
ENABLE_PREPROCESSING = YES
|
|
MACRO_EXPANSION = YES
|
|
EXPAND_ONLY_PREDEF = YES
|
|
PREDEFINED = Q_OBJECT= \
|
|
Q_GADGET= \
|
|
Q_PROPERTY(x)= \
|
|
Q_INVOKABLE= \
|
|
Q_DECLARE_METATYPE(x)= \
|
|
Q_ENUM(x)= \
|
|
Q_UNUSED(x)= \
|
|
ETM_ARBITRATOR \
|
|
"Q_DECL_OVERRIDE=override"
|
|
|
|
# --- Divers ----------------------------------------------------------------
|
|
JAVADOC_AUTOBRIEF = NO
|
|
QT_AUTOBRIEF = NO
|
|
MARKDOWN_SUPPORT = YES
|
|
OPTIMIZE_OUTPUT_FOR_C = NO
|
|
HIDE_UNDOC_MEMBERS = NO
|
|
HIDE_UNDOC_CLASSES = NO
|
|
|
|
# --- Graphes (Graphviz) ----------------------------------------------------
|
|
# graphviz est une dépendance de la CIBLE DOC, pas du build du paquet : rien à
|
|
# installer dans le conteneur build-cross-arm64, qui n'a que faire de dot.
|
|
# Debian/Ubuntu : apt install graphviz
|
|
HAVE_DOT = YES
|
|
|
|
# CALL_GRAPH / CALLER_GRAPH restent à NO, et ce n'est pas une question de coût.
|
|
# Le moteur est SIGNAL-DRIVEN : powerBalanceChanged → verifyOverloadProtection()
|
|
# n'est pas un appel mais une connexion Qt, invisible à l'analyse statique. Un
|
|
# graphe d'appel montrerait update() comme un point d'entrée orphelin et
|
|
# raterait le mécanisme principal de la couche L4. Un schéma faux vaut moins
|
|
# que pas de schéma.
|
|
CALL_GRAPH = NO
|
|
CALLER_GRAPH = NO
|
|
|
|
# Ce que dot apporte réellement ici : héritage, collaboration, inclusions.
|
|
CLASS_GRAPH = YES
|
|
COLLABORATION_GRAPH = YES
|
|
INCLUDE_GRAPH = YES
|
|
INCLUDED_BY_GRAPH = NO
|
|
DIRECTORY_GRAPH = YES
|
|
TEMPLATE_RELATIONS = NO
|
|
|
|
# SVG : lisible à toute échelle et diffable, contrairement au PNG.
|
|
DOT_IMAGE_FORMAT = svg
|
|
INTERACTIVE_SVG = YES
|
|
|
|
# Au-delà, doxygen tronque plutôt que de produire un pavé illisible — un graphe
|
|
# qu'on ne peut pas lire ne documente rien.
|
|
DOT_GRAPH_MAX_NODES = 60
|
|
MAX_DOT_GRAPH_DEPTH = 3
|
|
DOT_CLEANUP = YES
|