CMake 3.17.0 būvēšanas sistēmas izlaišana

Iesniedzis starpplatformu atvērtā būvējuma skriptu ģeneratora izlaišana CMake 3.17, kas darbojas kā alternatīva Autotools un tiek izmantota tādos projektos kā KDE, LLVM/Clang, MySQL, MariaDB, ReactOS un Blender. CMake kods ir rakstīts C++ valodā un tiek izplatīts saskaņā ar BSD licenci.

CMake ir ievērojama ar vienkāršu skriptu valodas nodrošināšanu, līdzekli funkcionalitātes paplašināšanai, izmantojot moduļus, minimālu atkarību skaitu (nav saistīšanas ar M4, Perl vai Python), kešatmiņas atbalstu, savstarpējās kompilācijas rīku klātbūtni, atbalstu būvējuma ģenerēšanai. faili plašam veidošanas sistēmu un kompilatoru klāstam, klātbūtnes ctest un cpack utilītas testa skriptu un veidošanas pakotņu definēšanai, cmake-gui utilīta interaktīvai būvēšanas parametru iestatīšanai.

Galvenais uzlabojumi:

  • Ir pievienots jauns montāžas skriptu ģenerators, kura pamatā ir Ninja rīkkopa - “Ninja Multi-Config”, kas no vecā ģeneratora atšķiras ar spēju apstrādāt vairākas montāžas konfigurācijas vienlaikus.
  • Visual Studio montāžas skriptu ģeneratorā parādījās iespēja definēt avota failus, kas saistīti ar katru konfigurāciju (pēc konfigurācijas avoti).
  • Kompilatora parametru iestatīšanas rīkiem (Compile Features) ir pievienota iespēja iestatīt meta parametrus CUDA (“cuda_std_03”, “cuda_std_14” utt.).
  • Pievienoti mainīgie "CMAKE_CUDA_RUNTIME_LIBRARY" un "CUDA_RUNTIME_LIBRARY", lai atlasītu izpildlaika bibliotēku veidus, izmantojot CUDA.
  • Pievienots modulis "FindCUDA Toolkit", lai noteiktu sistēmā pieejamo CUDA rīku komplektu, neiespējojot CUDA valodu.
  • Pievienota komanda "--debug-find", lai veiktu meklēšanas darbības, lai izvadītu papildu lasāmu diagnostiku. Līdzīgiem nolūkiem ir pievienots mainīgais CMAKE_FIND_DEBUG_MODE.
  • Modulim “FindCURL” ir pievienots atbalsts CURL rīku meklēšanai, izmantojot cmake ģenerētus konfigurācijas failus “CURLConfig.cmake”. Lai atspējotu šo darbību, tiek nodrošināts mainīgais CURL_NO_CURL_CMAKE.
  • FindPython modulis ir pievienojis iespēju meklēt Python komponentus virtuālajā vidē, kas tiek pārvaldīta, izmantojot “conda”.
  • Ctest utilīta ir pievienojusi opcijas “--no-tests=[error|ignorre]”, lai definētu uzvedību gadījumā, ja netiek veiktas pārbaudes, un “--repeat”, lai iestatītu nosacījumus atkārtotai testu izpildei (līdz iziet, pēc noildzes).
  • Montāžas mērķa rekvizīti INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES un INTERFACE_LINK_DEPENDS tagad tiek pārsūtīti starp statiski samontētu bibliotēku iekšējām atkarībām.
  • Izmantojot MinGW rīkkopu, pēc noklusējuma DLL failu meklēšana ar komandu find_library ir atspējota (tā vietā noklusējuma mēģinājums ir importēt ".dll.a" bibliotēkas).
  • Ninja utilīta atlases loģika Ninja ģeneratorā tagad nav atkarīga no izpildāmā faila nosaukuma — tiek izmantota pirmā ninja-build, ninja vai samu utilīta, kas atrodama ceļos, kas definēti, izmantojot vides mainīgo PATH.
  • Cmake ir pievienota komanda "-E rm", ko var izmantot, lai noņemtu failus un direktorijus, nevis atsevišķas komandas "-E remove" un "-E remove_directory".

Avots: opennet.ru

Pievieno komentāru