Mfumo wa uundaji wa Meson 0.58 umetolewa, ambao unatumika kujenga miradi kama vile Seva ya X.Org, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME na GTK. Nambari ya Meson imeandikwa kwa Python na ina leseni chini ya leseni ya Apache 2.0.
Lengo kuu la maendeleo ya Meson ni kutoa kasi ya juu ya mchakato wa mkutano pamoja na urahisi na urahisi wa matumizi. Badala ya kutengeneza matumizi, zana ya zana ya Ninja hutumiwa kwa chaguo-msingi wakati wa kujenga, lakini viunzi vingine vya nyuma kama vile xcode na VisualStudio pia vinaweza kutumika. Mfumo una kidhibiti cha utegemezi cha majukwaa mengi ambacho hukuruhusu kutumia Meson kuunda vifurushi vya usambazaji. Sheria za mkusanyiko zimebainishwa katika lugha iliyorahisishwa mahususi ya kikoa, zinaweza kusomeka na kueleweka kwa mtumiaji (kama ilivyokusudiwa na waandishi, msanidi programu anapaswa kutumia muda mdogo kuandika sheria).
Inasaidia ujumuishaji na ujenzi kwenye Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS na Windows kwa kutumia GCC, Clang, Visual Studio na vikusanyaji vingine. Inawezekana kujenga miradi katika lugha mbalimbali za programu, ikiwa ni pamoja na C, C ++, Fortran, Java na Rust. Hali ya ongezeko la ujenzi inatumika, ambapo vipengele pekee vinavyohusiana moja kwa moja na mabadiliko yaliyofanywa tangu muundo wa mwisho hujengwa upya. Meson inaweza kutumika kutengeneza miundo inayoweza kurudiwa, ambayo kuendesha jengo katika mazingira tofauti husababisha kizazi cha faili zinazoweza kutekelezwa zinazofanana kabisa.
Ubunifu kuu wa Meson 0.58:
- Π ΡΠ·ΡΠΊΠ΅ Meson ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊ. ΠΠΌΠ΅ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° format ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΠΏΡΡΠΌΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΌΠ΅ΡΡΠΎ Β«βA string @0@ to be formatted @1@β.format(n, m)Β» ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΠ°Π·Ρ Β«fβA string @n@ to be formatted @m@'Β».
- Π ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ Β«replaceΒ» Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«s = s.replace(βaaaβ, βbbbβ)Β».
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Β«range(start, stop[, step])Β» Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΡΠΈΠΊΠ»Π΅ Β«foreachΒ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Β«foreach i : range(15)Β».
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅ΡΠΎΠ΄ meson.add_devenv(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ environment() Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«meson devenvΒ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΡΡΡΠΌ ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ.
- ΠΠ»Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π½ΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«meson devenv -C builddir [<ΠΊΠΎΠΌΠ°Π½Π΄Π°>], Π΄Π°ΡΡΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ, Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΈΠ· ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° (Π±Π΅Π· ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ).
- ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Β«-pipeΒ» ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ².
- Π Π°Π·ΡΠ΅ΡΡΠ½ Π²ΡΠ·ΠΎΠ² meson.add_dist_script() ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² append() ΠΈ prepend() Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° environment().
- Π ΡΡΠ½ΠΊΡΠΈΠΈ error() ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ (ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ warning() ΠΈ message()).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«βskip-subprojectsΒ» Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Boson, Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΠΉ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ·ΡΠΊΠ° ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ
ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Meson, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Python. ΠΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠΊΠ° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π½Π° Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π³ΠΎΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠΎΠ΄ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPLv3 (ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Meson Π½Π° Python ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0).
Chanzo: opennet.ru