CMake është i dukshëm për ofrimin e një gjuhe të thjeshtë skriptimi, një mjet për të zgjeruar funksionalitetin përmes moduleve, një numër minimal varësish (pa lidhje me M4, Perl ose Python), mbështetje për caching, praninë e mjeteve për përpilim të kryqëzuar, mbështetje për gjenerimin e ndërtimit skedarë për një gamë të gjerë sistemesh ndërtimi dhe përpiluesish, prania e shërbimeve ctest dhe cpack për përcaktimin e skripteve të testimit dhe ndërtimit të paketave, mjeti cmake-gui për vendosjen interaktive të parametrave të ndërtimit.
Kryesore
- Mbështetje e shtuar për objektivin C ("OBJC") dhe gjuhët objektive
C++ ("OBJCXX"), i cili mund të aktivizohet nëpërmjet komandave project() dhe enable_language(), pas së cilës kodi në skedarët ".m" ".mm" do të përpilohet si kod Objektivi C dhe Objektivi C++, dhe jo si C++, siç ishte më parë; - Mbështetje e shtuar për përpiluesin Clang në platformën Solaris;
- Shtuar opsione të reja të linjës së komandës: “cmake -E true|false” për të printuar kodet e kthimit 0 dhe 1; "cmake --trace-redirect=" për të ridrejtuar informacionin e gjurmës në një skedar
"stderr"; komanda "cmake --loglevel" është riemërtuar në "--log-level" për ta sjellë atë në përputhje me emrat e komandave të tjera; - Shtoi komandën “target_precompile_headers()” për të renditur listën e skedarëve të titullit të përdorur gjatë parapërpilimit (zvogëlon kohën e ndërtimit);
- U shtua veçoria "UNITY_BUILD", e cila aktivizon modalitetin e grupit për përpunimin e skedarëve burimor në gjeneratorë për të shpejtuar ndërtimin;
- U shtuan komandat “find_file()”, “find_library()”, “find_path()”,
"find_package()" dhe "find_program()" për të kërkuar skedarë, biblioteka, shtigje, paketa dhe ekzekutues sipas variablave që përcaktojnë shtigjet e kërkimit për kategori të ndryshme skedarësh.
Ndryshoret "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH", "CMAKE_FIND_USE_CMAKE_PATH", "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH", "CMAKE_FIND_USE_PACKAGE_ROOT_PATH", "CMAKE_ENTH_FIND" USE_PACKAGE_REGIST" përdoren për të kontrolluar shtigjet e kërkimit bazë RY"; - Shtoi modalitetin "file(GET_RUNTIME_DEPENDENCIES)" në komandën "file()", i cili ju lejon të rikuperoni në mënyrë rekursive listën e bibliotekave të përdorura kur lidhni në mënyrë dinamike një skedar ose bibliotekë të ekzekutueshme. Modaliteti zëvendësoi komandën GetPrerequisites(), e cila tani është zhvlerësuar;
- Komanda “ctest(1)” zbaton aftësinë për të serializuar testet bazuar në burimet e kërkuara për çdo test;
- Ndryshorja "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" është zhvlerësuar dhe duhet të zëvendësohet me "CMAKE_FIND_USE_PACKAGE_REGISTRY";
- Mbështetje e përmirësuar e platformës AIX. Kur përdorni veçorinë "ENABLE_EXPORTS", përveç skedarit të ekzekutueshëm, tani krijohet një skedar importi për lidhësin, i ruajtur me shtesën ".imp". Në shtojcat e krijuara duke thirrur "add_library()" me opsionin "MODULE", ky skedar mund të përdoret kur lidhet duke përdorur komandën "target_link_libraries()". Lidhja e kohës së funksionimit në AIX është çaktivizuar si parazgjedhje sepse CMake tani ofron të gjithë informacionin e nevojshëm të simboleve për lidhjen në kohën e ngarkimit. Për të përdorur lidhjen në kohën e ekzekutimit të bibliotekave dinamike ose moduleve të ngarkueshme, duhet të specifikoni në mënyrë eksplicite opsionet "-Wl, -G" në listat e flamujve të nisjes së lidhësit, të përcaktuara përmes variablave "CMAKE_SHARED_LINKER_FLAGS" dhe "CMAKE_MODULE_LINKER_FLAGS".
Burimi: opennet.ru