Die Cross-Plattform-Version des Open-Source-Build-Skript-Generators CMake 4.0.0 wurde veröffentlicht, der als Alternative zu Autotools dient und in Projekten wie KDE, LLVM/Clang, MySQL, MariaDB, ReactOS und Blender eingesetzt wird. Der CMake-Code ist in C++ geschrieben und unter der BSD-Lizenz erhältlich.
CMake zeichnet sich durch die Bereitstellung einer einfachen Skriptsprache aus, die Erweiterungsmöglichkeiten durch Module, Caching-Unterstützung, Werkzeuge für das Cross-Compiling, die Generierung von Build-Dateien für eine breite Palette von Build-Systemen und Compilern sowie die Utilities ctest und cpack zur Definition von Test- und Paket-Builder-Skripten umfasst. Darüber hinaus gibt es das Tool cmake-gui für die interaktive Anpassung der Build-Parameter.
Wesentliche Änderungen:
- Die Unterstützung für CMake-Versionen vor 3.5 wurde eingestellt. Bei der Verwendung von nicht unterstützten Versionen in den Funktionen cmake_minimum_required() und cmake_policy() wird nun ein Fehler ausgegeben.
- Die Umgebungsvariable „CMAKE_POLICY_VERSION_MINIMUM“ wurde hinzugefügt, um die minimal erforderliche CMake-Version zur Erstellung des Projekts zu überschreiben. Diese neue Variable ermöglicht es, die Aufrufe von cmake_minimum_required(VERSION) und cmake_policy(VERSION) im Projekt selbst zu vermeiden, beispielsweise zur Einstellung von Versionsrichtlinien in Projekten, die solche Optionen nicht vorsehen.
- Der Generatorausdruck „$“ hat die Operation „NATIVE_PATH“ erhalten, um den Dateipfad aus der CMake-Darstellung (bei der Verwendung von „/“ zur Trennung von Verzeichnissen) in den Systempfad (in Unix-ähnlichen Systemen wird „/“ verwendet, während in Windows „\“ genutzt wird) zu konvertieren.
- Auf der macOS-Plattform, beim Einsatz von Build-Skript-Generatoren basierend auf dem Ninja-Tool und Makefile-Generatoren, bleibt der Compiler im Verzeichnis «/usr/bin», sofern vorhanden, unverändert und ist nicht mehr an den Compiler in Xcode gebunden. Bei der Erstellung für macOS wird standardmäßig die Auswahl des SDK und die Übergabe des Flags «-isysroot» an den Compiler eingestellt (das SDK wird jetzt vom Compiler selbst und nicht von CMake ausgewählt).
- Die Eigenschaft LINK_WARNING_AS_ERROR wurde hinzugefügt, bei der Linker-Warnungen als Fehler behandelt werden. Um diese Eigenschaft zu deaktivieren, wurde die Befehlszeilenoption «—link-no-warning-as-error» hinzugefügt.
- Der cmake-Befehl erhielt die Option «—project-file», um einen alternativen Namen für die Datei CMakeLists.txt festzulegen.
- Im CPack-Generator wurde die Möglichkeit zur Erstellung von nicht komprimierten tar-Archiven hinzugefügt.
- In die Funktion target_link_libraries() sowie in die Variablen CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS* und CMAKE_MODULE_LINKER_FLAGS* wurde die Unterstützung für das Präfix «LINKER:» integriert.
- Neue Variablen wurden hinzugefügt:
- CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL,
- CMAKE__LINK_MODE,
- CMAKE__DEVICE_LINK_MODE,
- CMAKE_LINK_WARNING_AS_ERROR,
- CMAKE_MSVC_RUNTIME_CHECKS,
- CMAKE_DEBUGGER_WORKING_DIRECTORY,
- CMAKE_XCODE_SCHEME_LLDB_INIT_FILE,
- CMAKE_XCODE_SCHEME_TEST_CONFIGURATION.
- Neue Eigenschaften hinzugefügt: DEBUGGER_WORKING_DIRECTORY und VS_SOLUTION_ITEMS (zum Anfügen von Dateien an .sln für Visual Studio).
- Bereitstellung fertiger CMake-Bauten für SunOS für die Architekturen sparc64 und x86_64.
Quelle: opennet.ru
