Pregunta

Actualmente tengo un par de # define en los archivos de C que apagar algunas funciones de hardware para probar. Sin embargo, quiero documentar con doxygen cuando no están definidos también.

Por ejemplo:

Esta bien funciona:

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

Cuando se cambia el # define a #undef, se obtiene una advertencia en doxygen, y que no aparece en el doxygen generada de salida. Quiero documentar esta #define wether está definida o no.

¿Cómo puedo forzar doxygen para documentar un #undef ???

¿Fue útil?

Solución

definirlos en un archivo de cabecera que sólo se incluye por Doxygen (poner en un árbol de directorios separados de la fuente principal).

Guarda a este archivo de cabecera envolviéndolo con una definición que sólo se define en la configuración Doxygen, por ejemplo:

#ifdef ONLY_FOR_DOXYGEN

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

#endif

he utilizado este también condicionalmente incluyen definiciones de clase ligera para cosas como clases base MFC para que aparezcan como bases para la jerarquía de clase sin tener que analizar todas las MFC.

Otros consejos

He encontrado una manera kludgy añadiendo el #undef bajo la #define. De esta manera se define para Doxygen, pero inmediatamente definida para el compilador.

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

Yo estaba tratando de encontrar la manera de SIMULATE_HW_INTERFACE conjunto en el archivo Doxyconfig utilizando la opción predefinida. No se pudo conseguir que funcione. Así que aquí está mi mejor solución hasta ahora.

He resuelto mi problema con la documentación compilerflags como este en el headerfile principal:

/**
 * \defgroup flags Compilerflags
 */

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

De esta manera todo funciona bien: doxygen y compilar y puede seguir especificando sus banderas en la línea de comandos ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top