Pred niekoľkými dňami Bol vydaný multiplatformový otvorený generátor skriptov CMake 3.15 ktorý funguje ako alternatíva k nástrojom Autotools a používa sa v projektoch ako KDE, LLVM / Clang, MySQL, MariaDB, ReactOS a Blender.
CMake je multiplatformový nástroj na generovanie alebo automatizáciu kódu. Názov je skratkou pre výraz „cross platform make“ (značka „cross platform make“), ktorá sa v názve nepoužíva iba ako značka „make“., CMake je samostatná sada a vyššia úroveň ako bežný systém výroby systému Unix, ktorý je podobný automatickým nástrojom.
O spoločnosti CMake
CMake je pozoruhodný poskytnutím jednoduchého skriptovacieho jazyka, nástroje na rozšírenie funkčnosti naprieč modulmi, minimálny počet závislostí (bez väzby na M4, Perl alebo Python), podpora ukladania do pamäte cache, dostupnosť nástrojov na krížovú kompiláciu, podpora generovania súborov zostavy pre širokú škálu kompilátorové systémy a kompilátory.
Obslužné programy ctest a cpack na definovanie testovacích scenárov a vytváranie balíkov s obslužným programom cmake-gui na interaktívnu konfiguráciu parametrov zostavenia.
CMake sa používa na riadenie procesu kompilácie softvéru pomocou jednoduchých a nezávislých konfiguračných súborov platformy. Cmake generuje natívne makefiles a pracovné priestory, ktoré je možné použiť v požadovanom vývojovom prostredí.
Je porovnateľný so systémom Unix GNU build v tom, že proces je riadený konfiguračnými súbormi, v prípade CMake s názvom CMakeLists.txt.
Na rozdiel od GNU build systému, ktorý je obmedzené na platformy Unix, CMake podporuje generovanie súborov pre rôzne operačné systémy, čo uľahčuje údržbu a eliminuje potrebu mať pre každú platformu viac súborov.
Proces zostavovania je riadený vytvorením jedného alebo viacerých súborov CMakeLists.txt v každom adresári (vrátane podadresárov).
Kód CMake je napísaný v jazyku C ++ a je distribuovaný pod licenciou BSD.
CMake 3.15 Hlavné nové funkcie
Táto nová verzia zvýraznená príchodom počiatočnej podpory generátora pre jazyk Swift vyvinutý spoločnosťou Apple, bol pridaný do generátora montážnych skriptov Ninja Toolkit.
Okrem toho, prichádza aj podpora pre možnosť kompilátora Clang pre Windows, ktorý je postavený na ABI MSVC, ale využíva možnosti príkazového riadku v štýle GNU.
Vývojári zdôrazňujú, že premenné CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
sa pridávajú na výber runtime knižníc používaných kompilátormi ABI MSVC
(MSVisual Studio).
Pre zostavovateľov ako MSVC
v CMAKE__FLAGS
V predvolenom nastavení je zoznam príznakov riadenia varovania, ako napríklad „/ W3“, zastavený.
Z ďalších vylepšení, ktoré sú zvýraznené v oznámení o vydaní tejto novej verzie, nájdeme nasledujúce:
- Pridaný generujúci výraz '
COMPILE_LANG_AND_ID
: »Definovať možnosti kompilátora pre cieľové súbory, ktoré používajú premennéCMAKE__COMPILER_ID
yLANGUAGE
pre každý súbor s kódom - Generátorové výrazy
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
pridať podporu pre priradenie hodnoty k zoznamu, položky oddelené čiarkami - Premenná bola pridaná
CMAKE_FIND_PACKAGE_PREFER_CONFIG
, v ktorom bude volanie find_package () najskôr hľadať konfiguračný súbor balíka, aj keď je k dispozícii vyhľadávací modul - Pre knižnice rozhraní bola pridaná podpora pre nastavenie vlastností
PUBLIC_HEADER y PRIVATE_HEADER
, ktorého hlavičky je možné nakonfigurovať príkazom install (TARGETS) odovzdávajúcim argumentyPUBLIC_HEADER
yPRIVATE_HEADER
- Premenná bola pridaná
CMAKE_VS_JUST_MY_CODE_DEBUGGING
a cieľový majetokVS_JUST_MY_CODE_DEBUGGING
povoliť režim „Iba môj kód“ v debuggeri Visual Studio pri kompilácii pomocou MSVC cl 19.05 a novších verzií. - Bol prepracovaný modul FindBoost, ktorý sa teraz komplexnejšie pracuje v režimoch konfigurácie a modulov s prítomnosťou ďalších vyhľadávacích modulov
- Do príkazu message () bola pridaná podpora typov NOTICE, VERBOSE, DEBUG a TRACE.
- Príkaz „export (PACKAGE)“ teraz nerobí nič, kým nie je explicitne povolený cez premennú
CMAKE_EXPORT_PACKAGE_REGISTRY
.
Ak sa chcete dozvedieť viac, môžete sa poradiť nasledujúci odkaz.