Keluaran sistem binaan Meson 1.0.0 telah diterbitkan, yang digunakan untuk membina projek seperti Pelayan X.Org, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME dan GTK. Kod Meson ditulis dalam Python dan dilesenkan di bawah lesen Apache 2.0.
Matlamat pembangunan utama Meson adalah untuk menyediakan proses pemasangan berkelajuan tinggi yang digabungkan dengan kemudahan dan kemudahan penggunaan. Daripada membuat, binaan menggunakan kit alat Ninja secara lalai, tetapi bahagian belakang lain seperti xcode dan VisualStudio juga boleh digunakan. Sistem ini mempunyai pengendali pergantungan berbilang platform terbina dalam yang membolehkan anda menggunakan Meson untuk membina pakej untuk pengedaran. Peraturan pemasangan ditetapkan dalam bahasa khusus domain yang dipermudahkan, ia boleh dibaca dengan baik dan difahami oleh pengguna (mengikut idea pengarang, pembangun harus menghabiskan masa minimum menulis peraturan).
Menyusun silang dan membina pada Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS dan Windows menggunakan GCC, Clang, Visual Studio dan penyusun lain disokong. Ia adalah mungkin untuk membina projek dalam pelbagai bahasa pengaturcaraan, termasuk C, C++, Fortran, Java dan Rust. Mod binaan tambahan disokong, di mana hanya komponen yang berkaitan secara langsung dengan perubahan yang dibuat sejak binaan terakhir dibina semula. Meson boleh digunakan untuk menjana binaan berulang, yang menjalankan binaan dalam persekitaran yang berbeza menghasilkan boleh laku yang sama sepenuhnya.
Inovasi utama Meson 1.0:
- ΠΠ±ΡΡΠ²Π»Π΅Π½ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. ΠΠ°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Mesa Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Rust.
- Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ prefix, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΌ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΡΠΎΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ: cc.check_header(βGL/wglew.hβ, prefix : [β#include <windows.h>β, β#include <GL/glew.h>β])
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Β«βworkdirΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ: meson devenv -C builddir βworkdir .
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Β«inΒ» ΠΈ Β«not inΒ» Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΡΡΠΎΠΊΡ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΡΠ°Π½Π΅Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: fs = import(βfsβ) if βsomethingβ in fs.read(βsomefileβ) # True endif
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ Β«warning-level=everythingΒ», Π²ΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ Π²ΡΠ΅Ρ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° (Π² clang ΠΈ MSVC ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ -Weverything ΠΈ /Wall, Π° Π² GCC ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ -Weverything Π²clang).
- Π ΠΌΠ΅ΡΠΎΠ΄Π΅ rust.bindgen ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Β«dependenciesΒ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΡΡΠ΅ΠΉ ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ.
- ΠΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΡ java.generate_native_headers, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° Π² java.native_headers Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΡ ΡΡΠΈΠ»Ρ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠΈΠ½ΡΡΠΎΠΌΡ Π² Meson.
Sumber: opennet.ru