Question

J'ai actuellement deux #define dans les fichiers c qui désactiver certaines fonctionnalités au matériel pour tester. Cependant, je veux les documenter avec doxygen quand ils ne sont pas définies aussi bien.

Par exemple:

Cela fonctionne bien:

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

Lorsque vous modifiez le #define à #undef, vous obtenez un avertissement doxygen, et il ne se présente pas dans la sortie générée doxygen. Je veux documenter ce #define il est wether définie ou non.

Comment puis-je forcer doxygen à documenter un #undef ???

Était-ce utile?

La solution

les définir dans un fichier d'en-tête qui est inclus uniquement par Doxygen (mis dans un arbre de répertoire distinct de la source principale).

Garde ce fichier d'en-tête en l'enveloppant avec une définition que vous définissez uniquement dans la configuration Doxygen, par exemple:

#ifdef ONLY_FOR_DOXYGEN

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

#endif

J'ai utilisé cette option pour inclure également conditionnellement définitions de classe légère pour des choses comme les classes MFC de base de sorte qu'ils apparaissent comme bases pour la hiérarchie des classes sans avoir à analyser tous les MFC.

Autres conseils

J'ai trouvé un moyen kludgy en ajoutant le #undef sous le #define. De cette façon, il est défini pour Doxygen, mais immédiatement indéfini pour le compilateur.

/// \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

Je tente de comprendre comment configurer SIMULATE_HW_INTERFACE dans le fichier Doxyconfig en utilisant l'option PREDEFINED. Impossible de le faire au travail. Alors, voici ma meilleure solution à ce jour.

Je résolu mon problème avec la documentation compilerflags comme celui-ci dans la principale headerfile:

/**
 * \defgroup flags Compilerflags
 */

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

Cette façon, tout fonctionne très bien: doxygen et la compilation et vous pouvez continuer à spécifier vos drapeaux ... commandline

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top