Meson build system versiunea 1.1

A fost publicată lansarea sistemului de compilare Meson 1.1.0, care este folosit pentru a construi proiecte precum X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME și GTK. Codul Meson este scris în Python și este licențiat sub licența Apache 2.0.

Scopul cheie de dezvoltare al Meson este de a oferi un proces de asamblare de mare viteză, combinat cu confort și ușurință în utilizare. În loc de make, build folosește setul de instrumente Ninja în mod implicit, dar pot fi utilizate și alte backend-uri, cum ar fi xcode și VisualStudio. Sistemul are încorporat un handler de dependență multiplatformă care vă permite să utilizați Meson pentru a construi pachete pentru distribuții. Regulile de asamblare sunt stabilite într-un limbaj simplificat specific domeniului, sunt bine citite și ușor de înțeles pentru utilizator (conform ideii autorilor, dezvoltatorul ar trebui să petreacă un minim de timp scriind reguli).

Compilarea încrucișată și asamblarea sunt acceptate. Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows Folosind GCC, Clang, Visual Studio și alte compilatoare. Proiectele pot fi construite în diverse limbaje de programare, inclusiv C, C++, Fortran, Java și Rust. Este acceptat modul de construire incrementală, care reconstruiește doar componentele direct legate de modificările aduse de la construirea anterioară. Meson poate fi utilizat pentru a crea construcții repetabile, unde rularea construcției în medii diferite are ca rezultat generarea de fișiere executabile complet identice.

Principalele inovații ale Meson 1.1:

  • Un nou argument „obiecte:” a fost adăugat la declare_dependency() pentru a atașa obiecte direct la executabile sub formă de dependențe interne care nu necesită utilizarea link_who.
  • Comanda „meson devenv -dump” are acum opțiunea de a specifica un fișier în care să scrie variabilele de mediu în loc să-l imprime la ieșirea standard.
  • S-au adăugat metodele FeatureOption.enable_if și FeatureOption.disable_if pentru a facilita crearea condiționalelor în pregătirea pentru transmiterea parametrilor la funcția dependency(). opt = get_option('feature').disable_if(not foo, error_message : 'Nu se poate activa funcția când foo nu este, de asemenea, activat') dep = dependency('foo', required : opt)
  • Este permisă trecerea obiectelor generate ca argumente către „obiecte:”.
  • Funcția de proiect acceptă acum instalarea fișierelor cu informații despre licențele de proiect.
  • Rularea „sudo meson install” asigură resetarea privilegiilor în timpul reconstruirilor pentru platformele țintă.
  • Comanda „meson install” oferă posibilitatea de a specifica un handler separat pentru obținerea drepturilor root (de exemplu, puteți alege polkit, sudo, opendoas sau $MESON_ROOT_CMD). Rularea „instalare meson” în modul non-interactiv nu mai încearcă să escaladeze privilegiile.
  • S-a adăugat suport pentru opțiunile de citire din fișierul meson.options în loc de meson_options.txt.
  • Este furnizată redirecționarea informațiilor despre progresul introspecției către stderr.
  • S-a adăugat un nou backend „none” (--backend=none) pentru a crea proiecte care au doar reguli de instalare și fără reguli de construire.
  • S-a adăugat o nouă dependență pybind11, permițând dependency('pybind11') să lucreze cu pkg-config și cmake fără a utiliza scriptul pybind11-config.
  • Opțiunile „--reconfigure” și „--wipe” sunt permise (meson setup --reconfigure builddir și meson setup --wipe builddir ) cu un builddir gol.
  • S-a adăugat suport pentru cuvântul cheie dry_run la meson.add_install_script() pentru a permite rularea propriilor scripturi de instalare atunci când apelați „meson install --dry-run”.

Sursa: opennet.ru

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster