Meson build system release 0.52

publicatu custruì a liberazione di u sistema Meson 0.52, 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).

Supportatu cross-compile è custruisce 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.

menu innovazioni Meson 0.52:

  • Aghjunghje un supportu sperimentale per Webassembly utilizendu Emscripten cum'è compilatore;
  • U supportu per e plataforme Illumos è Solaris hè statu migliuratu significativamente è purtatu à e cundizioni di travagliu;
  • Assicura chì i script d'internazionalizazione basati in gettext sò ignorati se u sistema ùn hà micca installatu u toolkit gettext (previamente, un errore era visualizatu quandu si usa u modulu i18n in sistemi senza gettext);
  • Supportu migliuratu per biblioteche statiche. Parechji prublemi quandu si usanu biblioteche statiche disinstallate sò stati risolti;
  • Aggiunta a capacità di utilizà dizziunari per assignà variabili di l'ambiente. Quandu chjamà l'ambiente (), u primu elementu pò avà esse specificatu cum'è un dizziunariu in quale e variabili di l'ambiente sò definite in forma di chjave / valore. Queste variàbili saranu trasferite à ambient_object cum'è s'elli eranu individualmente stabiliti via u metudu set (). I dizziunari ponu ancu esse passati à parechje funzioni chì sustenenu un argumentu "env";
  • Funzione aghjunta "runtarget alias_target (target_name, dep1, ...)" chì crea un novu scopu di creazione di primu livellu chì pò esse chjamatu cù u backend di custruzzione selezziunatu (per esempiu "ninja target_name"). Questa destinazione di custruzzione ùn eseguisce micca cumandamenti, ma assicura chì tutte e dipendenze sò custruite;
  • Abilitatu l'impostazione automatica di a variabile d'ambiente PKG_CONFIG_SYSROOT_DIR durante a compilazione incruciata s'ellu ci hè un paràmetru sys_root in a sezione "[proprietà]";
  • Aggiunta l'opzione "--gdb-path" per determinà u percorsu à u debugger GDB quandu si specifica l'opzione "--gdb testname" per eseguisce GDB cù u script di prova specificatu;
  • Aggiunta a rilevazione automatica di u scopu di custruzzione clang-tidy per eseguisce stu linter cù tutti i fugliali fonte. U mira hè creatu se clang-tidy hè dispunibule in u sistema è u schedariu ".clang-tidy" (o "_clang-tidy") hè definitu in a radica di u prugettu;
  • Aggiunta dipendenza ('blocchi') per l'usu in l'estensione Clang Blocks;
  • U linker è u compilatore sò separati, chì permettenu diverse cumminazzioni di compilatori è linkers per esse utilizati;
  • Aggiuntu u metudu all_dependencies () à l'oggetti SourceSet in più di u metudu all_sources ();
  • In run_project_tests.py, l'opzione "--only" hè stata aghjunta per eseguisce selettivamente e teste (per esempiu, "python run_project_tests.py -only fortran python3");
  • A funzione find_program() hà avà a capacità di circà solu e versioni richieste di un prugramma (a versione hè determinata da eseguisce u prugramma cù l'opzione "-versione");
  • Per cuntrullà l'esportazione di simboli, l'opzione vs_module_defs hè stata aghjunta à a funzione shared_module(), simili à shared_library();
  • U modulu kconfig hè statu allargatu per supportà configure_file () per specificà un schedariu di input;
  • Aggiunta a capacità di specificà parechji schedarii di input per "command:" handlers à configure_file ();
  • U cumandamentu "dist" per creà un archiviu hè statu spustatu à a categuria di cumandamenti di primu livellu (prima u cumandamentu era ligatu à ninja). Aghjunghje l'opzione "--formats" per definisce i tipi d'archivi da creà (per esempiu,
    "meson dist -formats=xztar,zip").

Source: opennet.ru

Add a comment