Doxygen per CMake

Doxygen ist im GATE Projekt ein “alter Hut”. Das Programm ist im CI Docker und Script integriert und wartet nur auf seinen Aufruf.
Aber …

Wäre es nicht besser alle Tools (und auch Doxygen) über CMake anzusteuern?


In der Entwicklung haben wir unterschiedliche Tools, die wir unterschiedlich kombinieren und in Scripts unterschiedlich zusammenwürfeln.
Jetzt ist es aber oft ärgerlich, wenn man immer wieder mal aus der IDE zur Konsole wechseln muss, um wieder eines der Tools anzuwerfen.

VSCode bietet in seinem CMake Plugin immer eine Übersicht über alle ausführbaren Targets. Ein Klick auf ein solches baut es und ein anderer Klick im Test-Fenster startet die Tests.

Idee: Doxygen wird per CMake als Utility ausgeführt

CMake bietet mit add_custom_target() eine einfache Möglichkeit jedes beliebige Programm als Target zu registrieren. Beim “Bauen” des Targets wird das registrierte Programm mit einstellbaren Parametern gestartet.

Ich habe meine CMakeLists.txt daher um folgende Zeilen erweitert:

 1function(gate_add_doxygen_target)
 2  find_package(Doxygen REQUIRED)
 3
 4  add_custom_target(util_doxygen_run
 5    COMMAND ${DOXYGEN_EXECUTABLE} "${CMAKE_SOURCE_DIR}/Doxyfile"
 6    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
 7    COMMENT "Executing doxygen documentation generation"
 8  )
 9endfunction()
10
11find_package(Doxygen QUIET)
12option(GATE_BUILD_DOXYGEN "Build doxygen docu" ${DOXYGEN_FOUND})
13
14if(GATE_BUILD_DOXYGEN)
15  gate_add_doxygen_target()
16endif()

Wird das Program doxygen im System gefunden, wird die CMake Option GATE_BUILD_DOXYGEN aktiviert und dann die Funktion zum Hinzufügen des Targets aufgerufen. Über die Option kann man das dann auch manuell aus/einschalten.

Da ein Doxyfile ohne schon im Projekt ist, fehlt nur die Aufruf von doxygen mit der Datei als Parameter.

Und mit dem nächsten Configure Klick in der VSCode CMake UI, finde ich schon das neue Target util_doxygen_run in meiner Liste.
Ab sofort kann ich also einfach per Klick die Doku bauen lassen und im Browser parallel überprüfen.

VSCode CMake Doxygen

Fazit

Oft sind es die kleinen Dinge, die viel bewirken.

Man kann doxygen natürlich weiter manuell starten, aber der einfache Klick im VSCode Fenster spart Zeit.

Ganz besonders wenn ich immer wieder Änderungen mache und das Ergebnis sofort sehen will, öffne ich im Browser die HTML-Datei und brauche dann nur einen VSCode-Klick und einen F5-Refresh im Browser um die neu-generierte Doku gegenlesen zu können.