CMake 3.16 ehitussüsteemi väljalase

Tutvustatakse platvormideülese avatud ehitamise skriptigeneraatori väljalase CMake 3.16, 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 täiustused:

  • 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

Lisa kommentaar