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

ืคื•ืจืกืžื” ื”ืฉื—ืจื•ืจ ืฉืœ ืžืขืจื›ืช ื”ื‘ื ื™ื™ื” Meson 1.1.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.1:

  • ืืจื’ื•ืžื ื˜ ื—ื“ืฉ "objects:" ื ื•ืกืฃ ืœ-declare_dependency() ื›ื“ื™ ืœืฆืจืฃ ืื•ื‘ื™ื™ืงื˜ื™ื ื™ืฉื™ืจื•ืช ืœืงื•ื‘ืฆื™ ื”ืคืขืœื” ื‘ืฆื•ืจื” ืฉืœ ืชืœื•ืช ืคื ื™ืžื™ืช ืฉืื™ื ื” ื“ื•ืจืฉืช ืฉื™ืžื•ืฉ ื‘-link_who.
  • ืœืคืงื•ื“ื” "meson devenv -dump" ื™ืฉ ื›ืขืช ืืคืฉืจื•ืช ืœืฆื™ื™ืŸ ืงื•ื‘ืฅ ืœื›ืชื•ื‘ ืžืฉืชื ื™ ืกื‘ื™ื‘ื” ื‘ืžืงื•ื ืœื”ื“ืคื™ืก ืื•ืชื• ืœืคืœื˜ ืกื˜ื ื“ืจื˜ื™.
  • ื ื•ืกืคื• ืฉื™ื˜ื•ืช FeatureOption.enable_if ื•-FeatureOption.disable_if ื›ื“ื™ ืœื”ืงืœ ืขืœ ื™ืฆื™ืจืช ืชื ืื™ื ื›ื”ื›ื ื” ืœื”ืขื‘ืจืช ืคืจืžื˜ืจื™ื ืœืคื•ื ืงืฆื™ื” dependency() . opt = get_option('feature').disable_if(not foo, error_message: 'ืœื ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืชื›ื•ื ื” ื›ืืฉืจ foo ืœื ืžื•ืคืขืœืช ื’ื') dep = dependency('foo', required : opt)
  • ื”ืขื‘ืจืช ืื•ื‘ื™ื™ืงื˜ื™ื ืฉื ื•ืฆืจื• ื›ืืจื’ื•ืžื ื˜ื™ื ืœ"ืื•ื‘ื™ื™ืงื˜ื™ื:" ืžื•ืชืจืช.
  • ืคื•ื ืงืฆื™ื™ืช ื”ืคืจื•ื™ืงื˜ ืชื•ืžื›ืช ื›ืขืช ื‘ื”ืชืงื ืช ืงื‘ืฆื™ื ืขื ืžื™ื“ืข ืขืœ ืจื™ืฉื™ื•ื ื•ืช ื”ืคืจื•ื™ืงื˜.
  • ื”ืคืขืœืช "ื”ืชืงื ืช sudo meson" ืžื‘ื˜ื™ื—ื” ืฉื”ื”ืจืฉืื•ืช ืžืื•ืคืกื•ืช ื‘ืžื”ืœืš ื‘ื ื™ื™ื” ืžื—ื“ืฉ ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช ื™ืขื“.
  • ื”ืคืงื•ื“ื” "ื”ืชืงื ืช meson" ืžืกืคืงืช ืืช ื”ื™ื›ื•ืœืช ืœืฆื™ื™ืŸ ืžื˜ืคืœ ื ืคืจื“ ืœื”ืฉื’ืช ื–ื›ื•ื™ื•ืช ืฉื•ืจืฉ (ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืœื‘ื—ื•ืจ polkit, sudo, opendoas ืื• $MESON_ROOT_CMD). ื”ืคืขืœืช "ื”ืชืงื ืช meson" ื‘ืžืฆื‘ ืœื ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ื›ื‘ืจ ืœื ืžื ืกื” ืœื”ืกืœื™ื ื”ืจืฉืื•ืช.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืืคืฉืจื•ื™ื•ืช ืงืจื™ืื” ืžืงื•ื‘ืฅ meson.options ื‘ืžืงื•ื meson_options.txt.
  • ื”ืคื ื™ื™ื” ืžื—ื“ืฉ ืฉืœ ืžื™ื“ืข ืขืœ ื”ืชืงื“ืžื•ืช ื”ื”ืชื‘ื•ื ื ื•ืช ื”ืคื ื™ืžื™ืช ืœ-stderr ืžืกื•ืคืงืช.
  • ื ื•ืกืฃ ืงืฆื” ืื—ื•ืจื™ ื—ื“ืฉ "ืื™ืŸ" (--backend=none) ื›ื“ื™ ืœื™ืฆื•ืจ ืคืจื•ื™ืงื˜ื™ื ืฉื™ืฉ ืœื”ื ืจืง ื›ืœืœื™ ื”ืชืงื ื” ื•ืœืœื ื—ื•ืงื™ ื‘ื ื™ื™ื”.
  • ื”ื•ืกืคืช ืชืœื•ืช ื—ื“ืฉื” pybind11, ื”ืžืืคืฉืจืช ืœ-dependency('pybind11') ืœืขื‘ื•ื“ ืขื pkg-config ื•-cmake ืžื‘ืœื™ ืœื”ืฉืชืžืฉ ื‘ืกืงืจื™ืคื˜ pybind11-config.
  • ื”ืืคืฉืจื•ื™ื•ืช "--reconfigure" ื•-"--wipe" ืžื•ืชืจื•ืช ( meson setup --reconfigure builddir ื•- meson setup --wipe builddir ) ืขื builddir ืจื™ืง.
  • ื”ื•ืกืคืช ืชืžื™ื›ื” ืขื‘ื•ืจ ืžื™ืœืช ื”ืžืคืชื— dry_run ืœ-meson.add_install_script() ื›ื“ื™ ืœืืคืฉืจ ื”ืคืขืœืช ืกืงืจื™ืคื˜ื™ื ืฉืœ ื”ืชืงื ื” ืžืฉืœืš ื‘ืขืช ืงืจื™ืืช "meson install --dry-run".

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

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