Lansarea sistemului de asamblare Meson 0.58. Proiect de creare a unei implementări a Meson în limbajul C

A fost publicată lansarea sistemului de compilare Meson 0.58, 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 construirea pe Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS și Windows folosind GCC, Clang, Visual Studio și alte compilatoare sunt acceptate. Este posibil să construiți proiecte în diferite limbaje de programare, inclusiv C, C++, Fortran, Java și Rust. Este acceptat un mod de construire incremental, în care numai componentele care sunt direct legate de modificările efectuate de la ultima versiune sunt reconstruite. Meson poate fi folosit pentru a genera build-uri repetabile, unde rularea build-ului în medii diferite are ca rezultat executabile complet identice.

Principalele inovații ale Meson 0.58:

  • Meson are încorporate operațiuni de formatare a șirurilor. În loc să apelați metoda de format, acum puteți înlocui valorile direct, de exemplu, în loc de „'Un șir @0@ să fie formatat @1@'.format(n, m)”, puteți specifica imediat „f’ Un șir @n@ care urmează să fie formatat @ m@'”.
  • O metodă „înlocuire” a fost adăugată la obiectele șir pentru a efectua operația de înlocuire a unui subșir cu altul, de exemplu, „s = s.replace('aaa', 'bbb')".
  • S-a adăugat funcția „range(start, stop[, step])” pentru a returna un obiect care poate fi utilizat într-o buclă foreach, cum ar fi „foreach i : range(15)”.
  • Metoda meson.add_devenv() a fost implementată, permițându-vă să adăugați un obiect mediu() pentru a seta variabilele de mediu atunci când utilizați comanda „meson devenv”, de exemplu, pentru a seta o variabilă de mediu cu calea către directorul de pluginuri.
  • Pentru mediile de dezvoltare a fost propusă o nouă comandă: „meson devenv -C builddir [<comandă>], care face posibilă rularea comenzii într-un mediu configurat să lanseze proiecte din directorul de build (fără instalare).
  • În mod implicit, opțiunea „-pipe” nu mai este transmisă atunci când rulează toate compilatoarele acceptate.
  • Este permisă apelarea meson.add_dist_script() din subproiecte.
  • Oferă posibilitatea de a rula metodele append() și prepend() de mai multe ori pe același obiect mediu().
  • Funcția error() permite mai multe argumente, separate printr-un spațiu (similar cu warning() și message()).
  • S-a adăugat opțiunea „--skip-subprojects” pentru a omite selectiv instalarea subproiectelor.

Separat, putem remarca proiectul Boson, care vizează crearea unei implementări portabile și simple a limbajului de script de asamblare Meson, scris în C în loc de Python. Proiectul este încă la stadiul inițial de dezvoltare și nu este încă pregătit pentru asamblarea completă a proiectelor de lucru. Codul este licențiat conform GPLv3 (originalul Python Meson este licențiat sub licența Apache 2.0).

Sursa: opennet.ru

Adauga un comentariu