Veröffentlichung des CMake 3.17.0 Build-Systems

Eingereicht von Veröffentlichung eines plattformübergreifenden Open-Build-Skriptgenerators CMake 3.17, das als Alternative zu Autotools fungiert und in Projekten wie KDE, LLVM/Clang, MySQL, MariaDB, ReactOS und Blender verwendet wird. Der CMake-Code ist in C++ geschrieben und wird unter der BSD-Lizenz vertrieben.

CMake zeichnet sich durch die Bereitstellung einer einfachen Skriptsprache, einer Möglichkeit zur Erweiterung der Funktionalität durch Module, einer minimalen Anzahl von Abhängigkeiten (keine Bindung an M4, Perl oder Python), Caching-Unterstützung, dem Vorhandensein von Tools für die Kreuzkompilierung und Unterstützung für die Generierung von Builds aus Dateien für eine Vielzahl von Build-Systemen und Compilern, das Vorhandensein der Dienstprogramme ctest und cpack zum Definieren von Testskripten und Erstellen von Paketen sowie das Dienstprogramm cmake-gui zum interaktiven Festlegen von Build-Parametern.

Haupt- Verbesserungen:

  • Ein neuer Assembly-Skriptgenerator basierend auf dem Ninja-Toolkit wurde hinzugefügt – „Ninja Multi-Config“, der sich vom alten Generator durch die Fähigkeit unterscheidet, mehrere Assembly-Konfigurationen gleichzeitig zu verarbeiten.
  • Im Assembly-Skriptgenerator für Visual Studio erschienen die Möglichkeit, mit jeder Konfiguration verknüpfte Quelldateien zu definieren (Quellen pro Konfiguration).
  • Den Tools zum Festlegen von Compiler-Parametern (Compile Features) wurde die Möglichkeit hinzugefügt, Metaparameter für CUDA („cuda_std_03“, „cuda_std_14“ usw.) festzulegen.
  • Variablen „CMAKE_CUDA_RUNTIME_LIBRARY“ und „CUDA_RUNTIME_LIBRARY“ hinzugefügt, um den Typ der Laufzeitbibliotheken bei Verwendung von CUDA auszuwählen.
  • Das Modul „FindCUDAToolkit“ wurde hinzugefügt, um das auf dem System verfügbare CUDA-Toolkit zu ermitteln, ohne die CUDA-Sprache zu aktivieren.
  • Befehl „--debug-find“ zu cmake hinzugefügt, um beim Durchführen von Suchvorgängen zusätzliche lesbare Diagnosen auszugeben. Für ähnliche Zwecke wurde die Variable CMAKE_FIND_DEBUG_MODE hinzugefügt.
  • Unterstützung für die Suche nach CURL-Tools mithilfe der von cmake generierten Konfigurationsdateien „CURLConfig.cmake“ zum Modul „FindCURL“ hinzugefügt. Um dieses Verhalten zu deaktivieren, wird die Variable CURL_NO_CURL_CMAKE bereitgestellt.
  • Das FindPython-Modul hat die Möglichkeit hinzugefügt, in virtuellen Umgebungen, die mit „conda“ verwaltet werden, nach Python-Komponenten zu suchen.
  • Das Dienstprogramm ctest hat die Optionen „--no-tests=[error|ignore]“ hinzugefügt, um das Verhalten bei fehlenden Tests zu definieren, und „--repeat“, um die Bedingungen für die erneute Ausführung von Tests festzulegen (bis zum Bestehen, Nach-Timeout).
  • Die Assembly-Zieleigenschaften INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES und INTERFACE_LINK_DEPENDS werden jetzt zwischen den internen Abhängigkeiten statisch assemblierter Bibliotheken übertragen.
  • Bei Verwendung des MinGW-Toolkits ist die Suche nach DLL-Dateien mit dem Befehl find_library standardmäßig deaktiviert (stattdessen wird standardmäßig versucht, „.dll.a“-Bibliotheken zu importieren).
  • Die Logik zur Auswahl des Ninja-Dienstprogramms im Ninja-Generator hängt jetzt nicht vom Namen der ausführbaren Datei ab – es wird das erste Ninja-Build-, Ninja- oder Samu-Dienstprogramm verwendet, das in den durch die Umgebungsvariable PATH definierten Pfaden gefunden wird.
  • Zu cmake wurde ein „-E rm“-Befehl hinzugefügt, der zum Entfernen von Dateien und Verzeichnissen anstelle der separaten Befehle „-E Remove“ und „-E Remove_Directory“ verwendet werden kann.

Source: opennet.ru

Kommentar hinzufügen