2016-05-02 2 views
7

Я хочу создать документацию только для кода с комментариями doxygen. Я создал Doxyfile через doxygen V 1.8.9.1 и настроил его на выходе только xml и скрыть все недокументированные код:.Возможно ли, чтобы doxygen исключил недокументированные функции из сгенерированного xml?

GENERATE_HTML   = NO 
GENERATE_LATEX   = NO 
GENERATE_XML   = YES 
HIDE_UNDOC_MEMBERS  = YES 
HIDE_UNDOC_CLASSES  = YES 

После этого я создал простой c заголовок test.h с одним документированной и один не документированы функция декларации:

void foo(int a); 

/** 
* "bar" function description 
* @param b sample param 
*/ 
void bar(int b); 

, выполнив doxygen я бы ожидать только bar документации, которая будет включена в результате xml. К сожалению, создается документация для обеих функций. Можно ли генерировать документацию только для кода с комментариями doxygen или для вывода xmldoxygen всегда будет включать все, независимо от настроек?

ответ

2

Перед тем как читать дальше, убедитесь, что EXTRACT_ALL установлено на NO.

Я не поклонник следующего решения, но оно действительно работает. Использование doxygens препроцессор

#ifdef PROJECT_NO_DOC 
void foo(int a); 
#endif /* PROJECT_NO_DOC */ 

/** 
* * "bar" function description 
* * @param b sample param 
* */ 
void bar(int b); 

Примечание, в их документации вы должны установить предопределенный макрос, но по крайней мере в моей версии Doxygen это не требовалось. Их документы указать, чтобы сделать это таким образом set a predefined macro in the config to do it for you

#ifndef DOXYGEN_SHOULD_SKIP_THIS 

/* code that must be skipped by Doxygen */ 

#endif /* DOXYGEN_SHOULD_SKIP_THIS */ 

вокруг блоков, которые должны быть скрыты и поставить:

PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS 

в конфигурационном файле, то все блоки должны быть пропущены Doxygen, пока

ENABLE_PREPROCESSING = YES 

Существуют и другие методы, но они имеют дополнительные ограничения, т. Е. Чтобы в ваших общедоступных документах не отображался статический метод, вы можете установить EXTRACT_STATIC до NO.