Doxygen: как использовать EXPAND_AS_DEFINED - PullRequest
3 голосов
/ 21 апреля 2011

Я определил следующие макросы и пытаюсь расширить их при создании документации.

#define GETSET(param) \
bool CYNOVE_Enable##param(postproc_ctx_t ctx, bool enable)  \
{                                                           \
 struct postproc_ctx * c;                                   \
 c = (struct postproc_ctx *)ctx;                            \
 c->do_##param = enable?1:0;                                \
 return TRUE;                                               \
}                                                           \

В Doxygen, если я использую:

MACRO_EXPANSION = YES

Затем макрос расширяется, когда я его использую. Однако, если установлено:

MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
EXPAND_AS_DEFINED = GETSET

макрос не расширен

Так как я думаю, что один из ответов неверен, но комментарий просто отстой для любого длинного объяснения, позвольте мне добавить, как я думаю, это должно работать.

Согласно документации по Doxygen и этой ссылке , PREDEFINED и EXPAND_AS_DEFINED служат различным целям. Я понял, что EXPAND_AS_DEFINED используется для выборочного расширения данного макроса «как он был определен в исходном коде», отсюда и название, а PREDEFINED здесь, чтобы дать Doxygen значение макроса.

1 Ответ

0 голосов
/ 21 апреля 2011

Я думаю, что, как следует из названия, он будет расширять только предопределенные макросы, если так выразиться. Вы должны поставить что-то вроде

PREDEFINED += GETSET(param)="..."

в вашем файле Doxygen.

Кстати, так как вы используете bool:

  • enable?1:0 должно быть просто enable, bool - это не что иное, как 0 и 1 в C.
  • TRUE должно быть true
...