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

Fortgeschrittene CMake-Themen

Fortgeschritten
21 h
4.9 (463 Bewertungen)

Geplante Sessions

Aktuell sind keine Termine verfügbar.
Fortgeschrittene CMake-Themen

Modernes CMake beherrschen: Wenden Sie zielbasierte (target-based) CMake-Workflows an, um Ihre C++-Projekte sauber zu konfigurieren, zu bauen, zu testen und zu paketieren.

Verstehen Sie Generatoren (Ninja, Makefiles), Toolchains und Policies. Schreiben Sie robuste find_package‑Konfigurationen und exportieren Sie wiederverwendbare Targets.

Verwalten Sie externe Abhängigkeiten elegant mit FetchContent und ExternalProject und integrieren Sie Testing-Abläufe mit CTest und CDash.

Praktische Erfahrung sammeln: Die intensiven Hands-on-Labs machen ~70% des Kurses aus und spiegeln die Komplexität realistischer Industrie-Codebasen wider.

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

Für wen: Konzipiert für Softwareentwickler mit C/C++ Erfahrung, die moderne CMake-Praktiken produktiv im Team einsetzen möchten.

Am Ende des Kurses werden Sie Projekte souverän strukturieren, CMake-Skripte debuggen und fortgeschrittene Themen wie CUDA, MPI und Cross-Compiling problemlos umsetzen.

Fähigkeiten, die Sie lernen werden

Modernes Target-basiertes CMake CMake-Generatoren (Ninja/Make) Abhängigkeitsmanagement CTest & CDash Integration Packaging mit CPack Cross-Compiling & Toolchains CMake Debugging & Profiling CUDA & MPI Integration

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

Haben Sie an diesem Kurs teilgenommen?

Ihre Meinung ist uns sehr wichtig. Teilen Sie Ihre Erfahrungen mit uns und helfen Sie uns, diesen Kurs für zukünftige Teilnehmer weiter zu verbessern.

Feedback teilen

Möchten Sie mehr erfahren? Wir helfen Ihnen gern!

Oder schreiben Sie uns direkt an training@edocti.com.