Edocti
Fortgeschrittene technische Ausbildung für den modernen Softwareingenieur
Edocti Training

Fortgeschrittene CMake-Themen

Fortgeschritten
21 h
4.9 (463 Bewertungen)
Fortgeschrittene CMake-Themen

Moderne, zielbasierte CMake‑Workflows sicher anwenden – Projekte sauber konfigurieren, bauen, testen und paketieren.

Generatoren (Ninja, Makefiles), Toolchains und Policies verstehen; robuste find_package‑Configs schreiben und wiederverwendbare Targets exportieren.

Externe Abhängigkeiten mit FetchContent und ExternalProject verwalten; Tests mit CTest/CDash integrieren.

Praktische Erfahrung sammeln in intensiven Hands‑on‑Übungen (~70%), die realistische Codebasen widerspiegeln.

Wie CMake hilft: Portabilität über Plattformen/Compiler, reproduzierbare Builds, klare Abhängigkeitsgraphen und reibungsloses CI/CD‑Packaging mit CPack.

Für wen: konzipiert für Personen mit Erfahrung in C++ oder C, die moderne CMake‑Praktiken im Produktionsteam einsetzen möchten.

Am Ende strukturierst du Projekte souverän, debuggst CMake‑Skripte und skalierst zu fortgeschrittenen Themen (CUDA, MPI, Cross‑Compiling).

Curriculum

Begrüßung und Setup
  • Entwicklungs-Setup für C++ und CMake sicherstellen
  • Grundinstallation und Setup von CMake
Einführung in CMake
  • Überblick über CMake und seine Rolle in modernen Build-Systemen
  • Wichtigste Features und Vorteile von CMake
  • Verständnis des CMake-Workflows
  • Source-Konfiguration
  • Generierung des Build-Systems
  • Build-Ausführung
CMake-Workflow
  • Konfigurations-Workflow in CMake
  • Erstes CMakeLists.txt schreiben
  • Konfigurieren und Generieren eines Build-Systems
  • CMake über Kommandozeile und IDEs ausführen
  • CMake-Generatoren verstehen (Makefiles, Ninja, etc.)
Bibliotheken und Executables bauen
  • Targets in CMake definieren und verwalten
  • add_executable und add_library
  • Bibliotheken und Abhängigkeiten linken
  • target_link_libraries
  • Variablen in CMake: regular vs. cache variables
  • Build-Konfigurationen mit CMake-Variablen steuern
  • Überblick über den zielzentrierten Ansatz von modernem CMake
  • Best Practices für den Aufbau und die Strukturierung von Projekten
  • Compiler und Compileroptionen festlegen
  • Sprachstandard festlegen
  • Mit Umgebungsvariablen arbeiten
  • Mit verschiedenen CPU-Architekturen arbeiten
Weitere CMake-Syntax
  • CMake-Syntax und unterstützte Befehle
  • Kontrollfluss in CMake-Skripten (if, foreach, while)
  • Verwendung von Generator Expressions ($<...>) für bedingte Logik
  • Target-Eigenschaften und fortgeschrittenes Target-Management
  • Targets installieren und Installationsregeln erstellen
  • Praktische Tipps und Tricks (hands-on)
Targets importieren und exportieren
  • Exportierbare Targets mit install(EXPORT) erstellen
  • find_package() verwenden und Config-Dateien schreiben
  • Third-Party-Targets importieren und Abhängigkeiten verwalten
  • Best Practices für wiederverwendbare und portable CMake-Konfigurationen
ExternalProject und FetchContent
  • Einführung ins Management externer Projekte in CMake
  • ExternalProject_Add zum Bauen externer Abhängigkeiten verwenden
  • Überblick über FetchContent zur Vereinfachung des Dependency-Managements
  • Praktische Beispiele und Anwendungsfälle
CMake-Richtliniensystem
  • Das Policy-System von CMake verstehen
  • Policy-Warnungen und -Fehler handhaben
  • Best Practices für den Umgang mit Policies
  • Bemerkenswerte Änderungen in aktuellen CMake-Releases
CMake-Skripte debuggen und profilieren
  • Debugging mit message() und cmake --trace
  • CMake-Builds profilieren, um Performance zu optimieren
  • Häufige CMake-Probleme verstehen und beheben
Begleitwerkzeuge und Test-Framework
  • Tests mit CTest schreiben und ausführen
  • Testabdeckung und dynamische Analyse-Tools integrieren
  • Einführung in CDash für Continuous Integration und Testing
  • Überblick über das Packaging-Tool: CPack
  • Praktische Übungen mit CTest und CPack
Fortgeschrittene Themen in CMake
  • CMake-Unterstützung für MPI (Message Passing Interface)
  • MPI-Projekte einrichten und verwalten
  • CUDA-Unterstützung in CMake
  • CUDA-Anwendungen mit CMake bauen
  • Cross-Kompilierung mit CMake
  • Toolchains einrichten und Cross-Kompilierung
  • Fortran-Unterstützung in CMake
  • Fortran-Projekte konfigurieren und bauen

Kursablauf

  • Teil 1: 09:00–10:30
  • Kaffeepause: 10:30–10:45
  • Teil 2: 10:45–12:15
  • Mittagspause: 12:15–13:15
  • Teil 3: 13:15–15:15
  • Kaffeepause: 15:15–15:30
  • Teil 4: 15:30–17:30