Оптимальная настройка для Doxygen в большом COM-проекте с несколькими приложениями - PullRequest
5 голосов
/ 16 июня 2010

В системе имеется до 100 проектов VC ++, в каждом из которых есть DLL или EXE. Кроме того, есть много COM-компонентов с IDL и сгенерированными файлами .h / .c.

Что такое «правильный путь» или, по крайней мере, хороший способ организовать это с помощью Doxygen? Один общий докси-проект или один на проект / решение? И как правильно обращаться с COM, который генерировал код и много «пуха», который будет раздувать генерируемые файлы HTML.

Ответы [ 3 ]

1 голос
/ 10 июля 2010

Если вы не хотите, чтобы определенные файлы включались в ваш вывод Doxygen, вы можете использовать директиву EXCLUDE_PATTERNS. Один проект, над которым я работаю, использует

EXCLUDE_PATTERNS = */test/*

чтобы не включать наши классы юнит-тестов в вывод Doxygen. Если у ваших автоматически сгенерированных COM-файлов есть какой-либо шаблон, вы можете исключить их следующим образом.

1 голос
/ 17 июня 2010

У меня еще не было возможности попробовать это, но у doxygen есть возможность ссылка на внешнюю документацию .Я бы, вероятно, делал отдельные проекты и экспериментировал с использованием внешних ссылок.В противном случае, из-за большого количества проектов, которые вы описываете, одна сборка doxygen может занять очень и очень много времени.

0 голосов
/ 07 июля 2010

Я выбрал несколько отдельных сборок Doxygen следующим образом:

  • Сборка библиотеки верхнего уровня для основного приложения, не включая библиотеки
  • Создание отдельных документов "libs" для каждой библиотеки
  • При необходимости создайте "глобальную" сборку Doxygen со всем
  • При желании соберите libs с включенным переключателем «Internal».
  • Весь вывод содержался в одной папке Doxygen (Doxygen\application, Doxyge\Lib1...)
  • Использовать сборку lib верхнего уровня, использующую «главную страницу» со ссылками на функции библиотеки, например <a href="../_Lib1/html/index.html">Lib #1</a>
  • У libs есть главная страница со ссылкой на главную страницу lib верхнего уровня: например href="../../_TopLevel/html/index.html"

Не уверен насчет вещей COM ...

Стив

...