Meson build system release 1.0

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

Add a comment