Meson build system release 1.0

Na-publish ang release ng Meson 1.0.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-compilation at assembly. Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows Gamit ang GCC, Clang, Visual Studio, at iba pang mga compiler. Maaaring bumuo ng mga proyekto sa iba't ibang lengguwahe ng programming, kabilang ang C, C++, Fortran, Java, at Rust. Sinusuportahan ang incremental build mode, na muling binubuo lamang ang mga bahaging direktang nauugnay sa mga pagbabagong ginawa simula noong nakaraang build. Maaaring gamitin ang Meson upang lumikha ng mga paulit-ulit na build, kung saan ang pagpapatakbo ng build sa iba't ibang kapaligiran ay nagreresulta sa pagbuo ng ganap na magkaparehong mga executable file.

Mga pangunahing inobasyon ng Meson 1.0:

  • Ang isang module para sa pagbuo ng mga proyekto sa wikang Rust ay idineklara na stable. Ang modyul na ito ay ginagamit sa proyekto ng Mesa upang bumuo ng mga bahagi na nakasulat sa Rust.
  • Ang opsyon ng prefix, na sinusuportahan sa karamihan ng mga function ng pagsusuri ng compiler, ay nagbibigay ng kakayahang pangasiwaan ang mga array bilang karagdagan sa mga string. Halimbawa, maaari mo na ngayong tukuyin ang: cc.check_header('GL/wglew.h', prefix : ['#include ', '#isama '])
  • Nagdagdag ng bagong argumentong "--workdir" upang payagan ang pag-override sa gumaganang direktoryo. Halimbawa, upang gamitin ang kasalukuyang direktoryo sa halip na ang gumaganang direktoryo, maaari mong patakbuhin ang: meson devenv -C builddir --workdir .
  • Ang mga bagong operator na "in" at "not in" ay iminungkahi upang matukoy ang paglitaw ng isang substring sa isang string, katulad ng dating available na pagsusuri para sa paglitaw ng isang elemento sa isang array o diksyunaryo. Halimbawa: fs = import('fs') kung 'something' sa fs.read('somefile') # True endif
  • Idinagdag ang opsyong “warning-level=everything”, na nag-o-on sa output ng lahat ng available na babala ng compiler (sa clang at MSVC ginagamit nito ang -Weverything at /Wall, at sa GCC na mga babala ay isinama nang hiwalay, humigit-kumulang na tumutugma sa -Weverything mode sa clang).
  • Ang paraan ng rust.bindgen ay nagpapatupad ng kakayahang pangasiwaan ang argumentong "dependencies" upang ipasa ang mga landas sa mga dependency na dapat iproseso ng compiler.
  • Ang function na java.generate_native_headers ay hindi na ginagamit at pinalitan ng pangalan sa java.native_headers upang umayon sa karaniwang istilo ng pagbibigay ng pangalan ng function ng Meson.

Pinagmulan: opennet.ru

Bumili ng maaasahang pagho-host para sa mga site na may proteksyon ng DDoS, mga server ng VPS VDS 🔥 Bumili ng maaasahang website hosting na may proteksyon ng DDoS, VPS VDS servers | ProHoster