Die Veröffentlichung des plattformübergreifenden Open Source Build-Script-Generators CMake 4.0.0 wird als Alternative zu Autotools vorgestellt und wird in Projekten wie KDE, LLVM/Clang, MySQL, MariaDB, ReactOS und Blender verwendet. Der CMake-Code ist in C++ geschrieben und wird unter der BSD-Lizenz vertrieben.
CMake zeichnet sich durch die Bereitstellung einer einfachen Skriptsprache aus, Möglichkeiten zur Erweiterung über Module, Unterstützung von Caching, Vorhandensein von Werkzeugen für Cross-Compilation, Unterstützung der Generierung von Build-Dateien für eine Vielzahl von Build-Systemen und Compilern, sowie über die Tools ctest und cpack zur Definition von Test- und Paketbuild-Skripten, und dem cmake-gui-Tool zur interaktiven Anpassung der Build-Parameter.
Hauptänderungen:
- Die Unterstützung für CMake-Versionen vor 3.5 wurde eingestellt. Bei der Bindung an nicht unterstützte Versionen werden nun Fehler in den Funktionen cmake_minimum_required() und cmake_policy() ausgegeben.
- Eine Umgebungsvariable „CMAKE_POLICY_VERSION_MINIMUM“ wurde hinzugefügt, um die minimale CMake-Version zu überschreiben, die zur Erstellung des Projekts erforderlich ist. Diese neue Variable ermöglicht es, die Aufrufe von cmake_minimum_required(VERSION) und cmake_policy(VERSION) im Projekt selbst zu umgehen, z.B. zur Anpassung der Versionsrichtlinien in Projekten, die diese Möglichkeit nicht vorsehen.
- Im Generatorausdruck „$“ wurde die Operation „NATIVE_PATH“ hinzugefügt, um einen Dateipfad von der CMake-Darstellung (wo zur Trennung von Verzeichnissen immer „/“ verwendet wird) in den Systempfad (in Unix-ähnlichen Systemen wird „/“ und in Windows „\“ verwendet) umzuwandeln.
- Auf der macOS-Plattform wird beim Einsatz von Build-Script-Generatoren auf Basis von Ninja und Makefile, wenn sich ein Compiler im Verzeichnis „/usr/bin“ befindet, dieser unverändert gelassen, ohne an den Compiler in Xcode gebunden zu werden. Bei der Erstellung für die Plattform 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 ausgewählt und nicht von CMake).
- 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 enthält jetzt die Option „—project-file“, um einen alternativen Namen für die CMakeLists.txt-Datei festzulegen.
- Der CPack-Generator unterstützt jetzt die Erstellung von unkomprimierten Tar-Archiven.
- Der Befehl target_link_libraries() sowie die Variablen CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* unterstützen jetzt das Präfix „LINKER:“.
- 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 wurden hinzugefügt: DEBUGGER_WORKING_DIRECTORY und VS_SOLUTION_ITEMS (zum Anhängen von Dateien an .sln für Visual Studio).
- Bereitstellung von fertig konfigurierten CMake-Bauten für SunOS für die Architekturen sparc64 und x86_64.
Quelle: opennet.ru
