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
