Qt Creator ist eine plattformübergreifende, hochgradig modulare Qt C++-Anwendung.
Um das Qt Creator-Plug-in zu erstellen, benötigen Sie:
• C++-Compiler
• Qt-SDK
• Qt Creator-SDK
Nur wenige Plugin-Entwickler wissen, dass Qt Creator ein SDK veröffentlicht. Sie müssen Qt Creator nicht kompilieren, um ein Qt Creator-Plugin zu entwickeln. Außerdem ist es für die meisten C++-Entwickler nicht üblich, Zugriff auf alle drei Plattformen (Windows, Linux, macOS) zu haben.
GitHub-Aktionen
GitHub Actions ist ein von GitHub bereitgestelltes CI/CD-Framework, mit dem Sie auf alle drei Plattformen zugreifen können!
GitHub enthält auch mehrere Repositories von Qt-Creator-Plugins, daher entschieden sich die Entwickler, zu versuchen, ein Doxygen-Plugin zu erstellen.
GitHub Actions bietet derzeit folgende virtuelle Maschinen (Runner) an:
• Ubuntu 16.04 LTS
• Ubuntu 18.04 LTS
• Windows-Server 2016
• Windows-Server 2019
• macOS 10.15
Das Qt SDK ist nicht Bestandteil der auf den Runnern installierten Software. Dies ist kein Problem, da die Entwickler mit der gleichen Version von Qt bauen wollen wie Qt Creator selbst.
Sie können eine Plattform gleichzeitig oder mehrere parallel bauen (Matrix-Modus).
Hintergrund
Da GitHub virtuelle Maschinen und C++-Compiler bereitstellt, müssen Sie nur das Qt- und Qt-Creator-SDK herunterladen und dann „kompilieren“.
Um die Dateien herunterzuladen, zu extrahieren und mit dem Kompilieren zu beginnen, entschieden sich die Entwickler für die Skriptsprache, die auf allen drei installiert ist: CMake (im Skriptmodus über das Kommandozeilenargument -P).
Erstellung des Plugins
Um das Plugin einzurichten, müssen Sie nur Folgendes ausführen:
qmake doxygen.pro CONFIG+=release QTC_SOURCE="$ENV{GITHUB_WORKSPACE}/qtcreator" QTC_BUILD="$ENV{GITHUB_WORKSPACE}/qtcreator"
Das Erstellen ist so einfach wie das Ausführen von make -j<number-of-cores> oder jom
Am Ende wird es eine gemeinsam genutzte Bibliothek (.dll, .so, .dynlib) geben, die an die Benutzer verteilt wird.
GitHub-Aktionen starten
Mit git push wird das Plugin gebaut und die Artefakte werden bei jedem Build gespeichert. Es sieht aus wie das:
Wenn wir einen Commit mit git tag -a v0.4.7-qtc-4.11 -m "Release v0.4.7-qtc-4.11" markieren und dann git push origin v0.4.7-qtc-4.11 auslösen, wird ein Release ausgelöst und die Artefakte heruntergeladen zu dieser Veröffentlichung. Es sieht aus wie das:
Die neu erstellte Freigabe sieht folgendermaßen aus:
Es klappt?
GitHub Actions weist einige Plattform- und Compiler-Unterschiede auf, wenn es darum geht, wie Qt und Qt Creator aufgebaut sind:
• Visual C++ 2019 unterstützt Visual C++ 2017
• Red Hat 7.2 im Vergleich zu Ubuntu 18.04
Wie sich herausstellte, konnte Qt Creator das Plugin auf allen drei Plattformen laden!