Release der Build-System-Version CMake 3.17.0

Präsentiert Release des plattformübergreifenden, offenen Build-Skript-Generators CMake 3.17, das 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 die Bereitstellung einer einfachen Skriptsprache, die Möglichkeit zur Erweiterung durch Module, einer minimalen Anzahl an Abhängigkeiten (keine Bindung an M4, Perl oder Python), Unterstützung für Caching, Tools zum Cross-Compiling, die Generierung von Build-Dateien für eine Vielzahl von Build-Systemen und Compilern sowie die Verfügbarkeit von Tools wie ctest und cpack zur Definition von Testskripten und Paket-Builds aus, einschließlich des Tools cmake-gui für die interaktive Anpassung von Build-Parametern.

Haupt Verbesserungen:

  • Ein neuer Build-Generator auf Basis des Ninja-Toolkits wurde hinzugefügt – „Ninja Multi-Config“, der sich vom alten Generator dadurch unterscheidet, dass er mehrere Build-Konfigurationen gleichzeitig verarbeiten kann.
  • Im Build-Generator für Visual Studio wurde eingeführt besteht die Möglichkeit, Quellcode-Dateien zu definieren, die jeder Konfiguration zugeordnet sind (per-config sources).
  • In die Compiler-Einstellungswerkzeuge (Compile Features) wurde die Möglichkeit zur Angabe von Metaparametern für CUDA („cuda_std_03“, „cuda_std_14“ usw.) hinzugefügt.
  • Die Variablen „CMAKE_CUDA_RUNTIME_LIBRARY“ und „CUDA_RUNTIME_LIBRARY“ wurden hinzugefügt, um den Typ der Runtime-Bibliotheken bei der Verwendung von CUDA auszuwählen.
  • Ein Modul „FindCUDAToolkit“ wurde hinzugefügt, um das im System verfügbare CUDA-Toolkit zu erkennen, ohne die CUDA-Sprache zu aktivieren.
  • Im cmake-Tool wurde der Befehl „—debug-find“ eingefügt, um zusätzliche lesbare Diagnosen beim Suchvorgang auszugeben. Eine ähnliche Funktionalität wurde mit der Variablen CMAKE_FIND_DEBUG_MODE hinzugefügt.
  • Im Modul „FindCURL“ wurde die Unterstützung für die Suche nach dem CURL-Toolkit mittels generierter cmake-Konfigurationsdateien „CURLConfig.cmake“ hinzugefügt. Um dieses Verhalten zu deaktivieren, steht die Variable CURL_NO_CURL_CMAKE zur Verfügung.
  • Im Modul FindPython wurde die Möglichkeit hinzugefügt, Python-Komponenten in virtuellen Umgebungen, die mit „conda“ verwaltet werden, zu suchen.
  • Der Utility ctest wurden die Optionen „—no-tests=[error|ignore]“ hinzugefügt, um das Verhalten im Falle von fehlenden Tests zu definieren, sowie „—repeat“, um die Bedingungen für das erneute Ausführen von Tests festzulegen (until-pass, after-timeout).
  • Es wird sichergestellt, dass die Eigenschaften des Build-Ziels INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES und INTERFACE_LINK_DEPENDS in die internen Abhängigkeiten von statisch zu erstellenden Bibliotheken übertragen werden.
  • Bei Verwendung des MinGW-Tools 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-Tools im Ninja-Generator hängt jetzt nicht mehr vom Dateinamen ab — es wird das erste gefundene Tool ninja-build, ninja oder samu verwendet, das in den durch die Umgebungsvariable PATH definierten Pfaden gefunden wird.
  • Der Utility cmake wurde der Befehl „-E rm“ hinzugefügt, der zur Entfernung von Dateien und Verzeichnissen anstelle der separaten Befehle „-E remove“ und „-E remove_directory“ verwendet werden kann.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster