Meson build system release 1.1

Na-publish ang release ng Meson 1.1.0 build system, na ginagamit para bumuo ng mga proyekto tulad ng X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME at GTK. Ang Meson code ay nakasulat sa Python at lisensyado sa ilalim ng lisensya ng Apache 2.0.

Ang pangunahing layunin ng pagpapaunlad ng Meson ay magbigay ng isang mabilis na proseso ng pagpupulong na sinamahan ng kaginhawahan at kadalian ng paggamit. Sa halip na gumawa, ang build ay gumagamit ng Ninja toolkit bilang default, ngunit ang iba pang mga backend tulad ng xcode at VisualStudio ay maaari ding gamitin. Ang system ay may built-in na multi-platform dependency handler na nagbibigay-daan sa iyong gamitin ang Meson upang bumuo ng mga pakete para sa mga pamamahagi. Ang mga panuntunan sa pagpupulong ay itinakda sa isang pinasimpleng wikang tukoy sa domain, ang mga ito ay mahusay na nababasa at naiintindihan ng gumagamit (ayon sa ideya ng mga may-akda, ang developer ay dapat gumugol ng isang minimum na oras sa pagsulat ng mga panuntunan).

Sinusuportahan ang cross-compiling at pagbuo sa Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS at Windows gamit ang GCC, Clang, Visual Studio at iba pang compiler. Posibleng bumuo ng mga proyekto sa iba't ibang programming language, kabilang ang C, C++, Fortran, Java at Rust. Sinusuportahan ang incremental build mode, kung saan ang mga bahagi lamang na direktang nauugnay sa mga pagbabagong ginawa mula noong huling build ang muling itinayo. Maaaring gamitin ang Meson upang bumuo ng mga paulit-ulit na build, kung saan ang pagpapatakbo ng build sa iba't ibang kapaligiran ay nagreresulta sa ganap na magkaparehong mga executable.

Mga pangunahing inobasyon ng Meson 1.1:

  • Ang isang bagong argumentong "objects:" ay idinagdag sa declare_dependency() upang direktang mag-attach ng mga object sa mga executable bilang panloob na dependencies na hindi nangangailangan ng link_who.
  • Ang utos na "meson devenv --dump" ay may opsyonal na kakayahang tumukoy ng isang file na pagsusulatan ng mga variable ng kapaligiran, sa halip na mag-output sa karaniwang output stream.
  • Ang mga pamamaraan ng FeatureOption.enable_if at FeatureOption.disable_if ay idinagdag upang gawing mas madali ang paggawa ng mga kondisyon bilang paghahanda para sa pagpasa ng mga parameter sa dependency() function. opt = get_option('feature').disable_if(not foo, error_message : 'Hindi ma-enable ang feature kapag hindi rin pinagana ang foo') dep = dependency('foo', kinakailangan : opt)
  • Pinapayagan na ipasa ang mga nabuong bagay sa mga argumentong "mga bagay:".
  • Sinusuportahan ng function ng proyekto ang pag-install ng mga file na may impormasyon tungkol sa mga lisensya ng proyekto.
  • Ang pagsasagawa ng "sudo meson install" ay nagsisiguro ng privilege reset sa panahon ng muling pagtatayo para sa mga target na platform.
  • Ang command na "meson install" ay nagbibigay ng kakayahang tumukoy ng isang hiwalay na handler para sa pagkuha ng mga pahintulot sa ugat (halimbawa, maaari kang pumili ng polkit, sudo, opendoas o $MESON_ROOT_CMD). Ang pagpapatakbo ng "meson install" sa non-interactive na mode ay hindi na nagtatangkang itaas ang mga pribilehiyo.
  • Nagdagdag ng suporta para sa mga opsyon sa pagbabasa mula sa meson.options file sa halip na meson_options.txt.
  • Nagbigay ng pag-redirect sa stderr ng output ng impormasyon tungkol sa pag-unlad ng introspection.
  • Ang isang bagong "wala" na backend (--backend=none) ay idinagdag upang lumikha ng mga proyekto na mayroon lamang mga panuntunan sa pag-install at walang mga panuntunan sa pagbuo.
  • Ang isang bagong dependency na pybind11 ay naidagdag upang gumana ang dependency('pybind11') sa pkg-config at cmake nang hindi gumagamit ng pybind11-config script.
  • Ang "--reconfigure" at "--wipe" na mga opsyon (meson setup --reconfigure builddir at meson setup --wipe builddir ) ay pinapayagan na may walang laman na builddir.
  • Ang meson.add_install_script() ay nagdagdag ng suporta para sa dry_run na keyword, na nagbibigay-daan sa iyong patakbuhin ang sarili mong mga script sa pag-install kapag tinatawag ang "meson install --dry-run".

Pinagmulan: opennet.ru

Magdagdag ng komento