
Herzlich Willkommen! In dieser Einführung zeige ich dir was CMake ist, warum man es verwenden sollte, was du in diesem Kurs lernst und was du mitbringen solltest. Viel Spaß!
In CMake gibt es unterschiedliche Ausführungsschritte, sogenannte "Times". Welche das sind zeige ich in diesem Video.
In dieser Episode zeige ich dir wie du CMake unter Windows installierst. Linux User können diese Episode überspringen.
Umgekehrtes Spiel wie letzte Episode, dieses mal zeige ich wie man CMake unter Linux installiert, Windows User können diese Episode überspringen.
In dieser Episode zeige ich dir wie ein einfaches "Hello World" Projekt in CMake erstellt werden kann.
Echte Projekte bestehen in der Regel aus mehr als einer Datei. Diese Episode zeigt wie du auch mit diesen Projekten in CMake umgehen kannst.
Ein Kollege hat dir dieses Projekt mit den Worten "Du, des compiled irgendwie nich'!" gegeben - eine Typische Fehleranalyse für ihn. Da morgen eine Deadline ist musst du dich jetzt leider darum kümmern. Zum Glück hast du selbst den C++ Code geschrieben, weißt also, dass da alles funktioniert. Der Fehler muss irgendwo in den CMakeLists.txt Dateien sein.
CMake kann auch statische Bibliotheken erzeugen. In dieser Episode zeige ich dir wie das geht.
Das selbe gilt für dynamische Bibliotheken, auch damit kann CMake umgehen.
CMake kann auch if/else! In dieser Episode zeige ich dir wie.
In dieser Episode zeige ich dir eine alternative zum erzeugen von Boolean Variablen in CMake.
CMake GUI ist eine alternative zum CLI von CMake!
Hier zeige ich dir, wie du auf der Konsole etwas ausgeben kannst.
In dieser Episode werfen wir einen genaueren Blick auf den if Command in CMake.
In dieser Episode erkläre ich euch, was es mit dem Modes PRIVATE, PUBLIC und INTERFACE auf sich hat.
CMake kann auch, so wie man es von C/++ kennt, mit Funktionen und Makros umgehen.
Funktionen und add_subdirectory öffnen neue Scopes, Makros aber nicht. Wie das das Verhalten von CMake beeinflusst zeige ich dir in diesem Video.
Hier lernst du, wie du Variablen aus einer Funktion herausgeben kannst und damit den Scope des Aufrufenden manipulierst.
Funktionalität kann in andere Dateien ausgelagert werden.
In dieser Episode zeige ich dir wie du die C und C++ Standard Version festlegen kannst.
In dieser Episode zeige ich kurz die Liste an anderen Properties, die CMake vorinstalliert kennt.
CMake erlaubt es auch die C++ Standard Version anhand der notwendigen Features zu bestimmen.
Build Types sind Sets an Compiler-Flags die in der Regel den Grad der Optimierung festlegen.
Es ist auch möglich manuell weitere, beliebige Flags dem Compiler zu übergeben.
In dieser Episode ändern wir den verwendeten Compiler.
Diese Episode zeigt dir wie du zwischen Ausführungen unter Windows, Linux und OS X unterscheiden kannst.
Die gewonnen Informationen können an den Source Code mit Präprozessor Definitionen weiter gereicht werden.
Mit CMake kann man sehr leicht bestimmen ob es sich um ein 32- oder 64-Bit System handelt.
Manchmal muss man zwischen verschiedenen Prozessor Architekturen unterscheiden. Mit CMake ist dies leicht möglich.
Die Liste der hier im Detail vorgestellte System Variablen ist nicht vollständig, es gibt noch einige andere. Wie ihr diese finden könnt zeige ich in diesem Video.
In dieser Episode zeige ich dir wie du die "Eigen" Library mithilfe von CMake einbinden kannst.
find_package kennt zwei unterschiedliche Modi in denen es ausgeführt werden kann. Diese Episode zeigt dir die Unterschiede.
Mit "cmake --help-module-list" können die vorinstallierten find_package Dateien aufgelistet werden. In dieser Episode zeige ich kurz das Ergebnis.
In dieser Episode lernst du wie du die sehr beliebte Bibliothekssammlung "Boost" verwenden kannst.
CMake gibt uns zwei Möglichkeiten ein Git Repo zu als Dependency zu verwenden. Die erste, FetchContent, stelle ich in diesem Video vor.
ExternalProject lädt die Dependencies erst zur BuildTime herunter.
CMake hat sich unter allen Build Systemen für C/++ als Marktführer etabliert. In diesem Kurs lernst du, wie du dieses mächtige Tool in deinen Projekten verwenden kannst.
Der Kurs ist in 6 Abschnitte gegliedert:
Einführung: Hier lernst du Begriffe die für CMake wichtig sind und wie man CMake installiert.
Basics: Die Grundsätze der Skriptsprache CMake werden erläutert und ich zeige dir, wie du CMake verwenden kannst.
Funktionen und Scopes: Scopes funktionieren in CMake ein bisschen anders als in C++. Hier zeige ich dir die Besonderheiten.
Einstellungen: Welcher Compiler soll verwendet werden? Welcher C++ Sprachstandard wird unterstützt? Diese Dinge kannst du in CMake einstellen.
Das System Untersuchen: CMake gibt dir die Möglichkeit zur Laufzeit herauszufinden ob es gerade auf einem Windows oder Linux Rechner ausgeführt wird. Ebenso ob 32- oder 64-Bit Instruktionen verwendet werden. Wie du das und noch andere Dinge auslesen kannst lernst du in diesem Abschnitt.
Dependency Management: Eines der Hauptargumente von CMake! Vor CMake war das Einbetten von anderen Projekten häufig sehr umständlich und uneinheitlich. Dieses Problem löst CMake und macht das Management von Dependencies (fast) zum Kinderspiel.