2016-11-20 3 views
0

das folgende Makro Definition Gegeben:Warum schneidet Doxygen ein parametrisiertes Makrofunktionsattribut ab?

#if defined(__GNUC__) && __GNUC__ >= 4 
#define WL_PRINTF(x, y) __attribute__((__format__(__printf__, x, y))) 
#else 
#define WL_PRINTF(x, y) 
#endif 

Und die folgende Verwendung als gcc Funktion Attribut gegeben:

typedef void (*wl_log_func_t)(const char *, va_list) WL_PRINTF(1, 0); 

Doxygen scheint zu Kürzen Teil der Funktion Attribut, wie diese erscheinen:

enter image description here

Und:

enter image description here

Doxygen auch sie in ähnlicher Weise in anderen Fällen abschneidet, wo ich das Makro-Funktion Attribut zu verwenden, so dass das Problem scheint konsistent (es geht nicht darum, das ein (typedef ist). Es dokumentiert das Makro selbst in Ordnung.

Meine .doxygen config:

PROJECT_NAME   = "Wayland" 
PROJECT_NUMBER   = 1.12.90 
OUTPUT_DIRECTORY  = ../../doc/doxygen 
JAVADOC_AUTOBRIEF  = YES 
TAB_SIZE    = 8 
QUIET     = YES 
HTML_TIMESTAMP   = YES 
GENERATE_LATEX   = NO 
MAN_LINKS    = YES 
PREDEFINED    = WL_EXPORT= 
MACRO_EXPANSION  = YES 
EXPAND_ONLY_PREDEF  = YES 
DOT_MULTI_TARGETS  = YES 
ALIASES    += comment{1}="/* \1 *<!-- -->/" 
OPTIMIZE_OUTPUT_FOR_C = YES 
EXTRACT_ALL   = YES 
EXTRACT_STATIC   = YES 
GENERATE_HTML   = NO 
GENERATE_XML   = NO 
GENERATE_MAN   = NO 

Gibt es eine nette Art und Weise Doxygen in nicht Kürzen dies zu betrügen?

Antwort

0

Dies scheint eine Einschränkung (ausgesprochen "Bug") in Doxygen, die es zu kürzen verursacht. Die Alternative besteht darin, die Generierung des Funktionsattributs vollständig zu entfernen, indem das Makro zur PREDEFINED-Konfiguration hinzugefügt wird.

Verwandte Themen