U sistema di creazione Meson 1.0.0 hè statu liberatu, chì hè utilizatu per custruisce prughjetti cum'è X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME è GTK. U codice di Meson hè scrittu in Python è hè licenziatu sottu a licenza Apache 2.0.
U scopu chjave di u sviluppu Meson hè di furnisce una alta velocità di u prucessu di assemblea cumminata cù comodità è facilità d'usu. Invece di l'utilità di creazione, u toolkit Ninja hè utilizatu per difettu quandu si custruisce, ma altri backends cum'è xcode è VisualStudio ponu ancu esse usatu. U sistema hà un gestore di dependenza multi-piattaforma integrata chì permette di utilizà Meson per custruisce pacchetti per distribuzioni. I reguli di l'assemblea sò specificati in una lingua simplificata specifica di u duminiu, sò assai leghjite è cumprendi per l'utilizatori (cum'è intesu da l'autori, u sviluppatore deve passà un minimu di tempu scrivendu regule).
Supporta a compilazione incruciata è a custruzione nantu à Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS è Windows cù GCC, Clang, Visual Studio è altri compilatori. Hè pussibule di custruisce prughjetti in diverse lingue di prugrammazione, cumprese C, C++, Fortran, Java è Rust. U modu di creazione incrementale hè supportatu, in quale solu i cumpunenti direttamente ligati à i cambiamenti fatti da l'ultima custruzzione sò ricustruiti. Meson pò esse usatu per generà custruzzioni ripetibili, in quale l'esecuzione di a custruzzione in ambienti differenti si traduce in a generazione di fugliali eseguibili completamente identici.
Principali innovazioni di Meson 1.0:
- Un modulu per i prughjetti di custruzzione in a lingua Rust hè statu dichjaratu stabile. Stu modulu hè utilizatu in u prughjettu Mesa per custruisce cumpunenti scritti in Rust.
- L'opzione di prefissu, supportata in a maiò parte di e funzioni di verificazione di compilatore, furnisce l'abilità di gestisce array in più di e stringhe. Per esempiu, pudete avà specificà: cc.check_header('GL/wglew.h', prefix: ['#include ', '#include '])
- Aggiuntu novu argumentu "--workdir" per permette di annullà u cartulare di travagliu. Per esempiu, per utilizà u cartulare attuale invece di u cartulare di travagliu, pudete eseguisce: meson devenv -C builddir --workdir .
- I novi operatori "in" è "non in" sò stati pruposti per determinà l'occurrence di una substringa in una stringa, simili à a verificazione dispunibile prima per l'occurrence di un elementu in un array o dizziunariu. Per esempiu: fs = import('fs') if 'something' in fs.read('somefile') # True endif
- Aggiunta l'opzione "warning-level=everything", chì attiva l'output di tutti l'avvisi di compilatore dispunibili (in clang è MSVC usa -Weverything è /Wall, è in GCC avvisi sò inclusi separatamente, apprussimatamente currispondenu à -Weverything. modu in clang).
- U metudu rust.bindgen implementa l'abilità di trattà l'argumentu "dipendenze" per passà i percorsi à e dipendenze chì devenu esse processate da u compilatore.
- A funzione java.generate_native_headers hè stata deprecata è rinominata in java.native_headers per cunfurmà cù u stilu di nomenamentu di funzioni cumuni di Meson.
Source: opennet.ru