Lëshimi i sistemeve të ndërtimit CMake 3.21 dhe Meson 0.59

Prezantohet lëshimi i gjeneratorit të skripteve të hapura ndër-platformë CMake 3.21, i cili vepron si një alternativë për Autotools dhe përdoret në projekte të tilla si KDE, LLVM/Clang, MySQL, MariaDB, ReactOS dhe Blender. Kodi CMake është shkruar në C++ dhe shpërndahet nën licencën BSD.

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.

Përmirësimet kryesore:

  • U shtua mbështetje e plotë për gjuhën e programimit të Ndërfaqes Heterogene-Computing for Portability (HIP), një dialekt i gjuhës C++ që synon ta bëjë më të lehtë konvertimin e aplikacioneve CUDA në kodin portativ C++.
  • U shtua gjeneratori i skriptit të ndërtimit për Visual Studio 17 2022, bazuar në Visual Studio 2022 Preview 1.1.
  • Gjeneruesit e skripteve të ndërtimit të Makefile dhe Ninja kanë shtuar vetitë C_LINKER_LAUNCHER dhe CXX_LINKER_LAUNCHER, të cilat mund të përdoren për të nisur shërbime ndihmëse që nisin lidhësin, të tillë si analizuesit statikë. Gjeneruesi do të ekzekutojë shërbimet e specifikuara, duke u dhënë atyre emrin e lidhësit dhe argumentet e tij.
  • Në vetitë "C_STANDARD" dhe "OBJC_STANDARD", si dhe në veglat për vendosjen e parametrave të përpiluesit (Karakteristikat e Kompilimit), është shtuar mbështetje për specifikimet C17 dhe C23.
  • Opsioni "—toolchain" është shtuar në programin cmake > për të përcaktuar rrugën drejt paketës së veglave.
  • Llojet e mesazheve të shfaqura në terminal janë të theksuara.
  • Mbështetje e shtuar për përpiluesin Fujitsu.
  • Komanda "foreach()" siguron që variablat e lakut janë të izoluara brenda një cikli.

Për më tepër, mund të vërejmë lëshimin e sistemit të ndërtimit Meson 0.59, i cili përdoret për të ndërtuar projekte të tilla si Serveri X.Org, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME dhe GTK. Kodi i Meson është shkruar në Python dhe është i licencuar nën licencën Apache 2.0. Mbështet kompilimin dhe ndërtimin në Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS dhe Windows duke përdorur GCC, Clang, Visual Studio dhe përpilues të tjerë. Është e mundur të ndërtohen projekte në gjuhë të ndryshme programimi, duke përfshirë C, C++, Fortran, Java dhe Rust. Në vend të mjetit make, pajisja e veglave Ninja përdoret si parazgjedhje gjatë ndërtimit, por mund të përdoren gjithashtu mbështetës të tjerë si xcode dhe VisualStudio.

Sistemi ka një mbajtës të varësisë me shumë platforma të integruar që ju lejon të përdorni Meson për të ndërtuar paketa për shpërndarje. Rregullat e asamblesë janë të specifikuara në një gjuhë të thjeshtuar specifike për domenin, janë shumë të lexueshme dhe të kuptueshme nga përdoruesi (siç synohet nga autorët, zhvilluesi duhet të shpenzojë një minimum kohë për të shkruar rregullat). Mbështetet modaliteti i ndërtimit në rritje, në të cilin rindërtohen vetëm komponentët që lidhen drejtpërdrejt me ndryshimet e bëra që nga ndërtimi i fundit. Meson mund të përdoret për të gjeneruar ndërtime të përsëritshme, në të cilat ekzekutimi i ndërtimit në mjedise të ndryshme rezulton në gjenerimin e skedarëve të ekzekutueshëm plotësisht identikë.

Risitë kryesore të Meson 0.59:

  • Mbështetje e shtuar për gjuhën Cython (një version i avancuar i Python që synon thjeshtimin e integrimit me kodin C).
  • U shtuan fjalë kyçe "unescaped_variables" dhe "unescaped_uninstalled_variables" për të përcaktuar variablat në pkgconfig pa ikur hapësirave me karakterin "\".
  • Mbështetje e shtuar për wrc (Wine Resource Compiler).
  • Mundësia për të gjeneruar projekte për Visual Studio 2012 dhe Visual Studio 2013 është zbatuar.
  • Të gjitha komandat e lidhura me nënprojektin tani ekzekutojnë çdo nënprojekt paralelisht si parazgjedhje. Numri i proceseve paralele përcaktohet nga parametri “--num-processes”.

Burimi: opennet.ru

Shto një koment