lëshimi i gjeneratorit të skenarëve të ndërtimit të platformave të hapura , vepruar si një alternativë për Autotools dhe i përdorur në projekte 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 të thjeshtë skenarësh, mjeteve për zgjerimin e funksionalitetit përmes moduleve, numrit minimal të varësive (nuk ka lidhje me M4, Perl ose Python), mbështetje për keq-kërkim, mjete për ndërtim të shumë-platformave, mbështetje për gjenerimin e skedarëve të ndërtimit për një gamë të gjerë sistemesh ndërtimi dhe kompilorë, si dhe mjeteve ctest dhe cpack për definimin e skenarëve të testimit dhe ndërtimit të paketave, mjeteve cmake-gui për konfigurimin interaktiv të parametrave të ndërtimit.
Ndryshimet kryesore :
- Shtesa për mbështetje të gjuhëve Objective C («OBJC») dhe Objective C++ («OBJCXX»), të cilat mund të aktivizohen përmes komandave project() dhe enable_language(), pas së cilës kodi në skedarët «.m» «.mm» do të kompilojë si kod në Objective C dhe Objective C++, dhe jo si kod në C++, siç ishte më parë;
Shtesa pĂ«r mbĂ«shtetje tĂ« kompajlerit Clang nĂ« platformĂ«n Solaris; - Shtuar parametra tĂ« rinj tĂ« komandĂ«s nĂ« linjĂ«: «cmake -E true|false» pĂ«r tĂ« dalĂ« kodet e kthimit 0 dhe 1; «cmake âtrace-redirect=» pĂ«r tĂ« ridrejtuar informacionin e gjurmimit nĂ« njĂ« skedar, pĂ«rveç
- «stderr»; komanda «cmake âloglevel» Ă«shtĂ« riemĂ«ruar nĂ« «âlog-level» pĂ«r t'u pĂ«rputhur me emĂ«rtimin e komandave tĂ« tjera;
Shtuar komanda «target_precompile_headers()» për të enumeruar listën e skedave përkufizuese të përdorur gjatë parakompilimit (reduktimi i kohës së ndërtimit); - Shtuar pronën «UNITY_BUILD», e cila aktivizon modin e përpunimit në grupe për skedarët burimorë në gjeneratorët 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ë sipas variablave që përcaktojnë rrugët e kërkimit për kategori të ndryshme skedarësh.
Për menaxhimin e rrugëve 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»;
Në komandën «file()» është shtuar moda «file(GET_RUNTIME_DEPENDENCIES)», e cila lejon të nxirren listat e biblioteka të angazhuara gjatë lidhjes dinamike të një skedari ekzekutiv ose biblioteke. Ky mod ka zëvendësuar komandën GetPrerequisites(), e cila tani është shpallur e vjetruar; - Në komandën «ctest(1)» është implementuar mundësia për serializimin e testeve, duke u bazuar në burimet e nevojshme për secilin test;
- ĂshtĂ« shpallur e vjetruar variabla «CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY», pĂ«r tĂ« cilĂ«n duhet pĂ«rdorur «CMAKE_FIND_USE_PACKAGE_REGISTRY»;
- Përmirësuar mbështetja për platformën AIX. Kur përdoret prona «ENABLE_EXPORTS», përveç skedarit ekzekutiv, tani krijohet një skedar eksportimi për ndërlidhësin, i ruajtur me zgjerimin «.imp». Në plagjinat, të krijuara duke përdorur thirrjen «add_library()» me opsionin «MODULE», ky skedar mund të përdoret gjatë lidhjes me komandën «target_link_libraries()». Lidhja në kohë reale në AIX është e çaktivizuar si standard, pasi CMake tani ofron gjithë informacionin e nevojshëm për simbolet për lidhjen gjatë ngarkimit. Për të aplikuar lidhjen në kohë reale të bibliotekave dinamike ose moduleve të ngarkueshme duhet të specifikohen qartë opsionet «-Wl,-G» në listat e flamujve të ndërlidhësit, të përcaktuar përmes variablave «CMAKE_SHARED_LINKER_FLAGS» dhe «CMAKE_MODULE_LINKER_FLAGS»;
- ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r platformĂ«n AIX. Kur pĂ«rdoret cĂ«shtja "ENABLE_EXPORTS", pĂ«rveç skedarit ekzekutues, tani formohet njĂ« skedar importi pĂ«r lidhĂ«sin, qĂ« ruhet me extensionin ".imp". NĂ« pluginĂ«t e krijuar pĂ«rmes thirrjes "add_library()" me opsionin "MODULE", ky skedar mund tĂ« pĂ«rdoret nĂ« lidhje me komandĂ«n "target_link_libraries()". Lidhja nĂ« kohĂ«n e ekzekutimit nĂ« AIX, sipas parazgjedhjes, Ă«shtĂ« e çaktivizuar, pasi CMake tani ofron tĂ« gjithĂ« informacionin e nevojshĂ«m mbi simbolet pĂ«r lidhjen gjatĂ« ngarkimit. PĂ«r tĂ« aplikuar lidhjen nĂ« kohĂ«n e ekzekutimit pĂ«r bibliotekat dinamike ose modul tĂ« ngarkueshĂ«m, duhet tĂ« specifikoni qartĂ« opsionet "-Wl,-G" nĂ« listat e flamujve tĂ« fillimit tĂ« lidhĂ«sit, tĂ« pĂ«rcaktuara pĂ«rmes variablave "CMAKE_SHARED_LINKER_FLAGS" dhe "CMAKE_MODULE_LINKER_FLAGS".
Burimi: opennet.ru
