Вопрос

Doxygen немного медленный — обработка всего моего проекта занимает около пары минут, поэтому для небольших дополнительных изменений это дольше, чем фактическая сборка остальной части моего кода.Существуют тысячи файлов без какой-либо документации, поэтому я думаю, что большую часть времени он тратит на их обработку.Есть ли способ заставить его пропускать файлы без какой-либо документации?

А как насчет того, чтобы он обрабатывал только измененные файлы?

Это было полезно?

Решение

Из документации Doxygen:

Как я могу исключить все тестовые каталоги из моего дерева каталогов?

Проще говоря, поместите такой шаблон, как этот, в файл конфигурации:

EXCLUDE_PATTERNS = /тест/

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

Другие советы

Я обнаружил, что отключение опции SEARCH_INCLUDES имело большое значение.Он просматривал весь SDK платформы и включал пути для компилятора, которые в любом случае не были задокументированы и не появлялись в сгенерированной документации.

Существуют параметры DOT_NUM_THREADS, которые могут повысить производительность на многоядерных машинах.К сожалению, сам doxygen является однопоточным.

Другой подход заключается в том, чтобы организовать ваш код в модули, запустить для каждого модуля отдельный экземпляр doxygen и связать полученные теги вместе: http://www.doxygen.nl/manual/external.html

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

Возможно, решением было бы организовать проект таким образом, чтобы никогда не изменявшиеся файлы принадлежали одному модулю, который исключен из области действия Doxygen и документация которого уже доступна.Тогда можно было бы указать Doxygen связать вновь созданную документацию с существующей документацией модуля.

Идя дальше, можно было бы также заставить Doxygen работать модуль за модулем, обрабатывая только измененные модули и документацию верхнего уровня, которая ссылается на всю документацию модуля.

Я не думаю, что запуск Doxygen в обычном цикле разработки — хорошая идея.Наша сборка Doxygen выполняется в рамках обязанностей нашего сервера непрерывной интеграции.

Тем не менее, есть некоторые преимущества запуска doxygen в каждой сборке для обнаружения недостающих документов.Поэтому я бы обрезал конфигурацию doxygen для dev-сборок, удалив диаграммы, и даже прекратил бы Apple импортировать ее в xcode.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top