Doxygen

Doxygen
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereSistema di documentazione (non in lista)
SviluppatoreDimitri van Heesch
Data prima versione26 ottobre 1997
Ultima versione1.13.1 (2 gennaio 2025)
Sistema operativoMultipiattaforma
LinguaggioC++
ToolkitQt
LicenzaGNU GPL v2
(licenza libera)
Sito webwww.doxygen.org/

Doxygen è una applicazione per la generazione automatica della documentazione a partire dal codice sorgente di un generico software. È un progetto open source disponibile 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 linguaggi C++, C, Java, Objective C, Python, IDL (versioni CORBA e Microsoft), Fortran, PHP, C#, e D. Nell'ambito del C++, è compatibile con le estensioni Qt.

È 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 ACE e KDE. In Java invece, la posizione leader viene meno, in virtù della presenza del concorrente Javadoc.

Il sistema estrae la documentazione dai commenti inseriti nel codice sorgente e dalla dichiarazione delle strutture dati.

La documentazione prodotta

Il risultato finale è disponibile sotto forma di pagine HTML oppure nei formati CHM, RTF, PDF, LaTeX, PostScript o man pages di Unix. Il formato HTML prodotto si giova di un sistema di hyperlink molto curato che permette al lettore un'agevole navigazione della struttura dei file sorgenti. La documentazione prodotta riporta anche il diagramma delle classi, nei casi in cui sono presenti relazioni di ereditarietà tra strutture dati. Grazie all'impiego sinergico di Doxygen con Graphviz, è 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.

Infine, il sistema è altamente e facilmente configurabile al fine di permettere all'utilizzatore di intervenire su tutti gli aspetti della documentazione prodotta.

Il formato dei commenti

Il funzionamento di Doxygen richiede una particolare formattazione dei commenti inseriti nel codice sorgente. Le regole di formattazione, oltre ad essere analoghe a quelle degli altri prodotti della categoria, sono chiaramente documentate nel manuale. Riportiamo di seguito un esempio.

/**
 * The time class represents a moment of time.
 *
 * \author My Name
 */
class Time {

  /**
   * Constructor that sets the time to a given value.
   * \param timemillis Number of milliseconds passed since Jan 1. 1970
   */
  Time(int timemillis) {
    ...
  }

  /**
   * Get the current time.
   * \return A time object set to the current time.
   */
  static Time now() {
    ...
  }
};

Il file di configurazione

Doxygen associa ad ogni progetto da documentare un file di configurazione che contiene le impostazioni da utilizzare per la generazione. Questo file è un elenco di assegnazioni di opportuni valori a determinati parametri (TAG). Ogni tag è formato dalla coppia di informazioni

NOME_PARAMETRO = VALORE_PARAMETRO

analogamente a quanto avviene nei file di configurazione di numerosi altri prodotti open source. Un frammento di un esempio del file di configurazione è il seguente:

# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
# by quotes) that should identify the project.

PROJECT_NAME           = MyProject

# 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

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

doxygen -g <config-file>

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

doxygen <config-file>

al termine della elaborazione, il materiale prodotto sarà disponibile nella directory di destinazione indicata nel file di configurazione.

Altri progetti

Collegamenti esterni

  Portale Software libero: accedi alle voci di Wikipedia che trattano di software libero

Read other articles:

American astronaut Michael López-AlegríaLopez in March 2000Born (1958-05-30) May 30, 1958 (age 65)Madrid, SpainStatusRetired (NASA) Active (Axiom Space)NationalityAmerican, SpanishAlma materUnited States Naval Academy (BS)Naval Postgraduate School Master of ScienceOccupationsCommercial AstronautEngineerTest pilotSpace careerNASA AstronautAxiom Commercial AstronautSpace ShuttleMission specialistSoyuzFlight engineerCrew DragonCommanderRank Captain  United States NavyTime in spa...

 

安部 公房(あべ こうぼう) 『キネマ旬報』1967年1月正月特別号より。誕生 安部 公房(あべ きみふさ)1924年3月7日 日本・東京府北豊島郡滝野川町(現在の東京都北区西ケ原)死没 (1993-01-22) 1993年1月22日(68歳没) 日本・東京都多摩市墓地 上川霊園職業 小説家劇作家演出家言語 日本語国籍 日本教育 学士(医学)最終学歴 東京大学医学部卒業活動期間 1948年 - 1993年ジャ

 

Indonesian Movie Actors Awards ke-12Tanggal4 Juli 2018TempatStudio 14 MNC Studios, Kebon Jeruk, Jakarta BaratPembawa acara Daniel Mananta Nirina Zubir PenyelenggaraRCTISorotanFilm Terbaik: Pilihan pemirsaPengabdi Setan(Rapi Films)Aktor TerbaikTeuku Rifnu Wikana(Night Bus)Aktris TerbaikMarsha Timothy(Marlina: Si Pembunuh dalam Empat Babak)Penghargaan seumur hidupAdi KurdiPenghargaan terbanyakDilan 1990 dan Marlina: Si Pembunuh dalam Empat Babak (3)Liputan televisiSaluranRCTIDurasi180 menit ...

Torhaus von Cooling Castle Cooling Castle wurde in den 1380er Jahren von John Cobham am Rande der Marschen des Dorfes Cooling, etwa zehn Kilometer nördlich von Rochester in der englischen Grafschaft Kent gebaut. Es liegt über drei Kilometer von der Küste entfernt. Von Thomas Wyatt wurde es während der Wyatt-Verschwörung 1554 belagert. Lord Cobham ergab sich nach kurzem Widerstand. Er gab zwar an, er habe sich einem Stärkeren ergeben, hatte jedoch vorher mit Wyatt sympathisiert und war d...

 

Djoko BasoekiLahir(1921-03-20)20 Maret 1921Surabaya, Jawa Timur, Hindia BelandaMeninggal31 Mei 1985(1985-05-31) (umur 64)Jakarta, IndonesiaPengabdianIndonesiaDinas/cabang TNI Angkatan DaratPangkat Mayor Jenderal TNINRP17035KesatuanInfanteri Mayor Jenderal TNI (Purn.) R.H. Djoko Basoeki (20 Maret 1921 – 31 Mei 1985) merupakan seorang perwira tinggi angkatan darat dari Indonesia. Djoko wafat pada tanggal 31 Mei 1985 di Jakarta.[1] Karier militer Asisten I/Intelijen ...

 

1995 publication in mathematics Sir Andrew John Wiles Wiles's proof of Fermat's Last Theorem is a proof by British mathematician Andrew Wiles of a special case of the modularity theorem for elliptic curves. Together with Ribet's theorem, it provides a proof for Fermat's Last Theorem. Both Fermat's Last Theorem and the modularity theorem were almost universally considered inaccessible to proof by contemporaneous mathematicians, meaning that they were believed to be impossible to prove using cu...

Coastal states redirects here. For a legal term, see Coastal state. States shaded  dark blue  have ocean coastline.* States shaded  light blue  have Great Lakes coastline.* States shaded  white  have no coastline. * New York has both ocean and Great Lakes coastline. This is a list of U.S. states and territories ranked by their coastline length. 30 states have a coastline: 23 with a coastline on the Arctic Ocean, Atlantic Ocean (including the Gulf of Mexico and Gu...

 

This article is about the 2023 Chinese television series. For other uses, see Thin Ice. Chinese TV series or program Thin Ice薄冰Genreespionage, suspenseBased onThin Iceby , Chen Dong Qiang QiangWritten byHai FeiDirected byJin ChenStarring Peng Guanying Chen Yuqi Country of originChinaOriginal languageMandarinNo. of episodes40ProductionProduction locationChinaRunning time45 minutesOriginal releaseNetworkHunan TVReleaseApril 5 (2023-04-05) –May 3, 2023 (2023-05-03)Relat...

 

貝亞恩號 Béarn貝亞恩號航空母艦(1935年)貝亞恩號航空母艦(1937年)概觀艦種航空母艦艦名出處贝阿恩擁有國 法蘭西共和國 自由法國 臨時政府 法兰西第四共和国 法蘭西第五共和國前型無次型霞飛級製造廠新地中海铸造与建设公司(英语:Société Nouvelle des Forges et Chantiers de la Méditerranée)動工1914年1月10日下水1920年4月15日服役1927年5月27日退役1948年結局1967年3月21日售予義...

MunicipalityBrutovceMunicipalityA Church in BruotvceBrutovceCoordinates: 49°05′N 20°47′E / 49.083°N 20.783°E / 49.083; 20.783Area[1] • Total13.68 km2 (5.28 sq mi)Elevation[2]864 m (2,835 ft)Population (2021)[3]146Area code+421 53[2] Location of Levoča District in the Prešov Region Brutovce is a village and municipality in Levoča District in the Prešov Region of central-eastern Sl...

 

Gereja Katolik Santo Yosef, Denpasar, Bali Kristen adalah agama minoritas ketiga di Bali setelah Islam yang dianut oleh 71,933 jiwa umat Protestan dan 35,604 jiwa umat Katolik berdasarkan Data dari Kementerian Dalam Negeri Bulan Desember 2022 . Persentase jumlah penduduk Bali yang menganut Protestan dan Katolik masing-masing adalah 1,67% dan 0,83% berdasarkan data Kementerian Dalam Negeri Republik Indonesia.[1] Konsentrasi terbesar umat Protestan di Bali terdapat Kota Denpasar. Sement...

 

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article doit être actualisé (avril 2021). Des passages de cet article ne sont plus d’actualité ou annoncent des événements désormais passés. Améliorez-le ou discutez-en. Vous pouvez également préciser les sections à actualiser en utilisant {{section à actualiser}}. Cet article est une ébauche concernant l’économie. Vous pouvez partager vos connaissances en l’améliorant (comment ?) se...

Wat Kanchana Singhatวัดกาญจนสิงหาสน์The ordination hallReligionAffiliationBuddhismSectTheravāda Mahā NikāyaStatusThird-class royal templeLocationLocation686 Kaeo Ngoen Thong Rd, Khlong Chak Phra, Taling Chan, Bangkok 10170CountryThailandShown within BangkokGeographic coordinates13°45′36″N 100°27′14″E / 13.760129°N 100.453883°E / 13.760129; 100.453883ArchitectureFounderChao Sua Thong Wat Kanchana Singhat Worawiharn (Thai: ...

 

For other uses, see Friedrichstadt (disambiguation). You can help expand this article with text translated from the corresponding article in Danish. (June 2023) Click [show] for important translation instructions. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-translated text into the English Wikipedia. Do...

 

Former basketball event DBL All-Star GalaDutch Basketball League All Star GameSportBasketballFounded1971Ceased2017No. of teams2Country Netherlands The Dutch Basketball League All-Star Gala was a yearly basketball event in the Netherlands, organised by the Federatie Eredivisie Basketball (FEB). During the event the yearly All-Star Game was played, which included the best players of a given DBL season. Additionally, a dunk Contest and three-point contest were also held at the event.[1] ...

7 AntoninianiReihe 1: Elagabal (Silber, 218–222 n. Chr.), Decius (Silber, 249–251 n. Chr.), Gallienus (Billon, 253–268 n. Chr.).Reihe 2: Gallienus (Kupfer, 253–268 n. Chr.), Aurelian (versilbert, 270–275 n. Chr.), barbarische Nachprägung (Kupfer), barbarische Nachprägung (Kupfer). Der Antoninian war eine antike römische Silbermünze, die unter Kaiser Caracalla (211–217) um 214 n. Chr. als offizielles Zahlungsmittel in die Wirtschaft des römischen Reiches eingeführt ...

 

Historic church in Maryland, United States Church in Maryland, United StatesSaint John’s Episcopal ChurchMount Prospect39°23′02″N 77°26′01″W / 39.3839°N 77.4335°W / 39.3839; -77.4335LocationHagerstown, Maryland, United StatesDenominationEpiscopalChurchmanshipBroad churchHistoryStatusParish churchFounded1786Founder(s)Maryland General AssemblyDedicationJohn the EvangelistAssociated peopleBartholomew BoothHoratio GatesOtho Holland WilliamsNathaniel Rochester...

 

Australian outdoor and sporting goods store chain owned by Spotlight Group AnacondaIndustryRetailFoundedNovember 2004[1]HeadquartersAustraliaNumber of locations84 stores (2023)Area servedAustraliaProductsSporting goodsOwnerSpotlight Group The interior of an Anaconda store in Canberra Anaconda, listed as The Trustee for Anaconda Unit Trust in the Australian Business Register[2] and Dun and Bradstreet,[3] is one of several retail businesses comprising the Spotlight ...

Small model railroad gauge and scale This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Z scale – news · newspapers · books · scholar · JSTOR (January 2009) (...

 

Mimbres River. The Mimbres is a 91-mile-long (146 km)[1] river in southwestern New Mexico. Course The Mimbres forms from snowpack and runoff on the southwestern slopes of the Aldo Leopold Wilderness in the Black Range at 33°06′58″N 107°51′04″W / 33.11611°N 107.85111°W / 33.11611; -107.85111 in Grant County. The river ends in the Guzmán Basin, a small endorheic basin east of Deming in Luna County. The uplands watershed are administered by the U...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!