ВСрсия Π½Π° систСмата Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Meson 1.1

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° Π΅ вСрсията Π½Π° систСмата Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Meson 1.1.0, която сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ΠΈ GTK. ΠšΠΎΠ΄ΡŠΡ‚ Meson Π΅ написан Π½Π° Python ΠΈ Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€Π°Π½ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Apache 2.0.

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° Ρ†Π΅Π» Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Meson Π΅ Π΄Π° осигури високоскоростСн процСс Π½Π° сглобяванС, ΡΡŠΡ‡Π΅Ρ‚Π°Π½ с удобство ΠΈ Π»Π΅ΠΊΠΎΡ‚Π° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. ВмСсто make, компилацията ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° инструмСнтариума Ninja ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, Π½ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠ²Π΅, ΠΊΠ°Ρ‚ΠΎ xcode ΠΈ VisualStudio. БистСмата ΠΈΠΌΠ° Π²Π³Ρ€Π°Π΄Π΅Π½ ΠΌΡƒΠ»Ρ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ Π½Π° зависимости, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Meson Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° дистрибуции. ΠŸΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° сглобяванС са Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° опростСн Π΅Π·ΠΈΠΊ, спСцифичСн Π·Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½, Ρ‚Π΅ са Π΄ΠΎΠ±Ρ€Π΅ Ρ‡Π΅Ρ‚ΠΈΠΌΠΈ ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌΠΈ Π·Π° потрСбитСля (спорСд идСята Π½Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ трябва Π΄Π° отдСля ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° писанС Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°).

ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС ΠΊΡ€ΡŠΡΡ‚ΠΎΡΠ°Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ΠΈ Windows с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° GCC, Clang, Visual Studio ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ C, C++, Fortran, Java ΠΈ Rust. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ сС Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Ρ‚ само ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са пряко ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ слСд послСдното ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅. Meson ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° повтарящи сС ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° компилацията Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ срСди Π²ΠΎΠ΄ΠΈ Π΄ΠΎ напълно ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Основни ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ Π½Π° 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', Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ : opt)
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π΅ Π΄Π° сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ срСд Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ "ΠΎΠ±Π΅ΠΊΡ‚ΠΈ:".
  • Ѐункцията Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° инсталиранСто Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с информация Π·Π° Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  • Π˜Π·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° β€žsudo meson installβ€œ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° Π½ΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π·Π° Ρ†Π΅Π»Π΅Π²ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ.
  • ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° "meson install" прСдоставя Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° root Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ polkit, sudo, opendoas ΠΈΠ»ΠΈ $MESON_ROOT_CMD). Π˜Π·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° "meson install" Π² Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Π²Π΅Ρ‡Π΅ Π½Π΅ сС ΠΎΠΏΠΈΡ‚Π²Π° Π΄Π° повиши ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΎΠΏΡ†ΠΈΠΈ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΎΡ‚ Ρ„Π°ΠΉΠ»Π° 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.
  • meson.add_install_script() Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π°Ρ‚Π° Π΄ΡƒΠΌΠ° dry_run, която Π²ΠΈ позволява Π΄Π° стартиратС свои собствСни инсталационни скриптовС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚Π΅ "meson install --dry-run".

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€