-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathdoxygen.many.txt
796 lines (726 loc) · 46.4 KB
/
doxygen.many.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
┏━━━━━━━━━━━━━┓
┃ DOXYGEN ┃
┗━━━━━━━━━━━━━┛
┌─────────────────┐
│ GENERALITES │
└─────────────────┘
DEPENDANCES ==> #Il y a de nombreuses dépendances. En cas de problème,
#vérifier que toutes les dépendances facultatives sont
#installées.
RECOMMANDATIONS ==> # - préférer documenter dans les headers
# - ne pas mettre de fonctions, etc. globales sans
# namespace.
ECHAPPEMENTS DES #Les caractères \, @, &, $, #, <, >, %, ", :: doivent
CARACTERES ==> #doivent être échappés avec un backslash.
ACTIONS \ et @ ==> #Toutes les actions commençant par \ peuvent remplacer
#ce \ par un @
LANGAGES SUPPORTES ==> # - C
# - C++
# - Python
# - Java
# - PHP
# - C#
# - Objective-C
# - D
# - Fortran
# - IDL
# - VHDL
#D'autres, grâce à des helpers :
# - Perl
# - JavaScript
# - Object Pascal
# - Visual Basic et VB.NET
# - MatLab
# - TCL
#Le type est reconnu automatiquement via l'extension des
#fichiers. Pour forcer l'association d'un langage à une
#extension, assigner à l'option EXTENSION_MAPPING :
#EXTENSION=LANGAGE, où LANGAGE est écrit comme
#ci-dessus, et EXTENSION n'ayant pas le point.
OUTPUTS ==> # - .html
# - .rtf (M$ Word)
# - .xml
# - Latex (-> .pdf et .ps)
# - man pages
┌─────────────────┐
│ UTILISATION │
└─────────────────┘
UTILISATION ==> # 1) commenter le projet
# 2) création et édition du config file (peut être fait
# via doxywizard, qui le fait avec un GUI)
# 3) génération de la documentation
doxygen -g [FILE] #Génère un config file FILE (par défaut Doxyfile, peut
#être - pour désigner stdin).
#Le config file est une suite de :
# - VAR = VAL[ VAL2...]
doxygen -u [FILE] #Met à jour un config file FILE (par défaut Doxyfile)
#avec la dernière version de Doxygen.
#Supprime les commentaires du config file.
doxygen [FILE] #Génère une documentation en fonction du config file
#FILE (par défaut Doxyfile, peut être -)
-s #Avec -g et -u, supprime les commentaires.
CONFIG FILE ==> #Plutôt que VAR = VAL1 VAL2, on peut écrire VAR = VAL1
#suivide VAR += VAL2, ou on peut utiliser des
#trailing backslashes (mieux)
#On peut utiliser tout environment variable (et non les
#VAR définies dans le fichier) sous la forme $(VAR)
#On peut faire un include d'un autre Doxyfile avec, au
#début :
# - @INCLUDE = FILE
#L'include path est le répertoire courant, cependant,
#on peut rajouter d'autres répertoires via (avant
#@INCLUDE) :
# - @INCLUDE_PATH = DIR
#En général, quand une VAL est possible plusieurs VAL...
#le sont. Si VAL est "YES" ou "NO", je précise avec #|
#si default est "YES", #|| si default est "NO" :
QUIET #||N'imprime pas d'informations lors de la génération.
WARN_IF_UNDOCUMENTED #|Si EXTRACT_ALL == "NO", imprime des messages
#d'avertissement pour les membres non documentés.
WARN_NO_PARAMDOC #||Avec WARN_IF_UNDOCUMENTED, imprime aussi des
#avertissements pour les fonctions dont le return ou les
#paramètres ne sont pas documentés.
WARNINGS #|Imprime des messags d'avertissement divers.
WARN_IF_DOC_ERROR #|Imprime des message d'avertissement sur des erreurs
#dans l'écriture de la documentation (documentation
#de membres inexistants, etc.)
WARN_FORMAT #Format des messages d'avertissements, pouvant contenir
#les variables $file (nom de fichier), $line (no de
#ligne) et $text (avertissement).
WARN_LOGFILE #Imprime les avertissements vers le FILE précisé, et non
#vers stderr.
┌──────────────────┐
│ COMMENTAIRES │
└──────────────────┘
COMMENTER ==> #Il faut commenter "à la Doxygen".
#On peut les mettres :
# - Juste avant la déclaration ou définition de la
# classe, namespace, fonction, variable, macro ou
# typedef.
# - Juste après une variable (uniquement), sur la même
# ligne, sous la forme :
# - /**< */ (commentaires détaillés, sauf
# JAVADOC_AUTOBRIEF)
# - ///< et //!< (commentaires brefs)
#On distingue les commentaires brefs et détaillés.
COMMENTAIRES DETAILLES #Commentaires détaillés :
==> # /**
# *
# */
#D'autres sont possibles, mais je les aime moins :
# /*! /*! /// //!
# * /// //!
# */ */ /// //!
#Pour faire ça de manière jolie, on peut donc faire
#(notez le //**):
# /**************************//**
# *
# *****************************/
#Une ligne ne contenant que les caractères du
#commentaires sans rien est une ligne vide et sépare
#deux paragraphes.
#On peut mettre des commentaires dans les commentaires,
#qui seront pas lus par Doxygen, avec <!-- TEXTE -->
COMMENTAIRES BREFS ==> #Commentaires brefs :
# - utiliser \brief ou @brief au début d'un bloc de
# commentaire détaillé, qui reprendra après la
# première ligne ne contenant que le symbole du
# commentaire (ligne vide)
# - avec JAVADOC_AUTOBRIEF activé, dans un bloc /**
# détaillé, ou avec QT_AUTOBRIEF activé, dans un bloc
# /*! détaillé, la première phrase sera non pas
# détaillée mais brève.
# - /// ou //! :
# - suivi d'une blank line, puis suivie d'un bloc
# de commentaires détaillés et JAVADOC_AUTOBRIEF
# désactivé
# - ou avec MULTILINE_CPP_IS_BRIEF activé.
VALEURS DE COMMENTAIRES #Dans un commentaire détaillé, on peut rajouter sur une
DETAILLES ==> #ligne, pour une fonction :
# - \param VAR COMMENTAIRE, commente l'argument VAR.
# - \return COMMENTAIRE, commente la return value.
#\param peut être \param[in], \param[out] ou
#\param[in,out] également, pour spécifier la
#lecture/écriture.
COMMENTAIRES A D'AUTRES #Si l'on veut mettre un commentaire dans un autre
ENDROIT ==> #endroit que ceux permis sinon, dans le même fichier ou
#dans un autre, il faut mettre au début (peut précéder
#donc un commentaire bref), en fonction du type :
# - \class CLASS
# - \struct STRUCT
# - \union UNION
# - \enum ENUM
# - \fn FUNC_VAR(...)
# - \var VAR
# - \typedef TYPE2
# - \def MACRO
# - \namespace NAMESPACE
# - \package PACKAGE, pour un package Java
# - \interface INTERFACE, pour une interface IDL
# - \file BASENAME, pour un fichier
# - \headerfile HEADER [TEXTE], texte étant le chemin à
# afficher dans la documentation générée.
# - \dir REPERTOIRE
#On peut remplacer les @ par des \
#Une classe, struct, etc. dont un des membres est
#commenté ainsi doit elle-même être commentée via \
#class, \struct, \union, \enum ou \namespace.
#Le fichier d'une fonction, typedef, enum ou macro,
#globale, doit être lui-même commenté via \file.
#A ne faire que si on est obligé, car cela oblige
#d'écrire deux chois chaque prototype.
┌──────────────────────┐
│ GENERAL SETTINGS │
└──────────────────────┘
PROJECT_NAME #Nom du projet
PROJECT_BRIEF #Sous-titre du projet
PROJECT_NUMBER #Version du projet
PROJECT_LOGO #Chemin du logo du projet
INPUT #Chemin des sources (plusieurs VAL... possibles).
#Une valeur vide signifie "répertoire courant"
RECURSIVE #||Analyse récursive des répertoires spécifiés dans
#INPUT
FILE_PATTERNS #patterns (globbing) désignant les fichiers à prendre
#en compte (par défaut *)
EXCLUDE #Comme INPUT, mais pour les fichiers à ne pas prendre en
#compte (bien que spécifiés dans INPUT)
EXCLUDE_PATTERNS #Comme FILE_PATTERNS, mais pour ceux à ne pas prendre
#en compte (par défaut vide)
EXCLUDE_SYMLINKS #N'analyse pas les symlinks.
EXCLUDE_SYMBOLS #Noms des classes, namespaces, membres, etc. à ne pas
#documenter (wildcard * possible)
OUTPUT_DIRECTORY #Root directory de la génération de documentation (par
#défaut le répertoire courant)
HTML_OUTPUT
RTF_OUTPUT
LATEX_OUTPUT
XML_OUTPUT #Même chose, mais plus précisément pour le répertoire
MAN_OUTPUT #HTML, RTF, LATEX, XML et les man pages.
CREATE_SUBDIRS #||Créer des sous-répertoires d0 à df dans lesquels
#les fichiers créés sont placés. Utile seulement si le
#projet est gros et qu'un répertoire avec trop de
#fichier crée des problèmes avec le file system.
Man pages ==> #Doit être placé dans le $MANPATH pour être lu.
MAN_EXTENSION #Extension man (défaut : .3)
MAN_LINKS #||Génère des man pages pour tous les membres et non
#seulement les classes, etc.
┌─────────────────────────────┐
│ DOC DES FICHIERS SOURCE │
└─────────────────────────────┘
INCLURE DES FICHIERS ==>#Pour inclure des fichiers dans la liste des fichiers :
# - utiliser \file
# - si CASE_SENSE_NAMES est activé, le nom du fichier
# doit être seulement en minuscules.
#Les fichiers dans la liste des fichiers indiquent les
# #include si SHOW_INCLUDE_FILES est activé.
VERBATIM_HEADERS #|Inclue dans la liste des fichiers les headers included
SOURCE_BROWSER #||Inclue le code des fichiers sources.
INLINE_SOURCES #||Inclue l'implémentation des fonctions dans leur
#documentation détaillée.
STRIP_CODE_COMMENTS #|Supprime les commentaires non-Doxygen du code généré
#dans la documentation.
REFERENCED_BY_RELATION #||Indique dans la documentation détaillée de tout
#membre utilisé dans l'implémentation par une fonction
#que celui-ci est utilisé par cette fonction. Si
#SOURCE_BROWSER et REFERENCES_LINK_SOURCE sont
#activées, les liens pointent vers le code source,
#sinon vers la documentation normale.
REFERENCES_RELATION #Inverse : indique les membres utilisés par les
#fonctions.
USE_HTAGS #Le code source généré l'est via les Htags de GNU
#global, qui doit être installé. En gros, c'est mieux :)
SEARCH_INCLUDES #Liste des chemins utilisés par #include, afin de
#pouvoir afficher le code des headers.
┌───────────────────┐
│ MISE EN FORME │
└───────────────────┘
LISTES ==> #Une identation suivie d'un tiret commence une liste.
#L'élément courant ne s'arrête qu'à :
# - un nouveau tiret (nouvel élément)
# - une ligne vide, ou avec un . isolé, ou un retrait
# de l'indentation
#S'il y a un # après le tiret, il s'agit d'une lettre
#littérale a., b., etc.
#Par ailleurs, on peut faire une puce de liste (non
#nested) avec \li ELEMENT.
MISE EN FORME ==> # - \e MOT et \em MOT... mettent en italique.
# - \b MOT <b>MOT...</b> met en gras
# - \c MOT <tt>MOT...</tt> donne une police "de code"
# - <SMALL>MOT...</SMALL> met en petit.
# - <SUP>MOT...</SUP> met en exponent.
# - <SUB>MOT...</SUB> met en bas.
# - \n insert une newline
# - <CENTER>MOT...</CENTER>
┌───────────────────────────┐
│ MISE EN FORME AVANCEE │
└───────────────────────────┘
IMAGES ==> #\image FORMAT FILE ["LEGENDE"] [TAILLE] insert une
#image dont le fichier FILE est recherché dans les
#chemins spécifiés dans IMAGE_PATH.
#FORMAT peut être : html, latex ou rtf.
#LEGENDE doit être entre guillemets.
#TAILLE peut être width=VAL ou height=VAL (utile
#seulement pour latex)
EXAMPLES DE CODE ==> #Des commentaires entre un \code et un \endcode seront
#colorés syntaxiquement (C/C++).
#\include FILE recherchera FILE dans tous les chemins
#définis dans EXAMPLE_PATH, et mettera le contenu de
#FILE entre des balises \code et \endcode. Les
#répertoires désignés dans EXAMPLE_PATH seront
#récursifs si EXAMPLE_RECURSIVE est activé.
#EXAMPLE_PATTERNS est disponible sur le même modèle
#que FILE_PATTERNS.
#\includelineno est comme \include, mais rajoute les
#numéros de ligne.
#On peut aussi inclure du code .html avec :
# - \htmlinclude FILE
LATEX ==> #On peut utiliser du code Latex entre :
# - deux \f$
# - un \f[ et un \f] (le code sera alors centré et sur
# une ligne à part)
#Exemple de code Latex :
# - tout caractère (parenthèses, lettre, etc.)
# - _NOMBRE : indice nombre, par exemple x1 (indice 1)
# - ^NOMBRE : exponent nombre
# - \sqrt{ } : racine carrée
# - | | : valeur absolue
# - \int_{CHAR}^CHAR2 : valeur intégrale de CHAR par
# CHAR2
# - \psi, \gamma, \theta, \xi : lettres correspondantes
# - \frac{...}{...} : fraction de ... sur ...
# - \f{eqnarray*}{ VAR &=& ... \\
# &=& ... \\
# &=& ...\f} : suite d'équations
#On peut varier la taille de la police utilisée avec
#FORMULA_FONTSIZE, et faire en sorte d'utiliser des
#images transparentes avec FORMULA_TRANSPARENT.
#Cependant, à chaque nouvelle modification de la
#formule Latex, il faudra manuellement supprimer tous
#les form_*.png
#On peut injecter directement du code Latex entre deux
#balises \latexonly et \endlatexonly, pour l'ouput
#Latex, si le code n'est pas géré autrement par
#Doxygen.
doxygen -l [FILE] #Crée un fichier .xml (par défaut DoxygenLayout.xml)
#décrivant le layout utilisé pour l'output, et pouvant
#être édité. Changer le type ou le title est
#déconseillé (ce dernier, lorsque vide, pouvant changer
#en fonction de la langue), mais mettre un attribut
#visible="no" peut être utile. Pour ceux n'ayant pas
#d'attributs "visible", supprimer le node semble
#marcher.
#Il faut ensuite attribuer son chemin à la variable
#LAYOUT_FILE.
┌────────────────────────┐
│ MISE EN FORME HTML │
└────────────────────────┘
HTML ==> #Les balises \htmlonly et \endhtmlonly sont le pendant
#HTML de \latexonly et \endlatexonly.
#Il y a aussi \manonly et \endmanonly
doxygen -w html HEADER #Crée les fichiers par défaut utilisés pour l'HEADER,
FOOTER CSS #le FOOTER et le CSS. Ceux-ci peuvent donc être édités.
#Il faut ensuite :
# - attribuer leur chemin aux variables HTML_HEADER,
# HTML_FOOTER et HTML_STYLESHEET
# - les copier vers le répertoire html créé
#Il est possible d'utiliser ces variables dans l'header
#et le footer, qui seront remplacés alors : $title,
#$datetime, $date, $doxygenversion, $projectname,
#$projectnumber. $relpath$ fait référence à
#HTML_OUTPUT, utilise pour préciser la CSS :
#$relpath$doxygen.css
HTML_COLORSTYLE_HUE #Teinte de l'output HTML
HTML_COLORSTYLE_SAT #Saturation de l'output HTML
HTML_COLORSTYLE_GAMMA #Gamma de l'output HTML
HTML_TIMESTAMP #|Affiche la date de génération en bas de la page HTML
CLASS_DIAGRAMS #|Génère les graphes d'inhéritance.
CLASS_GRAPH #|Même chose ?
GRAPHICAL_HIERARCHY #|Même chose ?
COLLABORATION_GRAPH #|Génère les graphes de collaboration entre classes.
GROUP_GRAPHS #|Génère les graphes de collaboration entre groupes.
CALL_GRAPH #|| Génère un graph des fonctions appelées par une
#autre fonction dans ses commentaires détaillés (si
#désactivé, on peut aussi mettre l'action \callgraph
#dans les commentaires pour une fonction donnée)
CALLER_GRAPH #|| Même chose, mais pour les fonctions qui l'appellent,
#et non l'inverse (et l'action est \callergraph).
TEMPLATE_RELATIONS #||Génère les graphes de relations entre les membres à
#template et leur spécialisation ?
INCLUDE_GRAPH #|Avec HAVE_DOT, SEARCH_INCLUDES et ENABLE_PREPROCESSING
#affiche un graphe des headers included.
INCLUDED_BY_GRAPH #|Inverse.
DIRECTORY_GRAPH #|Avec SHOW_DIRECTORIES et HAVE_DOT, affiche un graph
#montrant quels répertoires ont des fichiers faisant des
#include vers des fichiers d'autres répertoires.
HIDE_UNDOC_RELATIONS #|N'affiche pas les membres/classes non documentés dans
#les graphs.
HAVE_DOT #|| - génère des graphs plus simples et beaux
# - génère un graph de l'ensemble des inhéritances en
# plus de chaque graph (.html seulement)
# - génère des graphs d'include des fichiers (.html et
# .rtf seulement)
DOT_FONTNAME
DOT_FONTPATH #Dirname et basename de la police utilisée par HAVE_DOT
DOT_FONTSIZE #Taille de la police.
MAX_DOT_GRAPH_DEPTH #Profondeur maximale des graphs (défaut 0 : pas de
#limite)
DOT_GRAPH_MAX_NODES #Nombre de noeuds maximal pour un seul graph (défaut 50)
UML_LOOK #Fait que les graphs ont une allure de diagramme UML.
HTML_DYNAMIC_SECTIONS #Permet de dissimuler/montrer les graphs via une flèche
SEARCHENGINE #|Affiche un search engine
SERVER_BASED_ENGINE #||Avec SEARCHENGINE, fait que le search engine est plus
#rapide et permet de rechercher plus de choses.
#Cependant, ne marche que sur un serveur (si les pages
#sont accédées via un réseau et non en local)
GENERATE_TREEVIEW #Avec USE_INLINE_TREES, montre les hierarchies (classes,
#modules) avec un tree dynamique. Sa largeur peut être
#réglée avec TREEVIEW_WIDTH.
TAB_SIZE #Tab size dans les fragments de code (notamment headers)
#affichés dans la documentation
HTML_FILE_EXTENSION #Extension des fichiers HTML générés (par défaut .html)
DISABLE_INDEX #Ne crée pas d'index.html (le répartie dans d'autres
#fichiers)
┌────────────────────────────┐
│ ORGANISATION DE LA DOC │
└────────────────────────────┘
MAINPAGE ET PAGES ==> #Le texte de la page principale est un bloc commentaire,
#commençant avec :
# - \mainpage TITRE
#Il peut contenir des liens vers des pages sous la
#forme :
# - \subpage PAGE [TEXTE]
#PAGE étant le nom de la page, et TEXTE ce qui est
#affiché (PAGE par défaut).
#Une PAGE est également un bloc commentaire ne
#contenant que du texte et aucune déclaration
#(tutoriels, etc.), auquel fait référence la page
#principale (via \subpage), ou la documentation d'un
#membre, ou une autre page, d'un membre via \ref PAGE
#Une PAGE peut être divisé en paragraphes et
#sous-paragraphes via :
# - \section PARAGRAPHE [TEXTE]
#et :
# - \subsection SOUS-PARAGRAPHE [TEXTE]
#Voir en \subsubsection, eux-même divisibles en
#\paragraph.
#On peut écrire dans l'une des pages :
# - \anchor MOT
#pour pouvoir placer des liens vers cet endroit en
#faisant \ref MOT.
DOCUMENTATION EN #Tout code entouré par :
FONCTION DE CONDITIONS # - /**> \cond MOT */
==> #et :
# - /**> \endcond MOT */
#Ou tout commentaire se trouvant entre un :
# - \if MOT
#et :
# - \endif MOT
#(\ifnot, \else, \elseif sont aussi possibles ) ne sera
#documenté que si MOT est l'une des valeurs de
#ENABLED_SECTIONS.
#On peut par exemple définir un alias
#english=\if english pour afficher une documentation en
#fonction de la langue.
INTERNAL DOC ==> #Un commentaire se trouvant entre un \internal et un
#\endinternal (ou fin de bloc de commentaire) ne sera
#pas documentée si INTERNAL_DOCS est désactivé.
COPIER DOCUMENTATION ==>#\copybrief MEMBRE est remplacé par la même brève
#documentation que celle de MEMBRE.
#\copydetails MEMBRE est la même chose pour la
#documentation détaillée, et \copydoc pour les deux.
LINKING ==> #Des liens sont automatiquement créés pour des mots dans
#les commentaires faisant référence à d'autres éléments
#internes ou externes, tels que :
# - des URL, avec un protocole au début (on peut sinon
# écrire <a href="LIEN">TEXTE</a>)
# - tout membre, précédé de son namespace
# (dont global ::), sauf s'il est dans le même
# namespace ou classe. A noter que :
# - s'il ne voit pas qu'il s'agit d'un membre à
# lier, rajouter un # ou \ref devant. Cela peut
# arriver pour :
# - les classes constituées que de minuscules
# - les fichiers ne contenant pas de '.'
# - les commentaires de typedefs, enums, macros
# pointant vers des membres du même namespace
# - faire précéder le membre d'un % enlève le lien
# - l'objet lié doit lui-même être documenté.
# - le NOM d'un module (remplacé alors par son nom dans
# la documentation)
#On peut faire qu'un link soit remplacé par un texte
#pointant vers ce link sous la forme :
# - \link LINK TEXTE \endlink
#Une section "See also :" peut aussi être créé dans tout
#commentaire (il y en a souvent dans les commentaires de
#fonctions) en commençant par \sa ou \see
MODULES ==> #Pour diviser la documentation en différents modules,
#on peut entourer la déclaration de membres/classes/
#etc. (peut être fait plusieurs fois, et autour de
#plusieurs déclarations (souvent un fichier entier))
#de :
# /** \addtogroup NOM [STRING]
# * @{
# */
#et :
# /** @}*/
#Où NOM est le nom du module dans les commentaires,
#et STRING (doit être spécifié une seule fois) dans la
#documentation générée.
#On peut aussi pour un seul membre mettre dans ses
#commentaires (où NOM est celui du module) :
# \ingroup NOM
#
#On peut créer des sous-modules. Il faut alors fait
#écrire l'un de ses \addtogroup sous la forme :
# /** \addtogroup NOM_SOUS_MODULE [STRING]
# * \ingroup NOM_MODULE
# * @{
# */
#
#Les classes, files et namespaces peuvent être dans
#plusieurs modules, mais pas leurs membres.
GROUPING ==> #Pour créer un groupe au sein des membres d'une même
#classe, entourer ces membres de :
# /** \name NOM_GROUPE
# * Commentaires sur le groupe
# */
# /**@{*/
#et :
# /**@}*/
#Cela créer un groupe un part, n'indiquant plus les
#sous-groupes par défaut de membres publiques, privés,
#etc., à moins que tous les membres aient le même
#accès (cette dernière condition étant désactivée si
#la classe (et non le groupe) est commentée avec un
#\nosubgrouping, ou si SUBGROUPING est désactivé)
#Si le premier membre d'un tel groupe est commenté,
#mais pas les autres, et que l'option
#DISTRIBUTE_GROUP_DOC est activée, ces derniers
#reçoivent les mêmes commentaires.
┌────────────────────┐
│ BLOCS SPECIAUX │
└────────────────────┘
DEPRECATED, BUGS, #Mettre un \deprecated dans un commentaire fait que la
TODO, TESTS ==> #suite sera affiché dans un bloc "Deprecated". Ces
#commentaires peuvent par ailleurs ne pas être générés
#si GENERATE_DEPRECATEDLIST est désactivé. De plus une
#section regroupant les deprecated est crée.
#Il y a également la même chose avec :
# - \todo et GENERATE_TODOLIST
# - \test et GENERATE_TESTLIST
# - \bug et GENERATE_BUGLIST
#On peut aussi créer sa propre liste avec :
# - \xrefitem MOT "TITRE" "TITRE_LISTE"
#MOT est la clef (comme todo, etc.), TITRE ce qui est
#affiché comme titre du bloc, TITRE_LISTE le titre de
#la liste répertoriant les différentes occurences de
#la clef. On peut mettre un alias à cela pour rendre
#cela plus simple :
# - ALIASES += "\xrefitem MOT \"TITRE\" \"TITRE_LIST\""
ATTENTION, AUTEUR, #Tous les blocs qui suivent ne font que rajouter un
EXCEPTIONS, ... ==> #titre au dessus d'un bloc (le texte qui suit) :
# - \remark
# - \attention
# - \warning
# - \author
# - \version
# - \since (depuis version...)
#\note et \par sont spéciaux :
# - ils sont indentés.
# - \note est précédé d'une barre verticale
# - \par peut être suivi d'un titre personnalisé.
DESIGN PAR CONTRACT ==> # - \post (post-condition)
# - \pre (pre-condition)
# - \invariant
# - \exception
# - \par Side effects
# - \par Time complexity
OVERLOADING ==> #\overload est remplacé par un texte par défaut
#indiquant que la fonction ne fait de plus que sa
#version overloadée ci-dessus.
┌─────────────────────────────┐
│ GERER CE QUI EST GENERE │
└─────────────────────────────┘
GENERATE_HTML #|Génère la documentation HTML
GENERATE_LATEX #|Génère la documentation Latex, à partir desquels on
#peut créer des fichiers .ps et .pdf
GENERATE_MAN #||Génère les man pages
GENERATE_XML #||Génère la documentation en XML, que l'on peut
#parser ensuite pour créer son propre output.
GENERATE_ECLIPSEHELP #||Génère un plugin de documentation pour Eclipse. Il
#faut désigner un ECLIPSE_DOC_ID, et mettre le
#répertoire créé dans les plugins d'Eclipse.
ECLIPSE_DOC_ID #Nom du plugin Eclipse, par exemple com.company.project
EXTRACT_ALL #|Extrait tous les membres (sauf static), même non
#commentés.
HIDE_UNDOC_MEMBERS #||Si EXTRACT_ALL désactivé, n'affiche pas les membres
#non documentés
HIDE_UNDOC_CLASSES #||Même chose pour les classes.
EXTRACT_PRIVATE #||Si cette option (quel que soit l'état d'EXTRACT_ALL,
#et le fait qu'ils soient commentés ou non), les membres
#privés sont affichés, sinon non.
EXTRACT_STATIC #||Si cette option est activée, les membres statics non
#affichés car EXTRACT_ALL au parce que non commentés
#sont quand même affichés.
EXTRACT_LOCAL_CLASSES #|Si désactivé, les classes déclarées dans les sources,
#mais pas dans les headers, ne sont pas documentées.
EXTRACT_ANON_NSPACES #||Si désactivé, les membres d'anonymous namespaces ne
#sont pas affichés.
INLINE_INHERITED_MEMB #||Affiche aussi les membres obtenus par héritage.
HIDE_FRIEND_COMPOUNDS #||N'affiche pas les déclaration de friendship
HIDE_IN_BODY_DOCS #||N'affiche pas les commentaires se trouvant dans le
#corps des fonctions.
HIDE_SCOPE_NAMES #||N'affiche pas les namespaces et class-scropes
#(CLASS::)
INLINE_INFO #|Affiche le mot "[inline]" à côté des commentaires
#détaillés d'une fonction inline.
SHOW_NAMESPACES #|Affiche l'onglet Namespaces.
SHOW_FILES #|Affiche l'onglet Files.
SHOW_DIRECTORIES #||Affiche un onglet Directories montrant la hierarchie
#des répertoires du projet.
ALPHABETICAL_INDEX #|Affiche un index alphabétique des classes et
#namespaces.
COLS_IN_ALPHA_INDEX #Nombre de colonnes de l'index alphabétique
IGNORE_PREFIX #Préfixe ignoré par l'index alphabétique (namespace,
#etc.)
SHOW_USED_FILES #|Affiche le fichier dont a été une classe tout en bas.
SORT_MEMBER_DOCS #|Trie alphabétiquement les fichiers, membres, etc. ou
#non (selon l'ordre de déclaration)
SORT_BRIEF_DOCS #||Trie alphabétiquement les brefs commentaires.
SORT_GROUP_NAMES #||Trie alphabétiquement les groupes de membres.
SORT_BY_SCOPE_NAME #||Trie alphabétiquement les classes en prenant en
#compte leur scope (namespaces, etc.)
SORT_MEMBER_CTORS_1ST #||Met les constructors et destructors au début dans le
#tri.
OPTIMIZE_OUTPUT_FOR_C #||A définir si le projet est fait uniquement en C.
OPTIMIZE_OUTPUT_JAVA #||Même chose pour Java
OPTIMIZE_FOR_FORTRAN #||Même chose pour Fortran
OPTIMIZE_OUTPUT_VHDL #||Même chose pour VHDL
BUILTIN_STL_SUPPORT #||Affiche différemment la collaboration avec la STL.
CPP_CLI_SUPPORT #||A définir pour prendre en charge les macros affreuses
#écrite en C++/CLI M$.
BRIEF_MEMBER_DESC #|Affiche les commentaires brefs en début de page
REPEAT_BRIEF #|Affiche les commentaires brefs avant les commentaires
#détaillés.
FULL_PATH_NAMES #|Affiche le chemin relatif/absolu complet dans la
#liste des fichiers et des répertoires et non seulement
#le basename.
STRIP_FROM_PATH #Avec FULL_PATH_NAMES, supprime le début du chemin s'il
#correspondant à VAL (par défaut le même qu'INPUT)
STRIP_FROM_INC_PATH #Même chose, mais pas dans la liste des fichiers, mais
#dans les endroits indiquant les headers à inclure.
SHORT_NAMES #||Raccourcit les noms de fichiers trop longs pour des
#vieux systèmes.
SEPARATE_MEMBER_PAGES #||Affiche les desciptions détaillés des membres des
#classes/namespaces/etc. non sur la même page mais sur
#une page à eux.
TYPEDEF_HIDES_STRUCT #||Une struct, class, union ou enum ayant un typedef est
#documenté sous le nom de ce typedef comme un seul
#objet et non deux objets séparés.
ENUM_VALUES_PER_LINE #Nombre de VAL d'un enum par ligne dans la description
#brève de l'enum.
┌───────────────────┐
│ PREPROCESSING │
└───────────────────┘
doxygen -d Preprocessor #Imprime tous les fichiers qui seront lus par Doxygen,
#après preprocessing (dont INPUT_FILTER). Il vaut mieux
#alors désactiver les warnings, et mettre en QUIET.
INPUT_FILTER #VAL est "PROGRAMME". Doxygen utilisera non pas chaque
#FILE tel quel, mais le résultat de chaque PROGRAMME
#FILE. PROGRAMME peut par exemple permettre de faire
#du preprocessing à la main.
FILTER_PATTERNS #Comme FILE_PATTERNS, mais pour INPUT_FILTER.
FILTER_SOURCE_FILES #||INPUT_FILTER est aussi utilisé pour les codes sources
#générés dans la documentation (dans la liste des
#fichiers)
FILTER_SOURCE_PATTERNS #Comme FILE_PATTERNS, mais pour FILTER_SOURCE_FILES.
ENABLE_PREPROCESSING #|Extrait aussi les #define et effectue les #if, etc.
MACRO_EXPANSION #||Avec ENABLE_PREPROCESSING, affiche dans la valeur
#des macros et non leur nom (expansion).
PREDEFINED Les VAL sont une suite de "MACRO[(...)[=VAL]]" qui
#sont #define avant toute preprocessing.
#Il faut par ailleurs le faire pour certains #define
#faits automatiquement par le compiler, par exemple
#__cplusplus.
#Si = est précédé de :, sous la forme donc par exemple
#MACRO:=VAL, si VAL possède lui-même une macro, elle
#n'est pas substituée.
EXPAND_ONLY_PREDEF #||Si MACRO_EXPANSION est activée, l'expansion n'a lieu
#que :
# - pour les macros dont le nom est dans
# EXPAND_AS_DEFINED
# - pour les macros définies via PREDEFINED.
EXPAND_AS_DEFINED #Cf ci-dessus.
SKIP_FUNCTION_MACROS #|Supprime, pendans le preprocessing, toute ligne ne
#contenant que des uppercase et ne se terminant pas par
#un point-virgule, c'est-à-dire utilisant une macro déjà
#définie, et qui en général est confuse pour une
#documentation.
INITIALIZERS ==> #La valeur assignée à une macro ou la valeur assignée à
#l'initialisation d'une variable peut être non
#documentée si commentée avec \hideinitializer
┌────────────┐
│ AUTRES │
└────────────┘
INTERNATIONALISATION ==>#OUTPUT_LANGAGE Modifie la langue des éléments du menu
#créé, et des titres, indications, etc. créés
#automatiquement.
#Valeurs possibles : English, French, Chinese, Spanish,
#German, Italian, Japanese, Afrikaans, Arabic,
#Brazilian, Catalan, Croatian, Czech, Danish, Dutch,
#Finnish, Greek, Hungarian, Korean, Lithuanian,
#Norwegian, Persian, Polish, Portuguese, Romanian,
#Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene,
#Swedish, and Ukrainian.
#\~[LANGUE] fait que la suite ne sera documentée que
#si LANGUE est l'OUTPUT_LANGAGE (ou pour tout
#OUTPUT_LANGAGE si LANGUE n'est pas précisé)
#DOXYFILE_ENCODING modifie l'encodage (par ex. UTF-8)
ALIASES #Définit des aliases. Chaque valeur prend la forme :
# - ALIAS[{CHIFFRE}]="COMMANDES"
#Où, pour exécuter COMMANDES, on peut alors faire :
# - \ALIAS
#ou @ALIAS.
#Par exemple :
# - \l{1}="\ref \1"
#COMMANDES peut contenir des newlines \n
#CHIFFRE désigne le nombre d'argument d'ALIAS
#(overloadable), et où ALIAS sera alors invoqué sous
#la forme :
# - \ALIAS ARGS...
#Et où les arguments seront définis \1, \2, etc. dans
#COMMANDES.
NE M'INTERESSE PAS ==> # - Génération de documentation HTML compilée Windows
# .chm : GENERATE_HTMLHELP, et 6 options liées.
# - Génération de documentation "doc set" Mac OS X :
# GENERATE_DOCSET, et 4 options liées aux DOCSET
# - Génération de QtHelp Project (.qhp) : GENERATE_QHP,
# et 7 options liées.
# - Génération en .rtf : GENERATE_RTF, et options
# liées
# - Options ABBREVIATE_BRIEF, ALWAYS_DETAILED_SEC,
# SIP_SUPPORT, IDL_PROPERTY_SUPPORT, INHERIT_DOCS,
# SYMBOL_CACHE_SIZE, FORCE_LOCAL_INCLUDES,
# FILE_VERSION_FILTER
┌────────────────┐
│ JAVASCRIPT │
└────────────────┘
js2doxy.pl #Perl command line, which generates C++ Doxygen comments from JavaScript commented code.
#Toujours mettre type, e.g. \fn
#Nouveau type :
# - \ctor : pour constructors
# - \tparam TYPE ARG COMMENT : type d'un argument
# - \treturn VAR COMMENT : type d'une return value
# - \type TYPE : type d'une variable
js2doxy.pl INPUT.js
> OUPUT.cpp
┌─────────────┐
│ A FAIRE │
└─────────────┘
- tags externes, doxytag, installdox, EXT_LINKS_IN_WINDOWS
- blocs de commentaires spécial Python, Fortran, VHDL (apprendre ces langages)
- Plus de possibilités avec LATEX, les blocs \f$ ; faire doxygen -w latex
header.tex doxygen.sty, etc. ; Output Latex, options pour, .pdf, etc.
(apprendre Latex)
- Output XML + 3 options liées (apprendre XML)
- Autogen : 1 option (apprendre Autogen)