Doxygen: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Migliorata la suddivisione in paragrafi
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti.
Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile Modifica da mobile avanzata Attività per i nuovi utenti Suggerito: aggiungi collegamenti
 
(64 versioni intermedie di 50 utenti non mostrate)
Riga 1:
{{Infobox Software
|nomeNome = Doxygen
|Logo =
|logo = [[Immagine:Doxygen.png]]
|Sviluppatore = Dimitri van Heesch
|screenshot =
|didascaliaUltimaVersione =
|DataUltimaVersione =
|sviluppatore = Dimitri van Heesch
|UltimaVersioneBeta =
|versione_ultimo_rilascio = 1.5.3
|DataUltimaVersioneBeta =
|data_ultimo_rilascio = [[27 luglio]] [[2007]]
|SistemaOperativo = multipiattaforma
|sistema_operativo = [[Multipiattaforma]]
|Linguaggio =
|genere = sistema di documentazione
|Genere = Sistema di documentazione
|licenza = [[licenza GPL]]
|SoftwareLibero = sì
|sito_web = http://www.doxygen.org
|Lingua =
}}
'''Doxygen''' è una [[applicazione (informatica)|applicazione]] per la generazione automatica della [[documentazione (ambito tecnico) |documentazione]] a partire dal [[codice sorgente]] di un generico [[software]]. E'È un progetto [[open source]] rilasciatodisponibile sotto [[licenza GPL]], scritto per la maggior parte da '''Dimitri van Heesch''' a partire dal [[1997]].
 
Doxygen è un sistema [[multipiattaforma]] ([[Windows]], [[Mac OS]], [[Linux]], ecc.) ed opera con i [[linguaggio di programmazione|linguaggi]] [[C++]], [[C (linguaggio)|C]], [[Java (linguaggio di programmazione)|Java]], [[Objective C]], [[Python]], [[Interface Description Language|IDL]] (versioni [[CORBA]] e [[Microsoft]]), [[Fortran]], [[PHP]], [[C sharp|C#]], e [[D (linguaggio di programmazione)|D]]. Nell'ambito del C++, è compatibile con le estensioni [[Qt (toolkit)|Qt]].
 
E'È il sistema di documentazione di gran lunga più utilizzato nei grandi progetti open source in C++. Due esempi per tutti, sono l'adozione di doxygen da parte di [[Adaptive Communication Environment|ACE]] e [[KDE]].
In Java invece, la posizione leader viene meno, in virtù della presenza del concorrente [[Javadoc]].
 
Il sistema estrae la documentazione dai [[commento (informatica)|commenti]] inseriti nel codice sorgente e dalla dichiarazione delle [[struttura dati|strutture dati]].
 
__TOC__
Line 25 ⟶ 26:
==La documentazione prodotta==
 
Il risultato finale è disponibile sotto forma di pagine [[htmlHTML]] oppure nei formati [[Microsoft Compressed HTML Help|CHM]], [[Rich text format|RTF]], [[PDF]], [[LaTeX]], [[PostScript]] o [[man (Unix)|man pages]] di [[Unix]].
Il formato htmlHTML prodotto si giova di un sistema di [[collegamento ipertestuale|hyperlink]] molto curato che permette al lettore una un'agevole navigazione della struttura dei [[File sorgente|file sorgenti]].
La documentazione prodotta riporta anche il [[diagramma delle classi]], nei casi in cui sono presenti relazioni di [[ereditarietà (informatica)|ereditarietà]] tra strutture dati. Grazie all'impiego sinergico di Doxygen con [[GraphVizGraphviz]], è possibile includere nella documentazione diagrammi delle classi per tutti gli altri tipi di relazioni tra strutture dati.
I documenti possono essere generati in diverse lingue, tra cui è compreso l'italiano.
 
Line 37 ⟶ 38:
Riportiamo di seguito un esempio.
 
<sourcesyntaxhighlight lang="Cppcpp">
/**
* The time class represents a moment of time.
Line 47 ⟶ 48:
/**
* Constructor that sets the time to a given value.
* \param timemillis is a numberNumber of milliseconds passed since Jan 1. 1970
*/
Time(int timemillis) {
Line 61 ⟶ 62:
}
};
</syntaxhighlight>
</source>
 
==Il file di configurazione==
==Voci correlate==
[[:en:Comparison of documentation generators]]
 
Doxygen associa ad ogni progetto da documentare un [[file di configurazione]] che contiene le impostazioni da utilizzare per la generazione.
==Collegamenti esterni==
Questo file è un elenco di assegnazioni di opportuni valori a determinati parametri ('''TAG'''). Ogni tag è formato dalla coppia di informazioni
 
<code>NOME_PARAMETRO = VALORE_PARAMETRO</code>
*{{en}} [http://www.stack.nl/~dimitri/doxygen/index.html Sito ufficiale del progetto]
*{{en}} [http://www.codeproject.com/tips/doxysetup.asp 10 Minuti per documentare il codice]
 
analogamente a quanto avviene nei file di configurazione di numerosi altri prodotti open source.
{{Portale|Software libero}}
Un frammento di un esempio del file di configurazione è il seguente:
[[Categoria:Software libero]]
<syntaxhighlight lang="bash">
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
 
PROJECT_NAME = MyProject
[[en:Doxygen]]
 
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the ___location
# where doxygen was started. If left blank the current directory will be used.
 
OUTPUT_DIRECTORY =
 
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written.
 
OUTPUT_LANGUAGE = English
 
# The INPUT tag can be used to specify the files and/or directories that contain
# documented source files. You may enter file names like "myfile.cpp"
# or directories like "/usr/src/myproject".
# Separate the files or directories with spaces.
 
INPUT =
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank the following patterns are tested:
# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp
# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
 
FILE_PATTERNS = *.h *.hh *.idl
 
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
# If left blank NO is used.
 
RECURSIVE = YES
 
# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
# generate HTML output.
 
GENERATE_HTML = YES
 
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank -html- will be used as the default path.
 
HTML_OUTPUT = html
 
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
# generate Latex output.
 
GENERATE_LATEX = NO
 
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank -latex- will be used as the default path.
 
LATEX_OUTPUT = latex
 
</syntaxhighlight>
Come si vede, attraverso il file di configurazione, l'utente stabilisce:
* Il nome del progetto
* la [[directory]] dove verrà generato il materiale (''directory di destinazione'')
* la lingua della documentazione prodotta
* la directory dove si trovano i file sorgente da documentare (''directory di origine'')
* l'estensione dei file di input da considerare come origine
* l'indicazione di ricorsività nella directory di origine
* l'indicazione di generazione del formato HTML
* nome della directory di destinazione per il formato HTML
* l'indicazione di generazione del formato LaTeX
* nome della directory di destinazione per il formato LaTeX
 
Doxygen è in grado di generare un file di configurazione generico con il comando
 
<code>
doxygen -g <config-file>
</code>
 
il file generato automaticamente da doxygen contiene dei parametri generici che l'utente può personalizzare o lasciare invariati.
 
==Utilizzo==
 
Dopo aver installato Doxygen ed aver generato ed eventualmente modificato il file di configurazione,
si può invocare l'esecuzione di Doxygen con il comando
 
<code>doxygen <config-file></code>
 
al termine della elaborazione, il materiale prodotto sarà disponibile nella directory di destinazione indicata nel file di configurazione.
 
== Altri progetti ==
{{Interprogetto}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|http://www.codeproject.com/Articles/3528/10-Minutes-to-document-your-code|10 Minuti per documentare il codice|lingua=en}}
 
{{Portale|software libero}}
 
[[Categoria:Software applicativo individuale - libero]]