diff --git a/.gitignore b/.gitignore index a989519..decf132 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,9 @@ target_wrapper.sh # Répertoires de build hors arbre build-check/ +# Sortie de `doxygen Doxyfile` (HTML + XML + warnings.txt) — OUTPUT_DIRECTORY +doc-generated/ + # clangd — chemins absolus du poste local, ne pas versionner compile_commands.json .cache/ diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 0000000..6d67a6a --- /dev/null +++ b/Doxyfile @@ -0,0 +1,85 @@ +# 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 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 +HAVE_DOT = NO