Да, это возможно. Документация Doxygen гласит:
Для документирования глобальных объектов (функций, typedefs, enum, макросов и т. Д.),
Вы должны документировать файл, в котором они определены. Другими словами,
должно быть хотя бы
/*! \file */
или
/** @file */
строка в этом файле.
Вы можете использовать @defgroup
, @addtogroup
и @ingroup
для помещения связанных элементов в один и тот же модуль, даже если они появляются в отдельных файлах (подробности см. В документации здесь ). Вот минимальный пример, который работает для меня (с помощью Doxygen 1.6.3):
Doxyfile
# Empty file.
test.h
/** @file */
/**My Preprocessor Macro.*/
#define TEST_DEFINE(x) (x*x)
/**
* @defgroup TEST_GROUP Test Group
*
* @{
*/
/** Test AAA documentation. */
#define TEST_AAA (1)
/** Test BBB documentation. */
#define TEST_BBB (2)
/** Test CCC documentation. */
#define TEST_CCC (3)
/** @} */
foo.h
/** @file */
/**
* @addtogroup TEST_GROUP
*
* @{
*/
/** @brief My Class. */
class Foo {
public:
void method();
};
/** @} */
bar.h
/** @file */
/**
* @ingroup TEST_GROUP
* My Function.
*/
void Bar();
В этом случае документация TEST_DEFINE
появляется в записи Test.h на вкладке Файлы в выводе HTML, а определения TEST_AAA
и т. Д. Отображаются в Группа испытаний на вкладке Модули вместе с классом Foo
и функцией Bar
.
Следует отметить, что если вы поставите имя файла после команды @file
, например:
/** @file Test.h */
тогда это должно соответствовать фактическому имени файла. Если этого не произойдет, документация для элементов в файле не будет создана.
Альтернативное решение, если вы не хотите добавлять @file
команды, это установить EXTRACT_ALL = YES
в вашем Doxyfile.
Надеюсь, это поможет!