platvormideĂŒlese avatud ehitamise skriptigeneraatori vĂ€ljalase , mis toimib alternatiivina Autotoolsile ja mida kasutatakse sellistes projektides nagu KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ja Blender. CMake kood on kirjutatud C++ keeles ja seda levitatakse BSD litsentsi all.
CMake on tĂ€helepanuvÀÀrne lihtsa skriptikeele pakkumise, funktsionaalsuse laiendamise vahendi moodulite kaudu, minimaalse arvu sĂ”ltuvuste (ei seostu M4, Perli vĂ”i Pythoniga), vahemĂ€llu salvestamise toe, ristkompileerimise tööriistade olemasolu, ehituse genereerimise toe. failid paljude ehitussĂŒsteemide ja kompilaatorite jaoks, olemasolu ctest ja cpack utiliidid testskriptide ja pakettide koostamiseks, cmake-gui utiliit ehitusparameetrite interaktiivseks seadistamiseks.
KÔik :
- Lisatud on Objective C (OBJC) ja Objective keelte tugi
C++ ("OBJCXX"), mida saab lubada kÀskude project() ja enable_language() kaudu, mille jÀrel kompileeritakse ".m" ".mm"-failides olev kood Objective C ja Objective C++ koodina, mitte kui C++, nagu see oli varem; - Lisatud tugi Clangi kompilaatorile Solarise platvormil;
- Lisatud uued kÀsurea suvandid: "cmake -E true|false" tagastamiskoodide 0 ja 1 printimiseks; "cmake --trace-redirect=", et suunata jÀlgimisteave selle asemel faili
"stderr"; kĂ€sk "cmake --loglevel" on ĂŒmber nimetatud "--log-leveliks", et viia see kooskĂ”lla teiste kĂ€skude nimedega; - Lisatud kĂ€sk "target_precompile_headers()", et loetleda eelkompileerimisel kasutatud pĂ€isefailide loend (vĂ€hendab koostamisaega);
- Lisatud atribuut "UNITY_BUILD", mis aktiveerib generaatorites lĂ€htefailide töötlemiseks pakireĆŸiimi, et kiirendada ehitamist;
- Lisatud kÀsud "find_file()", "find_library()", "find_path()",
"find_package()" ja "find_program()" failide, teekide, teede, pakettide ja kÀivitatavate failide otsimiseks vastavalt muutujatele, mis mÀÀravad erinevate failikategooriate otsinguteed.
Muutujad "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_SYSTEMACKE_ENVIRONMENT " kasutatakse pĂ”hiotsinguteede juhtimiseks ISTRY"; - Lisati kĂ€sule "file()" reĆŸiim "file(GET_RUNTIME_DEPENDENCIES)", mis vĂ”imaldab teil rekursiivselt hankida kĂ€ivitatava faili vĂ”i teegi dĂŒnaamilisel linkimisel kasutatavate teekide loendit. ReĆŸiim asendas kĂ€su GetPrerequisites(), mis on nĂŒĂŒdseks aegunud;
- KĂ€sk âctest(1)â rakendab vĂ”imalust teste jĂ€rjestada iga testi jaoks vajalike ressursside pĂ”hjal;
- Muutuja "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" tugi on aegunud ja see tuleks asendada "CMAKE_FIND_USE_PACKAGE_REGISTRY";
- TĂ€iustatud AIX platvormi tugi. Kui kasutate atribuuti "ENABLE_EXPORTS", luuakse nĂŒĂŒd lisaks kĂ€ivitatavale failile linkeri impordifail, mis salvestatakse laiendiga ".imp". Pluginates, mis on loodud kutsudes "add_library()" valikuga "MODULE", saab seda faili kasutada linkimisel, kasutades kĂ€sku "target_link_libraries()". KĂ€itusaegne linkimine AIX-is on vaikimisi keelatud, kuna CMake pakub nĂŒĂŒd laadimise ajal linkimiseks kogu vajalikku sĂŒmboliteavet. DĂŒnaamiliste teekide vĂ”i laaditavate moodulite kĂ€itusaegse linkimise kasutamiseks peate linkeri kĂ€ivituslippude loendites selgelt mÀÀrama valikud â-Wl, -Gâ, mis on mÀÀratletud muutujate âCMAKE_SHARED_LINKER_FLAGSâ ja âCMAKE_MODULE_LINKER_FLAGSâ kaudu.
Allikas: opennet.ru
