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.
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.
Neues fĂĽr Funktionen und Befehle
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.
CTest und CPack
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)