Frage

Im Moment habe ich ein paar #define in c-Dateien, die aus einigen Funktionen Hardware drehen den Zweck zu testen. Allerdings möchte ich sie mit doxygen dokumentieren, wenn sie auch nicht definiert sind.

Zum Beispiel:

Dies funktioniert:

/// \def SIMULATE_SOME_HW_INTERFACE
/// Define this when you want to simulate HW interface.
#define SIMULATE_SOME_HW_INTERFACE

Wenn Sie die #define zu #undef ändern, wird eine Warnung in doxygen erhalten, und es zeigt nicht in der doxygen erzeugten Ausgabe auf. Ich mag diese #define dokumentieren, ob es definiert ist oder nicht definiert.

Wie kann ich Dokument erzwingen doxygen ein #undef ???

War es hilfreich?

Lösung

definieren sie in einer Header-Datei, die nur von Doxygen (put in einem separaten Verzeichnisbaum von der Hauptquelle) enthalten ist.

Schutz diese Header-Datei, indem es mit einer Umhüllung definieren, dass Sie nur in der Doxygen Setup definieren, zum Beispiel:

#ifdef ONLY_FOR_DOXYGEN

/// \def SIMULATE_SOME_HW_INTERFACE
/// Define this when you want to simulate HW interface.
#define SIMULATE_SOME_HW_INTERFACE

#endif

Ich habe dies bedingt umfassen leichte Klassendefinitionen für Dinge wie Klassen Basis MFC so erscheinen sie als Grundlagen für die Klassenhierarchie, ohne alle MFC zu analysieren.

Andere Tipps

fand ich einen kludgy Weg durch den #undef unter dem #define Zugabe. Auf diese Weise ist es definiert für Doxygen, aber sofort für den Compiler nicht definiert.

/// \def SIMULATE_SOME_HW_INTERFACE
/// Define this when you want to simulate HW interface.
/// Comment out #undef to simulate HW interface
#define SIMULATE_SOME_HW_INTERFACE
#undef  SIMULATE_SOME_HW_INTERFACE

Ich habe versucht, wie man Satz SIMULATE_HW_INTERFACE, um herauszufinden, in der Doxyconfig Datei PREDEFINED Option. Könnte es nicht an der Arbeit. Also hier ist meine beste Lösung so weit.

löste ich mein Problem mit compilerflags wie dies in der Hauptheaderdatei dokumentiert:

/**
 * \defgroup flags Compilerflags
 */

/**
 * \def MY_FLAG
 * \ingroup flags
 * Dokumentation....
 */
#ifndef MY_FLAG
#define MY_FLAG
#undef MY_FLAG
#else
#define MY_FLAG
#endif

Auf diese Weise funktioniert alles einwandfrei: doxygen und Kompilieren und Sie können Ihre Fahnen in Kommandozeile ...

halten Angabe
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top