Meson build system release 0.51

publicatu custruì a liberazione di u sistema Meson 0.51, chì hè utilizatu per custruisce prughjetti cum'è X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME è GTK+. U codice Meson hè scrittu in Python è furnitu licenziatu sottu 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, a custruzione predeterminata usa u toolkit Ninja, ma hè ancu pussibule di utilizà altri backends, cum'è xcode è VisualStudio. 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).

Hè supportatu a compilazione incruciata è a custruzzione in Linux, 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.

menu innovazioni Meson 0.51:

  • Aghjunghje supportu per a custruzione trasparente di prughjetti esistenti chì utilizanu script di creazione CMake. Meson pò avà custruisce direttamente sottuprogetti simplici (cum'è biblioteche uniche) utilizendu u modulu CMake, simili à i sottuproghjetti standard (inclusi i sottuproghjetti CMake ponu esse posti in u repertoriu di sottoprogetti);
  • Per tutti i compilatori utilizati, a prova preliminare hè inclusa attraversu l'assemblea è l'esekzione di schedarii di teste simplici (verifica di sanità), micca limitatu à a prova di bandiere specificate da l'utilizatori per i compilatori incruciati (da avà, i compilatori nativi di a piattaforma attuale sò ancu verificati). .
  • Aggiunta l'abilità di definisce l'opzioni di a linea di cummanda utilizata durante a compilazione incruciata, cù ubligatoriu specificendu un prefissu di piattaforma prima di l'opzione. In precedenza, l'opzioni di linea di cummanda coprevanu solu e custruzzioni native è ùn puderanu micca esse specificate per a compilazione incruciata. L'opzioni di a linea di cummandu si applicanu avà, indipendentemente da se custruite in modu nativu o incrociatu, assicurendu chì i nativi è i cross-builds produci risultati identici;
  • Aggiunta l'abilità di specificà a bandiera "--cross-file" più di una volta nantu à a linea di cummanda per listà parechji file cross-file;
  • Aghjunghje supportu per u compilatore ICL (Intel C/C++ Compiler) per a piattaforma Windows (ICL.EXE è ifort);
  • Aggiuntu supportu iniziale di u toolkit per CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • U metudu "get_variable" hè statu aghjuntu à l'ughjettu "dependenza", chì permette di ottene u valore di una variàbile senza piglià in contu u tipu di a dependenza attuale (per esempiu, dep.get_variable(pkg-config : 'var-). name', cmake : 'COP_VAR_NAME));
  • Aggiuntu un novu argumentu di l'opzioni di l'assemblea di destinazione, "link_language", per specificà esplicitamente a lingua utilizata quandu chjamà u linker. Per esempiu, un prugramma Fortran principale puderia chjamà codice C / C ++, chì selezziunate automaticamente C / C ++ quandu u linker Fortran deve esse usatu;
  • A gestione di i bandieri di preprocessore CPPFLAGS hè stata cambiata. Mentre Meson precedentemente almacenava CPPFLAGS è bandiere di compilazione specifiche di lingua (CFLAGS, CXXFLAGS) separatamente, sò avà trattate inseparabilmente è e bandiere listate in CPPFLAGS sò aduprate cum'è una altra fonte di bandiere di compilazione per e lingue chì li supportanu;
  • L'output di custom_target è custom_target[i] ponu avà esse usatu cum'è argumenti in l'operazioni link_with è link_whole;
  • I generatori anu avà a capacità di specificà dipendenze supplementari usendu l'opzione "dipende" (per esempiu, generator(program_runner, output: ['@)[email prutettu]'], dipende: exe));
  • Aggiunta una opzione statica à find_library per permette à a ricerca di include solu biblioteche ligati staticamente;
  • Per python.find_installation, a capacità di determinà a presenza di un modulu di Python per una versione specifica di Python hè stata aghjunta;
  • Aggiuntu un novu modulu unstable-kconfig per analizà i fugliali kconfig;
  • Aghjunghjite un novu cumandamentu "subprojects foreach", chì piglia un cumandamentu cù argumenti è l'executa in tutti i repertorii di subproject;

Source: opennet.ru

Add a comment