Pagpagawas sa sistema sa pagtukod sa Meson 1.1

Ang pagpagawas sa sistema sa pagtukod sa Meson 1.1.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.1:

  • Ang usa ka bag-ong argumento nga "mga butang:" gidugang sa declare_dependency() aron i-attach ang mga butang direkta sa mga executable isip internal dependencies nga wala magkinahanglan og link_who.
  • Ang "meson devenv --dump" nga sugo adunay opsyonal nga abilidad sa pagtino sa usa ka file aron isulat ang mga variable sa palibot, imbes nga mag-output sa standard output stream.
  • Gidugang ang FeatureOption.enable_if ug FeatureOption.disable_if nga mga pamaagi aron mas sayon ​​ang paghimo og mga kondisyon isip pagpangandam sa pagpasa sa mga parameter ngadto sa dependency() function. opt = get_option('feature')
  • Gitugotan ang pagpasa sa mga butang nga nahimo taliwala sa mga argumento nga "mga butang:".
  • Gisuportahan sa function sa proyekto ang pag-install sa mga file nga adunay kasayuran bahin sa mga lisensya sa proyekto.
  • Ang pagpatuman sa "sudo meson install" nagsiguro sa pag-reset sa pribilehiyo sa panahon sa pagtukod pag-usab alang sa mga target nga plataporma.
  • Ang "meson install" nga sugo naghatag ug abilidad sa pagpiho sa usa ka separado nga handler para sa pagkuha sa mga permiso sa gamut (pananglitan, mahimo nimong pilion ang polkit, sudo, opendoas o $MESON_ROOT_CMD). Ang pagpadagan sa "meson install" sa non-interactive mode dili na mosulay sa pagpataas sa mga pribilehiyo.
  • Gidugang nga suporta para sa mga opsyon sa pagbasa gikan sa meson.options file imbes sa meson_options.txt.
  • Naghatag redirection sa stderr sa output sa impormasyon mahitungod sa pag-uswag sa introspection.
  • Usa ka bag-ong "wala" nga backend (--backend=none) ang gidugang aron makamugna og mga proyekto nga adunay mga lagda lamang ug walay mga lagda sa pagtukod.
  • Usa ka bag-ong dependency nga pybind11 ang gidugang aron mahimo ang dependency('pybind11') nga magamit sa pkg-config ug cmake nga wala gigamit ang pybind11-config script.
  • Ang "--reconfigure" ug "--wipe" nga mga kapilian (meson setup --reconfigure builddir ug meson setup --wipe builddir ) gitugotan sa walay sulod nga builddir.
  • Ang meson.add_install_script() midugang og suporta alang sa dry_run nga keyword, nga nagtugot kanimo sa pagpadagan sa imong kaugalingong mga script sa pag-install sa pagtawag sa "meson install --dry-run".

Source: opennet.ru

Idugang sa usa ka comment