CMake ist ein plattformübergreifendes Open-Source-Meta-Build-System, mit dem Software erstellt, getestet und verpackt werden kann. Es kann zur Unterstützung mehrerer nativer Build-Umgebungen verwendet werden, darunter make, Apples xcode und Microsoft Visual Studio.
Dieses Repository enthält einige Beispiele für moderne CMake-Konfigurationen, die ich bei der Untersuchung der Verwendung für verschiedene Projekte aufgegriffen habe. Die Beispiele sind in einem Tutorial-ähnlichen Format angelegt. Die ersten Beispiele sind sehr einfach und nehmen langsam an Komplexität zu. Dabei wird auf frühere Beispiele zurückgegriffen, um komplexere Anwendungsfälle zu zeigen.
Diese Beispiele wurden auf Ubuntu 16.04 getestet, sollten aber auf jedem Linux-System funktionieren, das CMake v3.5+ unterstützt.
Dieser Zweig funktioniert mit der CMake-Version 3.5 und höher.
Beispiele, die CMake Version 2.x verwenden, finden Sie im Zweig v2-style-includes.
Beispiele, die CMake Version 3.0 verwenden, finden Sie im Zweig v3.0-minimum
Die Grundvoraussetzungen für die meisten Beispiele sind:
CMake v3.5+
Ein C++-Compiler (standardmäßig gcc)
machen
Der einfachste Weg, das oben Genannte unter Ubuntu zu installieren, ist wie folgt
$ sudo apt-get install build-essential
$ sudo apt-get install cmake
Für einige spezifische Beispiele sind möglicherweise andere Tools erforderlich, darunter:
Schub
$ sudo apt-get install libboost-all-dev
protobuf
$ sudo apt-get install libprotobuf-dev $ sudo apt-get install protobuf-compiler
cppcheck
$ sudo apt-get install cppcheck
klirren
$ sudo apt-get install clang-3.6
Ninja
$ sudo apt-get install ninja-build
Conan
$ sudo apt-get install python3 python3-pip $ sudo pip3 Conan installieren
Um das Testen der Beispiele zu erleichtern, werden Docker-Container mit allen Anforderungen und verschiedenen Versionen von CMake generiert. Diese sind im Docker-Hub-Repository matrim/cmake-examples verfügbar.
Um den vollständigen Satz an cmake-examples-Testfällen zu erstellen, können Sie Folgendes ausführen:
docker run -it matrim/cmake-examples:3.5.1
cd ~
git clone https://github.com/ttroy50/cmake-examples.git code
cd code
./test.sh
Weitere Informationen zum Erstellen und Ausführen der Docker-Container finden Sie in den Dockerfiles.
Es gibt viele CMake-Tutorials und Beispiele online. Die folgende Liste enthält Links zu einigen davon, die ich auf meiner CMake-Reise als hilfreich empfunden habe.
Moderne CMake-Folien
rix0r Moderner CMake-Blog
Offizielles CMake-Tutorial
Offizielles CMake-Wiki
CMake nützliche Variablen
Derek Molloy – Einführung in CMake
Modulare C++-Projekte
Gängige CMake-Anti-Patterns
Verwenden des statischen Clang-Analysators mit CMake
Statische Analyse mit CDash – Enthält einige Informationen zur Verwendung von CppCheck mit CMake
CMake-Tipps
John Lamp – CMake-Tutorial
Conan-Dokumentation