ืžื”ื“ื•ืจืช ืžืขืจื›ืช ื‘ื ื™ื™ืช Meson 1.0

ืคื•ืจืกืžื” ื”ืฉื—ืจื•ืจ ืฉืœ ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” Meson 1.0.0, ื”ืžืฉืžืฉืช ืœื‘ื ื™ื™ืช ืคืจื•ื™ืงื˜ื™ื ื›ื’ื•ืŸ X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ื•-GTK. ืงื•ื“ Meson ื›ืชื•ื‘ ื‘-Python ื•ื”ื•ื ืžื•ืจืฉื” ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0.

ืžื˜ืจืช ื”ืคื™ืชื•ื— ื”ืขื™ืงืจื™ืช ืฉืœ Meson ื”ื™ื ืœืกืคืง ืชื”ืœื™ืš ื”ืจื›ื‘ื” ื‘ืžื”ื™ืจื•ืช ื’ื‘ื•ื”ื” ื‘ืฉื™ืœื•ื‘ ืขื ื ื•ื—ื•ืช ื•ืงืœื•ืช ืฉื™ืžื•ืฉ. ื‘ืžืงื•ื ืœืขืฉื•ืช, ื”-build ืžืฉืชืžืฉ ื‘ืขืจื›ืช ื”ื›ืœื™ื Ninja ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืืš ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื’ื ื‘-backends ืื—ืจื™ื ื›ื’ื•ืŸ xcode ื•- VisualStudio. ืœืžืขืจื›ืช ื™ืฉ ืžื˜ืคืœ ืชืœื•ืช ืจื‘-ืคืœื˜ืคื•ืจืžื•ืช ืžื•ื‘ื ื” ื”ืžืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ื‘-Meson ืœื‘ื ื™ื™ืช ื—ื‘ื™ืœื•ืช ืœื”ืคืฆื•ืช. ื›ืœืœื™ ื”ื”ืจื›ื‘ื” ื ืงื‘ืขื™ื ื‘ืฉืคื” ืคืฉื•ื˜ื” ืกืคืฆื™ืคื™ืช ืœืชื—ื•ื, ื”ื ืงืจื™ืื™ื ื•ืžื•ื‘ื ื™ื ื”ื™ื˜ื‘ ืœืžืฉืชืžืฉ (ืœืคื™ ืจืขื™ื•ืŸ ื”ืžื—ื‘ืจื™ื, ืขืœ ื”ืžืคืชื— ืœื”ืฉืงื™ืข ืžื™ื ื™ืžื•ื ื–ืžืŸ ื‘ื›ืชื™ื‘ืช ื›ืœืœื™ื).

ื”ื™ื“ื•ืจ ืฆื•ืœื‘ ื•ื‘ื ื™ื™ื” ืขืœ ืœื™ื ื•ืงืก, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ื•-Windows ื‘ืืžืฆืขื•ืช GCC, Clang, Visual Studio ื•ืžื”ื“ืจื™ื ืื—ืจื™ื. ื ื™ืชืŸ ืœื‘ื ื•ืช ืคืจื•ื™ืงื˜ื™ื ื‘ืฉืคื•ืช ืชื›ื ื•ืช ืฉื•ื ื•ืช, ื›ื•ืœืœ C, C++, Fortran, Java ื•- Rust. ื ืชืžืš ื‘ืžืฆื‘ ื‘ื ื™ื™ื” ืžืฆื˜ื‘ืจ, ืฉื‘ื• ืจืง ืจื›ื™ื‘ื™ื ื”ืงืฉื•ืจื™ื ื™ืฉื™ืจื•ืช ืœืฉื™ื ื•ื™ื™ื ืฉื‘ื•ืฆืขื• ืžืื– ื”ื‘ื ื™ื™ื” ื”ืื—ืจื•ื ื” ื ื‘ื ื™ื ืžื—ื“ืฉ. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-Meson ืœื™ืฆื™ืจืช ืจื›ื™ื‘ื™ ื‘ื ื™ื™ื” ืฉื ื™ืชื ื™ื ืœื—ื–ืจื”, ื›ืืฉืจ ื”ืคืขืœืช ื”-build ื‘ืกื‘ื™ื‘ื•ืช ืฉื•ื ื•ืช ืžื‘ื™ืื” ืœืงื•ื‘ืฆื™ ื”ืคืขืœื” ื–ื”ื™ื ืœื—ืœื•ื˜ื™ืŸ.

ื”ื—ื™ื“ื•ืฉื™ื ื”ืขื™ืงืจื™ื™ื ืฉืœ Meson 1.0:

  • ืžื•ื“ื•ืœ ืœื‘ื ื™ื™ืช ืคืจื•ื™ืงื˜ื™ื ื‘ืฉืคืช Rust ื”ื•ื›ืจื– ื™ืฆื™ื‘. ืžื•ื“ื•ืœ ื–ื” ืžืฉืžืฉ ื‘ืคืจื•ื™ืงื˜ Mesa ืœื‘ื ื™ื™ืช ืจื›ื™ื‘ื™ื ืฉื ื›ืชื‘ื• ื‘- Rust.
  • ืืคืฉืจื•ืช ื”ืงื™ื“ื•ืžืช, ื”ื ืชืžื›ืช ื‘ืจื•ื‘ ืคื•ื ืงืฆื™ื•ืช ื‘ื“ื™ืงืช ื”ืžื”ื“ืจ, ืžืกืคืงืช ืืช ื”ื™ื›ื•ืœืช ืœื˜ืคืœ ื‘ืžืขืจื›ื™ื ื‘ื ื•ืกืฃ ืœืžื—ืจื•ื–ื•ืช. ืœื“ื•ื’ืžื”, ื›ืขืช ืชื•ื›ืœ ืœืฆื™ื™ืŸ: cc.check_header('GL/wglew.h', prefix : ['#include ', '#include '])
  • ื ื•ืกืฃ ืืจื’ื•ืžื ื˜ ื—ื“ืฉ "--workdir" ื›ื“ื™ ืœืืคืฉืจ ืœืขืงื•ืฃ ืืช ืกืคืจื™ื™ืช ื”ืขื‘ื•ื“ื”. ืœื“ื•ื’ืžื”, ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ืกืคืจื™ื™ื” ื”ื ื•ื›ื—ื™ืช ื‘ืžืงื•ื ื‘ืกืคืจื™ื™ืช ื”ืขื‘ื•ื“ื”, ืืชื” ื™ื›ื•ืœ ืœื”ืจื™ืฅ: meson devenv -C builddir --workdir.
  • ืื•ืคืจื˜ื•ืจื™ื ื—ื“ืฉื™ื "in" ื•-"not in" ื”ื•ืฆืขื• ื›ื“ื™ ืœืงื‘ื•ืข ืืช ื”ืชืจื—ืฉื•ืชื” ืฉืœ ืžื—ืจื•ื–ืช ืžืฉื ื” ื‘ืžื—ืจื•ื–ืช, ื‘ื“ื•ืžื” ืœื‘ื“ื™ืงื” ื”ื–ืžื™ื ื” ื‘ืขื‘ืจ ืขื‘ื•ืจ ื”ืชืจื—ืฉื•ืช ืฉืœ ืืœืžื ื˜ ื‘ืžืขืจืš ืื• ื‘ืžื™ืœื•ืŸ. ืœื“ื•ื’ืžื”: fs = import('fs') if 'something' ื‘-fs.read('somefile') # True endif
  • ื ื•ืกืคื” ื”ืืคืฉืจื•ืช "ืจืžืช ืื–ื”ืจื”=ื”ื›ืœ", ืฉืžืคืขื™ืœื” ืืช ื”ืคืœื˜ ืฉืœ ื›ืœ ืื–ื”ืจื•ืช ื”ืžื”ื“ืจ ื”ื–ืžื™ื ื•ืช (ื‘-clang ื•ื‘-MSVC ื”ื•ื ืžืฉืชืžืฉ ื‘-Weverything ื•-/Wall, ื•ื‘-GCC ืื–ื”ืจื•ืช ื›ืœื•ืœื•ืช ื‘ื ืคืจื“, ืชื•ืืžื•ืช ื‘ืขืจืš ืœ-Weverything ืžืฆื‘ ื‘ืฆืœืฆื•ืœ).
  • ืฉื™ื˜ืช rust.bindgen ืžื™ื™ืฉืžืช ืืช ื”ื™ื›ื•ืœืช ืœื˜ืคืœ ื‘ืืจื’ื•ืžื ื˜ "ืชืœื•ืช" ื›ื“ื™ ืœื”ืขื‘ื™ืจ ื ืชื™ื‘ื™ื ืœืชืœื•ืช ืฉืืžื•ืจื™ื ืœื”ื™ื•ืช ืžืขื•ื‘ื“ื™ื ืขืœ ื™ื“ื™ ื”ืžื”ื“ืจ.
  • ื”ืคื•ื ืงืฆื™ื” java.generate_native_headers ื”ื•ืฆืื” ืžืฉื™ืžื•ืฉ ื•ืฉื ืฉื•ื ื” ืœ-java.native_headers ื›ื“ื™ ืœื”ืชืื™ื ืœืกื’ื ื•ืŸ ื”ืฉืžื•ืช ื”ื ืคื•ืฅ ืฉืœ ื”ืคื•ื ืงืฆื™ื” ืฉืœ Meson.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”