Plattformübergreifende Veröffentlichung des offenen Build-Skript-Generators , das als Alternative zu Autotools dient und in Projekten wie KDE, LLVM/Clang, MySQL, MariaDB, ReactOS und Blender verwendet wird. Der Code von CMake ist in C++ geschrieben und wird unter der BSD-Lizenz veröffentlicht.
CMake zeichnet sich durch eine einfache Skriptsprache, Erweiterungsmöglichkeiten durch Module, eine minimale Abhängigkeit (keine Bindung an M4, Perl oder Python), Unterstützung für Caching, Werkzeuge für Cross-Compiling, die Generierung von Build-Dateien für eine breite Palette von Build-Systemen und Compilern, sowie die Tools ctest und cpack zur Definition von Test- und Paketbuild-Skripts aus, sowie durch das cmake-gui-Tool für die interaktive Konfiguration von Build-Parametern.
Haupt- :
- Für die CUDA-Sprache wurde die Möglichkeit hinzugefügt, mit Clang auf Plattformen zu bauen, die sich von Windows unterscheiden. Die separate Kompilierung von CUDA wird derzeit auf keiner Plattform unterstützt.
- Unterstützung für das Profiling von CMake-Szenarien hinzugefügt, unter Verwendung der Optionen „—profiling-output“ und „—profiling-format“.
- In die Befehle add_library() und add_executable() wurde die Unterstützung für die Erstellung von Alias-Zielen eingeführt, die auf nicht globale importierte Ziele verweisen.
- Der Befehl cmake_language() wurde hinzugefügt, um metaprogrammatische Operationen auf skriptbasierten oder eingebetteten Befehlen auszuführen.
- Der Unterbefehl file(CONFIGURE) wurde hinzugefügt, der funktional dem Befehl configure_file() ähnelt, aber den Inhalt als Zeichenfolge anstelle eines Dateihandles übergibt.
- In die Befehle find_program(), find_library(), find_path() und find_file() wurde die Option REQUIRED hinzugefügt, die vorschreibt, dass die Verarbeitung mit einem Fehler gestoppt wird, wenn nichts gefunden wurde.
- Die Variable „CMAKE_CUDA_ARCHITECTURES“ wurde hinzugefügt, um die CUDA-Architektur anzugeben (wird automatisch festgelegt, wenn die Variable „CMAKE_CUDA_COMPILER_ID“ den Wert „NVIDIA“ hat).
- Die Eigenschaft „UNITY_BUILD_MODE“ wurde hinzugefügt, um in den Generatoren einen Algorithmus zur Gruppierung der eingeschlossenen Quellcode-Dateien auszuwählen (BATCH, GROUP).
- Das Modul CheckLinkerFlag wurde hinzugefügt, um die Richtigkeit von Linker-Flags zu überprüfen.
- Generatorausdrücke $, $, $ und $ wurden hinzugefügt.
- Die Variable CTEST_RESOURCE_SPEC_FILE wurde zu dem ctest-Tool hinzugefügt, um eine Datei mit Ressourcenspezifikationen anzugeben.
Quelle: opennet.ru
