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 :
- Voor de CUDA-taal is het nu mogelijk om te bouwen met Clang op platforms die niet Windows zijn. Gescheiden compilatie van CUDA wordt nog op geen enkel platform ondersteund.
- Ondersteuning voor het profileren van CMake-scripts is toegevoegd, met gebruik van de opties "āprofiling-output" en "āprofiling-format".
- Aan de commando's add_library() en add_executable() is ondersteuning toegevoegd voor het creëren van aliasdoelen die verwijzen naar niet-globale geïmporteerde doelen.
- De commando cmake_language() is toegevoegd voor meta-bewerkingen op script of ingebouwde commando's.
- De subopdracht file(CONFIGURE) is toegevoegd, die functioneel vergelijkbaar is met de opdracht configure_file(), maar de inhoud als een string doorgeeft in plaats van als een bestandslink.
- Aan de commando's find_program(), find_library(), find_path() en find_file() is de optie REQUIRED toegevoegd, die aangeeft dat de verwerking met een fout moet worden gestopt als er niets is gevonden.
- De variabele "CMAKE_CUDA_ARCHITECTURES" is toegevoegd voor het opgeven van de CUDA-architectuur (automatisch ingesteld als de variabele "CMAKE_CUDA_COMPILER_ID" de waarde "NVIDIA" heeft).
- Een eigenschap "UNITY_BUILD_MODE" is toegevoegd voor het kiezen van de algoritmes voor het groeperen van opgenomen bronbestanden in de generators (BATCH, GROUP).
- De module CheckLinkerFlag is toegevoegd om de correctheid van linkflags te controleren.
- Generatoruitdrukkingen $, $, $ en $ zijn toegevoegd.
- Er is een variabele CTEST_RESOURCE_SPEC_FILE toegevoegd aan de utility ctest om een bestandslink naar de resource specificatie op te geven.
Bron: opennet.ru
