Release des Build-Systems CMake 4.0.0

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

60GB SSD 8Gb DDR4