Question

Doxygen est un peu lent. Le traitement de tout mon projet prend environ deux minutes. Par conséquent, pour de petites modifications incrémentielles, cela prend plus de temps que de créer le reste de mon code. Il y a des milliers de fichiers sans aucune documentation, alors je suppose qu'il passe la majeure partie de son temps à les traiter. Existe-t-il un moyen de faire en sorte que des fichiers soient ignorés sans aucune documentation?

Pourquoi ne pas le faire pour ne traiter que les fichiers modifiés?

Était-ce utile?

La solution

D'après la documentation Doxygen:

  

Comment puis-je exclure tous les répertoires de test   de mon arborescence de répertoires?

     

Mettez simplement un motif d'exclusion comme   ceci dans le fichier de configuration:

     

EXCLUDE_PATTERNS = / test /

Vous devriez donc utiliser des modèles pour exclure des fichiers. Cela fait longtemps que je n’utilise pas Doxygen, mais je ne me souviens d’aucune option permettant de ne traiter que les fichiers modifiés.

Autres conseils

J'ai constaté que désactiver l'option SEARCH_INCLUDES faisait une grande différence. Il parcourait l’ensemble du SDK de la plate-forme et incluait des chemins pour le compilateur qui n’étaient de toute façon pas documentés et ne figureraient pas dans la documentation générée.

Il existe une option DOT_NUM_THREADS qui peut augmenter les performances sur les ordinateurs multicœurs. Malheureusement, le doxygen lui-même n’est qu’un seul thread.

Une autre approche consisterait à organiser votre code en modules exécutant pour chaque module une instance distincte de doxygen et à relier les balises résultantes: http://www.doxygen.nl/manual/external.html

Doxygen est efficace pour trouver des connexions entre fichiers, qu’elles soient modifiées ou non. Mais Doxygen ne se souvient pas des informations sur les fichiers non modifiés, il doit donc traiter le code entier à chaque fois.

Une solution consisterait peut-être à organiser le projet de telle sorte que les fichiers jamais modifiés appartiennent à un module exclu de la portée de Doxygen et dont la documentation est déjà disponible. Il serait alors possible de dire à Doxygen de lier la documentation récemment construite à la documentation de ce module existant.

Pour aller plus loin, il serait également possible de créer Doxygen en exécutant module par module, en ne traitant que les modules modifiés et une documentation de niveau supérieur qui soit liée à toutes les documentations de modules.

Je ne pense pas qu’avoir Doxygen sur un cycle de développement normal soit une bonne idée. Notre compilation Doxygen s’exécute dans le cadre des responsabilités de notre serveur d’intégration continue.

Cela dit, l’exécution de chaque version de doxygen présente certains avantages, afin d’attraper les documents manquants. Donc, je couperais la configuration de doxygen pour les constructions dev supprimant les diagrammes, et arrêterais même de l'importer dans xcode.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top