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- :
- Der Build-Skript-Generator basierend auf dem Ninja-Toolkit erhielt erste Unterstützung für die Sprache , die von Apple entwickelt wird;
- Unterstützung für die Clang-Compiler-Variante für Windows hinzugefügt, die mit ABI MSVC kompiliert, aber GNU-Stil-Befehlszeilenoptionen verwendet;
- Die Variablen CMAKE_MSVC_RUNTIME_LIBRARY und MSVC_RUNTIME_LIBRARY wurden hinzugefügt, um die von den auf ABI MSVC basierenden Compilern (MS Visual Studio) verwendeten Runtime-Bibliotheken auszuwählen;
- Für Compiler wie MSVC wurden die Auflistungen der Steuerflags für Warnmeldungen wie „/W3“ in den Standardwert von CMAKE__FLAGS eingestellt;
- Der Generatorausdruck „COMPILE_LANG_AND_ID:“ wurde hinzugefügt, um Compileroptionen für Zieldateien zu definieren, die die Variablen CMAKE__COMPILER_ID und LANGUAGE für jede Code-Datei verwenden;
- In die Generatorausdrücke C_COMPILER_ID, CXX_COMPILER_ID,
CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
COMPILE_LANG_AND_ID und PLATFORM_ID wurde die Unterstützung für die Zuordnung eines Wertes zu einer durch Kommas getrennten Liste hinzugefügt; - Die Variable CMAKE_FIND_PACKAGE_PREFER_CONFIG wurde hinzugefügt, die bewirkt, dass der Aufruf von find_package() zuerst nach einer Paketkonfigurationsdatei sucht, selbst wenn ein Suchmodul verfügbar ist;
- Für Schnittstellenbibliotheken wurde die Unterstützung für die Festlegung der Eigenschaften PUBLIC_HEADER und PRIVATE_HEADER hinzugefügt, deren Header durch den Befehl install(TARGETS) über die Argumente PUBLIC_HEADER und PRIVATE_HEADER festgelegt werden können;
- Die Variable CMAKE_VS_JUST_MY_CODE_DEBUGGING und das Ziel-Property VS_JUST_MY_CODE_DEBUGGING wurden hinzugefügt, um den Modus „Just My Code“ im Visual Studio Debugger bei der Kompilierung mit MSVC cl 19.05 und neueren Versionen zu aktivieren;
- Das FindBoost-Modul wurde überarbeitet und verarbeitet jetzt vollständiger im Config- und Modulmodus, wenn andere Suchmodule vorhanden sind;
- Im Befehl message() wurde die Unterstützung für die Typen NOTICE, VERBOSE,
DEBUG und TRACE hinzugefügt; - Der Befehl „export(PACKAGE)“ macht jetzt nichts, bis er explizit über die Variable CMAKE_EXPORT_PACKAGE_REGISTRY aktiviert wird.
Quelle: opennet.ru
