Veröffentlichung des CMake 3.15 Build-Systems

fand statt Veröffentlichung eines plattformübergreifenden Open-Build-Skriptgenerators CMake 3.15, 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:

  • Dem Ninja-basierten Build-Skript-Generator wurde erste Sprachunterstützung hinzugefügt Swift, entwickelt von Apple;
  • Unterstützung für eine Variante des Clang-Compilers für Windows hinzugefügt, der mit der MSVC-ABI erstellt, aber Befehlszeilenoptionen im GNU-Stil verwendet;
  • CMAKE_MSVC_RUNTIME_LIBRARY- und MSVC_RUNTIME_LIBRARY-Variablen hinzugefügt, um Laufzeitbibliotheken auszuwählen, die von Compilern basierend auf dem MSVC ABI (MS Visual Studio) verwendet werden;
  • Bei Compilern wie MSVC stoppt CMAKE__FLAGS standardmäßig die Auflistung von Warnkontrollflags wie „/W3“;
  • Ein Generatorausdruck „COMPILE_LANG_AND_ID:“ wurde hinzugefügt, um Compileroptionen für Zieldateien zu definieren, wobei die Variablen CMAKE__COMPILER_ID und LANGUAGE für jede Codedatei verwendet werden;
  • In den Generatorausdrücken C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID und PLATFORM_ID haben Unterstützung für den Abgleich eines einzelnen Werts mit einer Liste hinzugefügt, deren Elemente durch ein Komma getrennt sind;

  • Variable CMAKE_FIND_PACKAGE_PREFER_CONFIG hinzugefügt, sodass beim Aufruf von find_package() zuerst nach der Konfigurationsdatei des Pakets gesucht wird, auch wenn ein Finder verfügbar ist;
  • Für Schnittstellenbibliotheken wurde Unterstützung für das Festlegen der Eigenschaften PUBLIC_HEADER und PRIVATE_HEADER hinzugefügt, mit denen Header mithilfe des Befehls install(TARGETS) durch Übergabe der Argumente PUBLIC_HEADER und PRIVATE_HEADER festgelegt werden können.
  • CMAKE_VS_JUST_MY_CODE_DEBUGGING-Variable und Zieleigenschaft VS_JUST_MY_CODE_DEBUGGING hinzugefügt, um den „Just My Code“-Modus im Visual Studio-Debugger beim Kompilieren mit MSVC cl 19.05 und neueren Versionen zu aktivieren;
  • Das FindBoost-Modul wurde neu gestaltet und funktioniert jetzt im Konfigurations- und Modulmodus ganzheitlicher, wenn andere Suchmodule vorhanden sind.
  • Der Befehl message() unterstützt jetzt die Typen NOTICE, VERBOSE,
    DEBUG und TRACE;

  • Der Befehl „export(PACKAGE)“ führt jetzt nichts aus, es sei denn, er wird explizit über die Variable CMAKE_EXPORT_PACKAGE_REGISTRY aktiviert.

Source: opennet.ru

Kommentar hinzufügen