lëshimi i gjeneruesit të skenareve ndërtim kryq-platformë dhe të hapur , i cili shërben si një alternativë ndaj Autotools dhe përdoret në projekte të tilla si KDE, LLVM/Clang, MySQL, MariaDB, ReactOS dhe Blender. Kodi i CMake është shkruar në gjuhën C++ dhe shpërndahet nën licencën BSD.
CMake është i njohur për ofrimin e një gjuhe skenari të thjeshtë, mjeteve për zgjerimin e funksionalitetit përmes moduleve, një numri minimal të varësive (nuk ka varësi nga M4, Perl ose Python), mbështetje për pamjen e cache-it, disponimin e mjeteve për ndërkompilim, mbështetje për gjenerimin e skedave të ndërtimit për një gamë të gjerë sistemesh ndërtimi dhe kompilatorësh, mjeteve ctest dhe cpack për përcaktimin e skenarëve të testeve dhe ndërtimit të pakove, si dhe mjeteve cmake-gui për konfigurimin interaktiv të parametrave të ndërtimit.
Main :
- Shtuar mbĂ«shtetje pĂ«r gjuhĂ«t Objective C (âOBJCâ) dhe Objective
C++ (âOBJCXXâ), tĂ« cilat mund tĂ« aktivizohen pĂ«rmes komandave project() dhe enable_language(), pas tĂ« cilave kodi nĂ« skedarĂ«t â.mâ â.mmâ do tĂ« kompilohet si kod nĂ« Objective C dhe Objective C++, dhe jo si kod nĂ« C++, siç ishte deri mĂ« tani; - Shtuar mbĂ«shtetje pĂ«r kompilatorin Clang nĂ« platformĂ«n Solaris;
- Shtuar parametra tĂ« rinj tĂ« komandĂ«s nĂ« linjĂ«: âcmake -E true|falseâ pĂ«r tĂ« prodhuar kodet e kthimit 0 dhe 1; âcmake âtrace-redirect=â pĂ«r tĂ« ridrejtuar informacionin e ndjekjes nĂ« njĂ« skedar, pĂ«rveç
âstderrâ; komanda âcmake âloglevelâ Ă«shtĂ« rinovuar nĂ« ââlog-levelâ pĂ«r t'u pĂ«rputhur me emĂ«rtimin e komandave tĂ« tjera; - Shtuar komandĂ«n âtarget_precompile_headers()â pĂ«r tĂ« enumeruar listĂ«n e skedarĂ«ve tĂ« titujve tĂ« pĂ«rdorur gjatĂ« para-kompilimit (reduktimi i kohĂ«s sĂ« ndĂ«rtimit);
- Shtuar pronĂ«n âUNITY_BUILDâ, e cila aktivizon modalitetin e paketimit pĂ«r pĂ«rpunimin e skedarĂ«ve burimor nĂ« gjeneruesit pĂ«r tĂ« pĂ«rshpejtuar ndĂ«rtimin;
- Shtuar komandat âfind_file()â, âfind_library()â, âfind_path()â,
âfind_package()â dhe âfind_program()â pĂ«r tĂ« kĂ«rkuar skedarĂ«, biblioteka, rrugĂ«, paketa dhe skedarĂ« ekzekutivĂ« nĂ« pĂ«rputhje me variablat qĂ« pĂ«rkufizojnĂ« rrugĂ«t e kĂ«rkimit pĂ«r kategori tĂ« ndryshme skedarĂ«sh.
PĂ«r tĂ« menaxhuar rrugĂ«t bazĂ« pĂ«r kĂ«rkimin, pĂ«rdoren variablat âCMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATHâ, âCMAKE_FIND_USE_CMAKE_PATHâ, âCMAKE_FIND_USE_CMAKE_SYSTEM_PATHâ, âCMAKE_FIND_USE_PACKAGE_ROOT_PATHâ, âCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATHâ dhe âCMAKE_FIND_USE_PACKAGE_REGISTRYâ; - Ekipit «file()» ka pĂ«rfshirĂ« modin «file(GET_RUNTIME_DEPENDENCIES)», i cili lejon nxjerrjen rekurzive tĂ« listĂ«s sĂ« bibliotekave qĂ« pĂ«rfshihen nĂ« lidhjen dinamike tĂ« skedarit ekzekutues ose bibliotekĂ«s. Ky mod erdhi si zĂ«vendĂ«sim pĂ«r komandĂ«n GetPrerequisites(), e cila tani Ă«shtĂ« shpallur tĂ« jetĂ« e vjetruar;
- Komanda «ctest(1)» ka implementuar mundësinë e serializimit të testeve, duke u bazuar në burimet e kërkuara për secilin test;
- Variabla «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY» është shpallur të jetë e vjetruar, dhe tani duhet të përdoret «CMAKE_FIND_USE_PACKAGE_REGISTRY»;
- Përmirësuar mbështetjen për platformën AIX. Kur propriétés «ENABLE_EXPORTS» përdoret, përveç skedarit ekzekutues, tani krijohet një skedari importi për lidhësin, i ruajtur me zgjerimin «.imp». Në plugins që krijohen me thirrjen «add_library()» me opsionin «MODULE», ky skedari mund të përdoret gjatë lidhjes me komandën «target_link_libraries()». Lidhja runtime në AIX është automatikisht e çaktivizuar, pasi CMake tani ofron të gjitha informacionet e nevojshme për simbolet për lidhje gjatë ngarkimit. Për të aplikuar lidhjen runtime të bibliotekave dinamike ose moduleve të ngarkuara, duhet të specifikoni qartë opsionet «-Wl,-G» në listat e flamujve të lidhësit, të përcaktuar përmes variablave «CMAKE_SHARED_LINKER_FLAGS» dhe «CMAKE_MODULE_LINKER_FLAGS».
Burimi: opennet.ru
