ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π΅ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Meson 0.58, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠ°ΡΠΎ 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 0.58:
- Meson ΠΈΠΌΠ° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅. ΠΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½Π΅, Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° Π·Π°ΠΌΠ΅ΡΡΠ²Π°ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΌΠ΅ΡΡΠΎ β'ΠΠΈΠ· @0@, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½ @1@'.format(n, m)β ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ βfβ ΠΠΈΠ· @n@ Π·Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½Π΅ @ m@'".
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΌΠ΅ΡΠΎΠ΄ "replace" ΠΊΡΠΌ ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ Π·Π°ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΠΎΠ΄Π½ΠΈΠ· Ρ Π΄ΡΡΠ³, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ "s = s.replace('aaa', 'bbb')".
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡ "range(start, stop[, step])" Π·Π° Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² foreach ΡΠΈΠΊΡΠ», ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ "foreach i : range(15)".
- ΠΡΠ²Π΅Π΄Π΅Π½ Π΅ ΠΌΠ΅ΡΠΎΠ΄ΡΡ meson.add_devenv(), ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΎΠ±Π΅ΠΊΡ Π½Π° ΡΡΠ΅Π΄Π°(), Π·Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° "meson devenv", Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° ΡΡΠ΅Π΄Π° Ρ ΠΏΡΡΡ ΠΊΡΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π½Π° Π΄ΠΎΠ±Π°Π²ΠΊΠΈΡΠ΅.
- ΠΠ° ΡΡΠ΅Π΄ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π½ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°: βmeson devenv -C builddir [<ΠΊΠΎΠΌΠ°Π½Π΄Π°>], ΠΊΠΎΡΡΠΎ ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π² ΡΡΠ΅Π΄Π°, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΎΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ (Π±Π΅Π· ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ).
- ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΎΠΏΡΠΈΡΡΠ° "-pipe" ΡΠΏΠΈΡΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈ.
- ΠΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° meson.add_dist_script() ΠΎΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ.
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ append() ΠΈ prepend() Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ ΠΎΠ±Π΅ΠΊΡ Π½Π° environment().
- Π€ΡΠ½ΠΊΡΠΈΡΡΠ° error() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° warning() ΠΈ message()).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ β--skip-subprojectsβ Π·Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΠΈ.
ΠΡΠ΄Π΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° Boson, Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠ° ΠΈ ΠΏΡΠΎΡΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²ΠΈΡ Π΅Π·ΠΈΠΊ Π·Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° Meson, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C Π²ΠΌΠ΅ΡΡΠΎ Π½Π° Python. ΠΡΠΎΠ΅ΠΊΡΡΡ Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ Π² Π½Π°ΡΠ°Π»Π΅Π½ Π΅ΡΠ°ΠΏ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π³ΠΎΡΠΎΠ² Π·Π° ΠΏΡΠ»Π½ΠΎ ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ. ΠΠΎΠ΄ΡΡ Π΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠ°Π½ ΠΏΠΎΠ΄ GPLv3 (ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΡ Python Meson Π΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠ°Π½ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° Apache 2.0).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru