Ответ 1
Файлы тегов обычно подходят, если
- у вас есть несколько логически когерентных исходных файлов (пусть их называют) и
- вы знаете зависимости между компонентами, например. компонент A использует компоненты B и C, а компонент B использует только C и
- Хорошо (или даже желательно), чтобы индексные файлы (например, список файлов/классов/функций) были ограничены одним компонентом.
- вас интересует вывод HTML.
Файл тега - это всего лишь структурированный список символов со ссылками на расположение в документации. Файлы тегов позволяют doxygen делать ссылки из документации одного компонента на другую.
Это двухэтапный процесс:
-
Сначала вы запускаете doxygen для каждого компонента для создания файла тега для этого компонента. Вы можете сделать это, отключив весь вывод и используйте GENERATE_TAGFILE. Поэтому для компонента A, Doxyfile.tagonly будет иметь следующие настройки:
GENERATE_HTML = NO GENERATE_LATEX = NO GENERATE_RTF = NO GENERATE_MAN = NO GENERATE_TAGFILE = compA.tag
Вы заметите, что запуск doxygen происходит очень быстро.
-
Второй шаг - создать фактическую документацию. Для компонента A вам нужен Doxyfile, который включает файлы тегов компонентов B и C, так как мы определили A, зависит от этих компонентов.
GENERATE_HTML = YES GENERATE_LATEX = NO GENERATE_RTF = NO GENERATE_MAN = NO TAGFILES = path/to/compB/compB.tag=path/to/compB/htmldocs \ path/to/compC/compC.tag=path/to/compC/htmldocs
Используя этот подход, я смог создать документацию для 20M + строк кода, распределенных более чем 1500 + компонентами менее чем за 3 часа на стандартном настольном ПК (Core i5 с 8 ГБ оперативной памяти и 64-битной Linux), включая просмотр исходного кода, графики полного вызова, и диаграммы в стиле UML всех структур данных. Обратите внимание, что первый шаг занял только 10 минут.
Для этого я создал script для создания Doxyfile для каждого компонента на основе списка компонентов и их прямых зависимостей. На первом этапе я запускаю 8 экземпляров doxygen параллельно (используя http://www.gnu.org/s/parallel/). На втором этапе я запускаю 4 экземпляра doxygen параллельно.
Подробнее о файлах тегов см. http://www.doxygen.org/external.html.