release van de cross-platform open source build-scripts generator , dat dient als alternatief voor Autotools en wordt gebruikt in projecten zoals KDE, LLVM/Clang, MySQL, MariaDB, ReactOS en Blender. De code van CMake is geschreven in C++ en wordt verspreid onder de BSD-licentie.
CMake valt op door het bieden van een eenvoudige script-taal, extensiemogelijkheden via modules, een minimaal aantal afhankelijkheden (geen binding aan M4, Perl of Python), ondersteuning voor cachen, tools voor cross-compilatie, ondersteuning voor het genereren van build-bestanden voor een breed scala aan build-systemen en compilers, en de aanwezigheid van de tools ctest en cpack voor het definiëren van test- en pakket build-scripts, evenals de cmake-gui-tool voor interactieve configuratie van build-instellingen.
Belangrijkste :
- In de build script generator op basis van Ninja-toolkit is een aanvankelijke ondersteuning van de taal toegevoegd , ontwikkeld door Apple;
- Ondersteuning toegevoegd voor de Clang-compiler voor Windows, die de build uitvoert met MSVC ABI, maar GNU-stijl commandoregelopties gebruikt;
- Toegevoegd CMAKE_MSVC_RUNTIME_LIBRARY en MSVC_RUNTIME_LIBRARY variabelen om de runtime-bibliotheken te kiezen die worden gebruikt door compilers op basis van MSVC ABI (MS Visual Studio);
- Voor compilers zoals MSVC is het standaardgedrag van CMAKE__FLAGS aangepast zodat niet langer controlevlaggen zoals ‘/W3’ worden weergegeven;
- Een generatorexpressie ‘COMPILE_LANG_AND_ID:’ toegevoegd voor het definiëren van compileropties voor doelbestanden, die CMAKE__COMPILER_ID en LANGUAGE variabelen voor elk codebestand toepassen;
- In de generatorexpressies C_COMPILER_ID, CXX_COMPILER_ID,
CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
COMPILE_LANG_AND_ID en PLATFORM_ID is ondersteuning toegevoegd voor het overeenkomen van één waarde met een lijst, waarvan de elementen door komma's zijn gescheiden; - Toegevoegd CMAKE_FIND_PACKAGE_PREFER_CONFIG variabele, waarbij de aanroep van find_package() eerst naar het configuratiebestand van het pakket zoekt, zelfs als een zoekmodule beschikbaar is;
- Voor interfacebibliotheken is ondersteuning toegevoegd voor het instellen van de PUBLIC_HEADER en PRIVATE_HEADER eigenschappen, waarvan de headers kunnen worden ingesteld via de command install(TARGETS) door de argumenten PUBLIC_HEADER en PRIVATE_HEADER door te geven;
- Toegevoegd CMAKE_VS_JUST_MY_CODE_DEBUGGING variabele en gericht eigenschap VS_JUST_MY_CODE_DEBUGGING voor het inschakelen van de ‘Just My Code’ modus in de Visual Studio-debugger bij compileren met MSVC cl 19.05 en nieuwere versies;
- De FindBoost-module is herwerkt en functioneert nu beter in de Config- en Module-modus in aanwezigheid van andere zoekmodules;
- Ondersteuning voor de types NOTICE, VERBOSE toegevoegd in de message() commando,
DEBUG en TRACE; - Het commando ‘export(PACKAGE)’ doet nu niets totdat het expliciet is ingeschakeld via de CMAKE_EXPORT_PACKAGE_REGISTRY variabele.
Bron: opennet.ru
