เบเบฒเบ™เบ›เปˆเบญเบเบฅเบฐเบšเบปเบšเบเบฒเบ™เบ›เบฐเบเบญเบš Meson 1.1

เบฅเบฐเบšเบปเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ Meson 1.1.0 เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เป€เบŠเบฑเปˆเบ™ X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME เปเบฅเบฐ GTK. เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡ Meson เปเบกเปˆเบ™เบ‚เบฝเบ™เปƒเบ™ Python เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบญเบฐเบ™เบธเบเบฒเบ”เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Apache 2.0.

เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Meson เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเป„เบงเบชเบนเบ‡เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ›เบฐเบเบญเบšเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปเบฅเบฐเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”, เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท Ninja เบ–เบทเบเปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡, เปเบ•เปˆ backends เบญเบทเปˆเบ™เป†เป€เบŠเบฑเปˆเบ™ xcode เปเบฅเบฐ VisualStudio เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบฅเบฐเบšเบปเบšเบกเบตเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบซเบผเบฒเบเป€เบงเบ—เบตเบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰ Meson เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบ. เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ‚เบญเบ‡เบชเบฐเบžเบฒเปเบซเปˆเบ‡เปเบกเปˆเบ™เป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบžเบฒเบชเบฒเบชเบฐเป€เบžเบฒเบฐเป‚เบ”เป€เบกเบ™เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ, เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เบชเบนเบ‡เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰ (เบ•เบฒเบกเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฝเบ™, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เบงเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเปƒเบ™เบเบฒเบ™เบ‚เบฝเบ™เบเบปเบ”เบฅเบฐเบšเบฝเบš).

เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบ‚เป‰เบฒเบก เปเบฅเบฐเบชเป‰เบฒเบ‡เปƒเบ™ Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS เปเบฅเบฐ Windows เป‚เบ”เบเปƒเบŠเป‰ GCC, Clang, Visual Studio เปเบฅเบฐ compilers เบญเบทเปˆเบ™เป†. เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ•เปˆเบฒเบ‡เป†, เบฅเบงเบกเบ—เบฑเบ‡ C, C++, Fortran, Java เปเบฅเบฐ Rust. เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™, เป€เบŠเบดเปˆเบ‡เบžเบฝเบ‡เปเบ•เปˆเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เป‚เบ”เบเบเบปเบ‡เบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ„เบฑเป‰เบ‡เบชเบธเบ”เบ—เป‰เบฒเบเบ–เบทเบเบชเป‰เบฒเบ‡เปƒเบซเบกเปˆ. Meson เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบŠเป‰เปเบฒเบŠเป‰เบญเบ™, เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบเบฒเบ™เบœเบฐเบฅเบดเบ”เป„เบŸเบฅเปŒเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ„เบทเบเบฑเบ™เบซเบกเบปเบ”.

เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒเบซเบผเบฑเบเบ‚เบญเบ‡ Meson 1.1:

  • ะ’ declare_dependency() ะดะพะฑะฐะฒะปะตะฝ ะฝะพะฒั‹ะน ะฐั€ะณัƒะผะตะฝั‚ ยซobjects:ยป ะดะปั ะฟั€ะธะบั€ะตะฟะปะตะฝะธั ะพะฑัŠะตะบั‚ะพะฒ ะฝะฐะฟั€ัะผัƒัŽ ะบ ะธัะฟะพะปะฝัะตะผั‹ะผ ั„ะฐะนะปะฐะผ ะฒ ั„ะพั€ะผะต ะฒะฝัƒั‚ั€ะตะฝะฝะธั… ะทะฐะฒะธัะธะผะพัั‚ะตะน, ะฝะต ั‚ั€ะตะฑัƒัŽั‰ะธั… ะฟั€ะธะผะตะฝะตะฝะธั link_who.
  • ะ’ ะบะพะผะฐะฝะดัƒ ยซmeson devenv โ€”dumpยป ะดะพะฑะฐะฒะปะตะฝะฐ ะพะฟั†ะธะพะฝะฐะปัŒะฝะฐั ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัƒะบะฐะทะฐะฝะธั ั„ะฐะนะปะฐ ะดะปั ะทะฐะฟะธัะธ ะฒ ะฝะตะณะพ ะฟะตั€ะตะผะตะฝะฝั‹ั… ะพะบั€ัƒะถะตะฝะธั, ะฒะผะตัั‚ะพ ะฒั‹ะฒะพะดะฐ ะฒ ัั‚ะฐะฝะดะฐั€ั‚ะฝั‹ะน ะฒั‹ั…ะพะดะฝะพะน ะฟะพั‚ะพะบ.
  • ะ”ะพะฑะฐะฒะปะตะฝั‹ ะผะตั‚ะพะดั‹ FeatureOption.enable_if ะธ FeatureOption.disable_if ะดะปั ัƒะฟั€ะพั‰ะตะฝะธั ัะพะทะดะฐะฝะธั ัƒัะปะพะฒะฝั‹ั… ะบะพะฝัั‚ั€ัƒะบั†ะธะน ะฟั€ะธ ะฟะพะดะณะพั‚ะพะฒะบะต ะบ ะฟะตั€ะตะดะฐั‡ะต ะฟะฐั€ะฐะผะตั‚ั€ะพะฒ ะฒ ั„ัƒะฝะบั†ะธัŽ dependency(). opt = get_option(โ€˜featureโ€™).disable_if(not foo, error_message : โ€˜Cannot enable feature when foo is not also enabledโ€™) dep = dependency(โ€˜fooโ€™, required : opt)
  • ะ ะฐะทั€ะตัˆะตะฝะฐ ะฟะตั€ะตะดะฐั‡ะฐ ัะณะตะฝะตั€ะธั€ะพะฒะฐะฝะฝั‹ั… ะพะฑัŠะตะบั‚ะพะฒ ะฒ ั‡ะธัะปะต ะฐั€ะณัƒะผะตะฝั‚ะพะฒ ยซobjects:ยป.
  • ะ’ ั„ัƒะฝะบั†ะธะธ project ั€ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัƒัั‚ะฐะฝะพะฒะบะธ ั„ะฐะนะปะพะฒ ั ะธะฝั„ะพั€ะผะฐั†ะธะตะน ะพ ะปะธั†ะตะฝะทะธัั… ะฟั€ะพะตะบั‚ะฐ.
  • ะŸั€ะธ ะฒั‹ะฟะพะปะฝะตะฝะธะธ ยซsudo meson installยป ะพะฑะตัะฟะตั‡ะตะฝ ัะฑั€ะพั ะฟั€ะธะฒะธะปะตะณะธะน ะฒะพ ะฒั€ะตะผั ะฟะตั€ะตัะฑะพั€ะบะธ ะดะปั ั†ะตะปะตะฒั‹ั… ะฟะปะฐั‚ั„ะพั€ะผ.
  • ะ’ ะบะพะผะฐะฝะดะต ยซmeson installยป ะฟั€ะตะดะพัั‚ะฐะฒะปะตะฝะฐ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ัƒะบะฐะทะฐะฝะธั ะพั‚ะดะตะปัŒะฝะพะณะพ ะพะฑั€ะฐะฑะพั‚ั‡ะธะบะฐ ะดะปั ะฟะพะปัƒั‡ะตะฝะธั ะฟั€ะฐะฒ root (ะฝะฐะฟั€ะธะผะตั€, ะผะพะถะฝะพ ะฒั‹ะฑั€ะฐั‚ัŒ polkit, sudo, opendoas ะธะปะธ $MESON_ROOT_CMD). ะŸั€ะธ ะทะฐะฟัƒัะบะต ยซmeson installยป ะฝะต ะฒ ะธะฝั‚ะตั€ะฐะบั‚ะธะฒะฝะพะผ ั€ะตะถะธะผะต ะฑะพะปัŒัˆะต ะฝะต ะฟั€ะพะธะทะฒะพะดัั‚ัั ะฟะพะฟั‹ั‚ะบะธ ะฟะพะฒั‹ัˆะตะฝะธั ะฟั€ะธะฒะธะปะตะณะธะน.
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ั‡ั‚ะตะฝะธั ะพะฟั†ะธะน ะธะท ั„ะฐะนะปะฐ meson.options ะฒะผะตัั‚ะพ meson_options.txt.
  • ะžะฑะตัะฟะตั‡ะตะฝะพ ะฟะตั€ะตะฝะฐะฟั€ะฐะฒะปะตะฝะธั ะฒ stderr ะฒั‹ะฒะพะดะฐ ะธะฝั„ะพั€ะผะฐั†ะธะธ ะพ ั…ะพะดะต ะธะฝั‚ั€ะพัะฟะตะบั†ะธะธ.
  • ะ”ะพะฑะฐะฒะปะตะฝ ะฝะพะฒั‹ะน ะฑัะบะตะฝะด ยซnoneยป (โ€”backend=none) ะดะปั ัะพะทะดะฐะฝะธั ะฟั€ะพะตะบั‚ะพะฒ, ะธะผะตัŽั‰ะธั… ั‚ะพะปัŒะบะพ ะฟั€ะฐะฒะธะปะฐ ัƒัั‚ะฐะฝะพะฒะบะธ ะธ ะฝะต ัะพะดะตั€ะถะฐั‰ะธั… ะฟั€ะฐะฒะธะป ัะฑะพั€ะบะธ.
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฝะพะฒะฐั ะทะฐะฒะธัะธะผะพัั‚ัŒ pybind11, ะพะฑะตัะฟะตั‡ะธะฒะฐัŽั‰ะฐั ั€ะฐะฑะพั‚ัƒ dependency(โ€˜pybind11โ€™) ั pkg-config ะธ cmake ะฑะตะท ะฟั€ะธะผะตะฝะตะฝะธั ัะบั€ะธะฟั‚ะฐ pybind11-config.
  • ะ ะฐะทั€ะตัˆะตะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะพะฟั†ะธะน ยซโ€”reconfigureยป ะธ ยซโ€”wipeยป (meson setup โ€”reconfigure builddir ะธ meson setup โ€”wipe builddir ) ั ะฟัƒัั‚ั‹ะผ builddir.
  • ะ’ meson.add_install_script() ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะบะปัŽั‡ะตะฒะพะณะพ ัะปะพะฒะฐ dry_run, ั€ะฐะทั€ะตัˆะฐัŽั‰ะตะณะพ ะทะฐะฟัƒัะบ ัะพะฑัั‚ะฒะตะฝะฝั‹ั… ัƒัั‚ะฐะฝะพะฒะพั‡ะฝั‹ั… ัะบั€ะธะฟั‚ะพะฒ ะฟั€ะธ ะฒั‹ะทะพะฒะต ยซmeson install โ€”dry-runยป.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™