Die Veröffentlichung des plattformübergreifenden, Open-Source-Build-Systems CMake 3.22 wurde vorgestellt, welches als Alternative zu Autotools dient und in Projekten wie KDE, LLVM/Clang, MySQL, MariaDB, ReactOS und Blender verwendet wird. Der CMake-Code ist in C++ geschrieben und steht unter der BSD-Lizenz.
CMake zeichnet sich durch eine einfache Skriptsprache, Erweiterungsmöglichkeiten durch Module, eine minimale Abhängigkeit (keine Bindung an M4, Perl oder Python), Unterstützung für Caching, Werkzeuge für Cross-Compiling, die Generierung von Build-Dateien für eine breite Palette von Build-Systemen und Compilern, sowie die Tools ctest und cpack zur Definition von Test- und Paketbuild-Skripts aus, sowie durch das cmake-gui-Tool für die interaktive Konfiguration von Build-Parametern.
Hauptverbesserungen:
- In den Einstellungen für Compiler-Parameter (Compile Features) wurde die Möglichkeit hinzugefügt, Compiler-Erweiterungen zu aktivieren und zu deaktivieren, ohne das Unterstützungsniveau des Standards angeben zu müssen. Außerdem wurde das Setzen zusätzlicher Flags mit dem Standardsprachniveau ausgeschlossen, wenn die gewählten Einstellungen den voreingestellten Compilerparametern entsprechen.
- In der Funktion cmake_host_system_information() wurde die Möglichkeit hinzugefügt, die ID des Betriebssystems abzufragen, die in der Datei /etc/os-release gespeichert ist.
- Die Umgebungsvariablen CMAKE_BUILD_TYPE und CMAKE_CONFIGURATION_TYPES wurden hinzugefügt, über die ein Standardwert für die gleichnamigen CMake-Variablen festgelegt werden kann.
- Die Variable "CMAKE_REQUIRE_FIND_PACKAGE_" wurde hinzugefügt, die den Aufruf der Funktion find_package() zur Erkennung des angegebenen Pakets als zwingend festlegt.
- Die Umgebungsvariable "CMAKE_INSTALL_MODE" wurde hinzugefügt, um symbolische Links anstelle von Datei-Kopien beim Aufruf von "install()" zu erstellen.
- Das Flag "CMAKE__LINK_WHAT_YOU_USE_FLAG" und die Variable "CMAKE_LINK_WHAT_YOU_USE_CHECK" wurden hinzugefügt, um Linker-Flags einzustellen und zu überprüfen.
- Im Modul FetchContent wird sichergestellt, dass die gesetzten Variablen "CMAKE_TLS_VERIFY", "CMAKE_TLS_CAINFO", "CMAKE_NETRC" und "CMAKE_NETRC_FILE" im Build-Skript externer Projekte übergeben werden (früher wurden diese Parameter ignoriert).
- Im vom Modul "CMakeDependentOption" bereitgestellten Makro "cmake_dependent_option()" wurde vollständige Unterstützung für die Syntax bedingter Ausdrücke hinzugefügt.
- Die Module "FindJasper" und "FindMatlab" bieten jetzt importierbare Ziele an.
- Im Attribut "VS_SETTINGS" wird die Unterstützung für alle Typen von Quelltextdateien realisiert.
- Der Generator "Visual Studio 10 2010" wurde als veraltet erklärt und wird in einer der nächsten Versionen entfernt.
Quelle: opennet.ru
