CMake 3.22 baut Testing- und Packaging-Funktionen aus

Nach drei Release Candidates ist die neue CMake-Version 3.22 erschienen. Der Visual Studio 10 2010 Generator gilt nun als veraltet.

In Pocket speichern vorlesen Druckansicht 9 Kommentare lesen

(Bild: donatas1205 / Shutterstock.com)

Lesezeit: 2 Min.

Kitware hat sein quelloffenes Build-System CMake mit der neuen Version 3.22 versehen. UrsprĂĽnglich fĂĽr den Umgang mit Makefiles entwickelt, dient CMake inzwischen auch dem Erstellen von Projektdateien fĂĽr Visual Studio oder Xcode und kommt vor allem im C/C++-Umfeld zum Einsatz.

Der Generator Visual Studio 10 2010 gilt mit dem aktuellen Release als veraltet (deprecated) und soll in einer der kommenden CMake-Versionen entfallen. Er dient dem Erstellen von Visual-Studio-2010-Projektdateien – inzwischen liegt die Entwicklungsumgebung bereits als diesjährige Version Visual Studio 2022 vor. Über den Generator Visual Studio 11 2012 sowie den Generator NMake Makefiles soll die Möglichkeit erhalten bleiben, Dateien für Visual Studio 2010 zu erstellen.

In CMake 3.22 haben zwei Befehle neue Möglichkeiten erhalten. cmake_host_system_information() kann nun Identifikationsvariablen für Betriebssysteme von der /etc/os-release-Datei abfragen, und string(TIMESTAMP) lässt sich mit dem %V-Spezifikator für Wochenzahlen nach ISO 8601 nutzen.

Die Funktion Compile Features kann ebenfalls mit Änderungen aufwarten: Neu sind das korrekte Aktivieren und Deaktivieren von Compiler-Erweiterungen sowie das Entfallen unnötiger Sprachstandard-Flags, wenn kein Standardlevel festgelegt ist und die Einstellungen mit den Standardwerten des Compilers übereinstimmen. Die Funktion ignoriert nun zudem Features für Sprachen, die nicht aktiviert sind.

Daneben widmet sich die neue Version CTest, das dem Testing dient, sowie CPack, das für die Erstellung von Installern und Source-Packages nötig ist. CMake 3.22 versetzt ctest(1) nicht nur in die Lage, zur Laufzeit an einem Test befindliche Labels zu erkennen, sondern auch die Umgebung für einen Test mithilfe der Property ENVIRONMENT_MODIFICATION anzupassen. Der Befehl ctest_memcheck() erstellt nun zusätzlich die Datei DynamicAnalysis-Test.xml, die Testergebnisse an CDash übermitteln kann.

Für CPack gibt es neue Optionen für den CPack Deb Generator, den CPack NSIS Generator und den CPack RPM Generator. Beispielsweise lässt sich in Letzterem die Option CPACK_RPM_REQUIRES_EXCLUDE_FROM nutzen, um bestimmte Pfade beim Scannen nach Dependencies auszuschließen. Der CPack NSIS Generator setzt nun NSIS 3.03 oder höher voraus.

Alle Neuerungen in CMake 3.22 sind dem Kitware-Blog sowie den Release Notes zu entnehmen.

(mai)