Любая идея, почему Doxygen находит version.h.in, но не анализирует его как C или C ++? - PullRequest
0 голосов
/ 11 июня 2019

У меня есть много проектов с файлом version.h.in, который CMake преобразует для динамического добавления текущей версии проекта.

Вот пример version.h.in:

#define    LPP_VERSION_MAJOR   @LPP_VERSION_MAJOR@
#define    LPP_VERSION_MINOR   @LPP_VERSION_MINOR@
#define    LPP_VERSION_PATCH   @LPP_VERSION_PATCH@
#define    LPP_VERSION_BUILD   @LPP_VERSION_BUILD@
#if LPP_VERSION_PATCH
#define    LPP_VERSION_STRING  "@LPP_VERSION_MAJOR@.@LPP_VERSION_MINOR@.@LPP_VERSION_PATCH@"
#else
#define    LPP_VERSION_STRING  "@LPP_VERSION_MAJOR@.@LPP_VERSION_MINOR@"
#endif

int             get_major_version();
int             get_release_version();
int             get_patch_version();
char const *    get_version_string();

Так или иначе, Doxygen 1.8.13 ничего не находит в этом файле.Похоже, это игнорируется.

Я использую EXTENSION_MAPPING и FILE_PATTERNS, но, похоже, это не помогает:

EXTENSION_MAPPING      = h.in=C++ \
                         hpp.in=C++

FILE_PATTERNS          = *.h \
                         *.h.in \
                         *.hpp \
                         *.hpp.in \
                         *.cpp \
                         *.c

Могу ли я что-то упустить?

Обратите внимание, что файл version.h.in появляется на выходе Doxygen.Так что FILE_PATTERNS работает как положено.Тем не менее, он ничего не обнаруживает в файле.Например, у меня есть запись \file, например, так:

/** \file
 * \brief This library version information.
 *
 * ...snip...
 */

Краткое и полное описания файлов игнорируются.

ВАЖНОЕ ПРИМЕЧАНИЕ: я пытаюсь получить version.h.inфайл.Я знаю, что вместо этого я мог бы рассказать Doxygen о version.h, но тогда в документации изменилась бы версия, а это не то, что мне нужно.

Обновление

Как упомянуто @anarthal в комментарии,похоже, проблема в том, что EXTENSION_MAPPING требуется одно расширение.Не двойное расширение.

Я подал отчет об ошибке на github.

Для моего проекта я могу фактически использовать .in (то есть in=C++), так как ятолько C ++, но я надеюсь, что это будет исправлено в какой-то момент.

...