Допустим, у меня есть:
#define MY_MACRO(FOO) void FOO();
MY_MACRO(hi);
MY_MACRO(hey);
MY_MACRO(hello);
#undef MY_MACRO
Я хочу, чтобы макросы были расширены с помощью doxygen, что я могу сделать, настроив его правильно:
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
EXPAND_AS_DEFINED = MY_MACRO
Это позволяетмне увидеть расширенный результат макросов как документированные API в выводе doxygen (функции hi
, hey
и hello
).Пока все хорошо.Но проблема в том, что Doxygen также документирует MY_MACRO
как определение.Однако я не хочу, чтобы клиенты API знали о MY_MACRO
, так как он не определен и ими не может пользоваться, и он не должен быть им виден.
У меня есть EXTRACT_ALL = YES
в моей конфигурации doxygen, и я не хочу это менять.Я попробовал следующую конфигурацию без успеха:
PREDEFINED = DOXYGEN_SKIP_FOR_USERS
Со следующим кодом:
#ifndef DOXYGEN_SKIP_FOR_USERS
#define MY_MACRO(FOO) void FOO();
#endif /*DOXYGEN_SKIP_FOR_USERS*/
MY_MACRO(hi);
MY_MACRO(hey);
MY_MACRO(hello);
#undef MY_MACRO
Это скрывает документацию по определению, но, конечно, предотвращает расширение, поэтому я делаюне получить функции, документированные в сгенерированном API.
Буду признателен за вашу помощь.