cmake-init - Der fehlende CMAKE -Projektinitializer cmake-init ist ein Meinungs-CMake-Projekt-Initialisierer, der CMake-Projekte generiert, die abgerufen werden, separate Verbraucher- und Entwicklerziele, die Installation von Regeln mit ordnungsgemäßen, lockeren CMAKE-Paketen bereitstellen und moderne CMake (3.14+) verwenden.
Bitte beachten Sie das Wiki, zum Beispiel Ausgaben von CMake-Init und anderen pragmatischen Beispielen für CMake, z. B. Packungsmanager, Fuzz-Tests, Superbuilds usw.






Wenn Sie mich für etwas CMAKE -verwandtes kontaktieren möchten, finden Sie mich möglicherweise im #cmake -Kanal des C ++ - Slack. Wenn das, was Sie wissen möchten, cmake-init spezifisch ist, können Sie auch Fragen in den Diskussionen dieses Repositorys stellen.
h wenn Sie aufgefordert werden. Statische/gemeinsame Bibliothek? Wählen Sie einfach s , wenn sie aufgefordert werden. Einfach und korrekt!FetchContent Ready -ProjekteStellen Sie sicher, dass diese Programme installiert sind:
NOTIZ
Einige dieser Tools können auch unter Windows verwendet werden, wenn Sie Visual Studio verwenden möchten. Sie müssen jedoch diese Addins installieren:
Dieses Paket kann von PYPI heruntergeladen werden. Sie können dieses Paket mit pip installieren:
pip install cmake-init Clang-Tidy ist ein statisches Analyse-Tool, mit dem Sie logische Fehler in Ihrem Code erkennen können, bevor es zusammengestellt wird. Mit diesem Skript können Sie die clang-tidy Preset in Ihrem dev Preset erben und die CMake-Integration für dieses Tool ermöglichen.
CI wird für Sie immer klebrig ausgeführt, daher ist es vollständig optional, sie lokal zu installieren und zu verwenden, es wird jedoch empfohlen.
Wenn Sie bei Windows-Benutzern eine Klang-Tidy verwenden möchten, müssen Sie Ninja installieren und das generator in Ihrem dev Preset auf Ninja einstellen. Der Grund dafür ist, dass nur Makefiles und Ninja von CMake zur Verwendung mit Klanggeschnitten unterstützt werden. Für andere Generatoren ist diese Funktion ein No-op.
CPPCheck ist ein statisches Analyse-Tool, das der Klanggedicht ähnelt. Die Überlappung in dem, was sie erkennen, ist jedoch minimal. Daher ist es vorteilhaft, beide zu verwenden. Mit diesem Skript können Sie die cppcheck -Preset in Ihrem dev -Voreingang erben und die CMake -Integration für dieses Tool ermöglichen.
CI wird CPPCheck immer für Sie ausführen, daher ist es vollständig optional, es lokal zu installieren und zu verwenden. Es wird jedoch empfohlen.
Wenn Sie CPPCheck verwenden möchten, müssen Sie für Windows -Benutzer Ninja installieren und das Feld generator in Ihrem dev Preset auf Ninja einstellen. Der Grund dafür ist, dass nur Makefiles und Ninja von CMake zur Verwendung mit CPPcheck unterstützt werden. Für andere Generatoren ist diese Funktion ein No-op.
Doxygen ist ein Tool zum Erstellen von Dokumentationen aus dem kommentierten Quellcode. In Verbindung damit wird M.CSS zur Präsentation der generierten Dokumentation verwendet.
Die generierten Projekte haben ein docs -Ziel im Entwicklermodus, mit dem die Dokumentation in das Verzeichnis <binary-dir>/docs/html erstellt werden kann.
Nachdem Doxygen installiert wurde, stellen Sie bitte sicher, dass die ausführbare doxygen -Datei im PATH vorhanden ist. Andernfalls können Sie verwirrende Fehlermeldungen erhalten.
Diese Dokumentation kann unter Verwendung des docs -Jobs im generierten CI -Workflow auf Github -Seiten bereitgestellt werden. Folgen Sie den Kommentaren im Job, um dies zu aktivieren.
Hinweis : M.CSS funktioniert nicht mit Doxygen> = 1,9. Sie können 1.8.20 installieren, um das docs -Ziel zu verwenden. Siehe Ausgaben Nr. 41 und #48.
LCOV ist ein Tool zur Verarbeitung von Abdeckungsinformationen, die von ausführbaren Funktionen erstellt wurden, die mit GCCs gcov instrumentiert waren. Diese Berichterstattungsinformationen können verwendet werden, um zu sehen, welche Teile des Programms ausgeführt wurden.
Die generierten Projekte haben im Entwicklermodus ein coverage , wenn die Variable ENABLE_COVERAGE aktiviert ist. Der Grund, warum ein separates Ziel anstelle des integrierten coverage von Ctest verwendet wird, ist, dass es an der erforderlichen Anpassung fehlt. Dieses Ziel sollte nach den Tests ausgeführt und standardmäßig einen Bericht unter <binary-dir>/coverage.info und einen HTML-Bericht im Verzeichnis <binary-dir>/coverage_html generiert.
Für Windows -Benutzer können Sie ein ähnliches Tool namens OpenCPPCoverage verwenden, für das im generierten cmake -Verzeichnis ein Beispielskript vorhanden ist. Dieses Skript bleibt ein Beispiel, da der Linux -VM in Github -Aktionen schneller startet und ausgeführt wird und daher für die Abdeckung verwendet wird.
Clang-Format ist Teil der LLVM-Werkzeugsuite, ähnlich wie bei der Klangliege. Es handelt sich um einen Codestinter- und Codeformater, mit dem Stilführer erzwungen werden können.
Es werden zwei Ziele zur Verfügung gestellt, um den Code im Entwicklermodus mithilfe der format-check und format-fix Ziele zu überprüfen und zu beheben.
Hinweis : Das Projekt generiert Dateien, die gemäß Clang-Format 14 formatiert sind. Neuere oder ältere Versionen können das Projekt unterschiedlich formatieren.
Codespell ist ein Tool, um Rechtschreibfehler hauptsächlich im Quellcode zu finden und zu beheben.
Es werden zwei Ziele zur Verfügung gestellt, um die Rechtschreibfehler im Entwicklermodus mithilfe der spell-check bzw. spell-fix -Ziele zu überprüfen und zu beheben.
Das -p -Flag kann verwendet werden, um einen Paketmanager für das Projekt auszuwählen. Argumente für die Flagge können sein:
none : Keine Integration von Paketmanager (Standard)conan : Conan -Integrationvcpkg : VCPKG -IntegrationBei der Verwendung eines Paketmanagers werden die folgenden Pakete im generierten Projekt verwendet:
Lesen Sie sicher, dass Sie das generierte Hacking -Dokument lesen, um zu sehen, was getan werden muss, um Abhängigkeiten abzurufen.
cmake-init [--c] <path>-s , -e oder -h nachgeben, nachdem Sie schnell eine gemeinsame Bibliothek, eine ausführbare Datei bzw. einer Header -Bibliothek erstellen können. Der --c -Switch setzt den Typ des generierten Projekts auf C anstelle von C ++.cmake-init --help cmake-init ist kostenlose Software: Sie können sie nach Belieben verwenden, studieren, teilen und verbessern. Insbesondere können Sie es unter den Bestimmungen der GNU General Public Lizenz, die von der Free Software Foundation veröffentlicht wurde, entweder Version 3 der Lizenz oder (nach Ihrer Option) jede spätere Version neu verteilt und/oder ändern.
Der Inhalt des Verzeichnisses cmake-init/templates wird unter Verwendung der nicht lizenzischen Lizenz lizenziert. Weitere Informationen finden Sie in der Lizenz in diesem Verzeichnis.