a cross-platform open script generator for builds , serving as an alternative to Autotools and used in projects like KDE, LLVM/Clang, MySQL, MariaDB, ReactOS, and Blender. The CMake code is written in C++ and is distributed under the BSD license.
A CMake kiemelkedő a könnyen használható scripting nyelvével, a funkcionalitás kiterjesztésének lehetőségével modulokon keresztül, minimális függőségekkel (nincsenek M4, Perl vagy Python függőségek), cache támogatással, cross-compiling eszközökkel, széles spektrumú build rendszerek és fordítók számára készült build fájlok generálásával, valamint a ctest és cpack eszközök biztosításával, amelyek a tesztelő és csomagoló script meghatározására szolgálnak, továbbá a cmake-gui eszközzel, amely interaktív módon teszi lehetővé a build paraméterek beállítását.
Fő :
- A Ninja alapú build script generátorba bevezetésre került a nyelv kezdeti támogatása , amelyet az Apple fejleszt;
- Hozzáadva a Clang fordító Windows-os változatának támogatása, amely az MSVC ABI-val állítja elő a buildet, de GNU stílusú parancssori opciókat használ;
- Hozzáadva a CMAKE_MSVC_RUNTIME_LIBRARY és MSVC_RUNTIME_LIBRARY változók a runtime könyvtárak kiválasztásához, amelyeket az MSVC ABI (MS Visual Studio) alapú fordítók használnak;
- MSVC-szerű fordítók esetén a CMAKE__FLAGS alapértelmezés szerint megszüntette a figyelmeztetési kimeneti vezérlő zászlók, mint például a „/W3”, felsorolását;
- Hozzáadva a generátor kifejezés "COMPILE_LANG_AND_ID:" a fordító opciók meghatározásához a célszkriptek számára, amely a CMAKE__COMPILER_ID és LANGUAGE változókat alkalmazza minden kód fájlra;
- A generátor kifejezésekhez, mint például C_COMPILER_ID, CXX_COMPILER_ID,
CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
COMPILE_LANG_AND_ID és PLATFORM_ID hozzáadva támogatás egy érték lista értékével való összehasonlításához, amelyben az elemeket vessző választja el; - Hozzáadva a CMAKE_FIND_PACKAGE_PREFER_CONFIG változó, amelynél a find_package() meghívás elsődlegesen a csomag konfigurációs fájl keresését hajtja végre, még akkor is, ha keresőmodul elérhető;
- Interfész könyvtárakhoz hozzáadva a PUBLIC_HEADER és PRIVATE_HEADER tulajdonságok beállításának támogatása, amelyeket a install(TARGETS) parancs segítségével lehet beállítani a PUBLIC_HEADER és PRIVATE_HEADER argumentumok átadásával;
- Hozzáadva a CMAKE_VS_JUST_MY_CODE_DEBUGGING változó és céljellemző VS_JUST_MY_CODE_DEBUGGING a 'Just My Code' üzemmód engedélyezésére a Visual Studio debuggerében az MSVC cl 19.05-ös és újabb verziók használatakor;
- Átdolgozva a FindBoost modult, amely most már egészében jobban működik a Config és Module üzemmódokban más kereső modulok jelenlétében;
- A message() parancs támogatása hozzáadva a NOTICE, VERBOSE,
DEBUG és TRACE típusokhoz; - Az 'export(PACKAGE)' parancs most semmit sem csinál, amíg kifejezetten nem engedélyezik a CMAKE_EXPORT_PACKAGE_REGISTRY változó révén.
Forrás: opennet.ru
