Ответ 1
Да, это возможно. Документация Doxygen гласит:
Для документирования глобальных объектов (функций, typedefs, enum, макросов и т.д.) Необходимо документировать файл, в котором они определены. Другими словами, должен быть хотя бы
/*! \file */
или
/** @file */
строка в этом файле.
Вы можете использовать @defgroup
, @addtogroup
и @ingroup
для помещения связанных элементов в один и тот же модуль, даже если они появляются в отдельных файлах (подробности см. В документации здесь). Вот минимальный пример, который работает для меня (используя Doxygen 1.6.3):
Доксифайл:
# 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.
Надеюсь, это поможет!