Domanda

Doxygen è un po 'lento - ci vogliono circa un paio di minuti per elaborare il mio intero progetto, quindi per piccole modifiche incrementali questo è più lungo rispetto alla costruzione del resto del mio codice. Ci sono migliaia di file senza alcuna documentazione, quindi immagino che stia impiegando la maggior parte del tempo a elaborarli. C'è un modo per farlo saltare i file senza alcuna documentazione?

Che ne dici di farlo elaborare solo i file modificati?

È stato utile?

Soluzione

Dalla documentazione di Doxygen:

  

Come posso escludere tutte le directory di test   dalla mia struttura di directory?

     

Metti semplicemente un modello di esclusione come   questo nel file di configurazione:

     

EXCLUDE_PATTERNS = /test/

Quindi, dovresti usare i pattern per escludere i file. È passato molto tempo da quando ho usato Doxygen, ma non ricordo alcuna opzione per elaborare solo i file modificati.

Altri suggerimenti

Ho scoperto che disattivare l'opzione SEARCH_INCLUDES ha fatto una grande differenza. Stava guardando attraverso l'SDK dell'intera piattaforma e includeva percorsi per il compilatore che non erano comunque documentati e non apparivano nella documentazione generata.

Esistono opzioni DOT_NUM_THREADS che possono aumentare le prestazioni su macchine multicore. Sfortunatamente lo stesso doxygen è a thread singolo.

Un altro approccio sarebbe quello di organizzare il codice in moduli eseguiti per ogni modulo un'istanza doxygen separata e collegare insieme i tag risultanti: http://www.doxygen.nl/manual/external.html

Doxygen è bravo a trovare connessioni tra i file, modificate o meno. Ma Doxygen non ricorda le informazioni sui file invariati, quindi deve elaborare l'intera base di codice ogni volta.

Potrebbe essere una soluzione quella di organizzare il progetto in modo tale che i file mai modificati appartengano a un modulo che è escluso dall'ambito di Doxygen e la cui documentazione è già disponibile. Quindi sarebbe possibile dire a Doxygen di collegare la documentazione appena costruita a questa documentazione del modulo esistente.

Andando oltre, sarebbe anche possibile far funzionare Doxygen modulo per modulo, elaborando solo i moduli modificati e una documentazione di livello superiore che si collega a tutte le documentazioni dei moduli.

Non credo che avere Doxygen su un normale ciclo di sviluppo sia una buona idea. La nostra build Doxygen funziona come parte delle responsabilità del nostro server di integrazione continua.

Detto questo, ci sono alcuni benefici nell'esecuzione di doxygen per ogni build per catturare documenti mancanti. Quindi taglierei la configurazione di doxygen per le build di sviluppo rimuovendo i diagrammi e anche smetterei di importarlo in xcode.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top