Pagpagawas sa sistema sa pagtukod sa Meson 1.0

Ang pagpagawas sa sistema sa pagtukod sa Meson 1.0.0 gipatik, nga gigamit sa pagtukod sa mga proyekto sama sa X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ug GTK. Ang Meson code gisulat sa Python ug lisensyado ubos sa Apache 2.0 nga lisensya.

Ang yawe nga katuyoan sa pag-uswag sa Meson mao ang paghatag usa ka taas nga tulin nga proseso sa asembliya inubanan sa kasayon ​​ug kadali sa paggamit. Inay sa paghimo, ang pagtukod naggamit sa Ninja toolkit sa default, apan ang ubang mga backend sama sa xcode ug VisualStudio mahimo usab nga gamiton. Ang sistema adunay usa ka built-in nga multi-platform dependency handler nga nagtugot kanimo sa paggamit sa Meson sa paghimo og mga pakete alang sa mga pag-apod-apod. Ang mga lagda sa asembliya gipahimutang sa usa ka gipayano nga pinulongan nga piho sa domain, kini maayo nga mabasa ug masabtan sa tiggamit (sumala sa ideya sa mga tagsulat, ang developer kinahanglan nga mogugol og usa ka minimum nga panahon sa pagsulat sa mga lagda).

Ang cross-compile ug pagtukod sa Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ug Windows gamit ang GCC, Clang, Visual Studio ug uban pang mga compiler gisuportahan. Posible nga magtukod mga proyekto sa lainlaing mga sinultian nga programming, lakip ang C, C ++, Fortran, Java ug Rust. Gisuportahan ang usa ka incremental build mode, diin ang mga sangkap lamang nga direktang may kalabutan sa mga pagbag-o nga nahimo sukad sa katapusan nga pagtukod ang gitukod pag-usab. Ang Meson mahimong gamiton aron makamugna og balik-balik nga pagtukod, diin ang pagpadagan sa pagtukod sa lain-laing mga palibot moresulta sa hingpit nga managsama nga mga executable nga namugna.

Panguna nga mga inobasyon sa Meson 1.0:

  • Ang module sa pagtukod og mga proyekto sa Rust nga pinulongan gideklarar nga stable. Kini nga module gigamit sa proyekto sa Mesa sa paghimo sa mga sangkap nga gisulat sa Rust.
  • Gisuportahan sa kadaghanan nga mga function sa pagsusi sa compiler, ang kapilian sa prefix nagpatuman sa abilidad sa pagdumala sa mga arrays gawas sa mga string. Pananglitan, mahimo nimong ipiho ang: cc.check_header('GL/wglew.h', prefix : ['#include ', '#apil '])
  • Usa ka bag-ong argumento nga "--workdir" ang gidugang aron tugotan ka nga ma-override ang nagtrabaho nga direktoryo. Pananglitan, sa paggamit sa kasamtangan nga direktoryo imbes sa nagtrabaho nga direktoryo, mahimo nimong padaganon: meson devenv -C builddir --workdir .
  • Ang mga bag-ong operator nga "in" ug "not in" gisugyot alang sa pagtino sa pagkahitabo sa usa ka substring sa usa ka hilo, susama sa kaniadto nga magamit nga pagsusi alang sa pagkahitabo sa usa ka elemento sa usa ka array o diksyonaryo. Pananglitan: fs = import('fs') kon 'usa ka butang' sa fs.read('somefile') # True endif
  • Gidugang ang "warning-level=everything" nga kapilian aron ma-on ang output sa tanan nga magamit nga mga pasidaan sa compiler (sa paggamit sa clang ug MSVC -Weverything ug / Wall, ug sa GCC gilakip ang mga bulag nga pasidaan, halos katumbas sa -Weverything mode sa clang).
  • Ang rust.bindgen nga pamaagi nagpatuman sa abilidad sa pagproseso sa "dependencies" argumento sa pagpasa sa mga dalan ngadto sa dependencies nga kinahanglan nga proseso sa compiler.
  • Ang java.generate_native_headers function wala na gamita ug giilisan og ngalan sa java.native_headers aron mohaum sa kinatibuk-ang function sa pagngalan sa estilo sa Meson.

Source: opennet.ru

Idugang sa usa ka comment