Meson build system versiunea 1.0

A fost publicată lansarea sistemului de compilare Meson 1.0.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 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 1.0:

  • Un modul pentru proiecte de construcție în limba Rust a fost declarat stabil. Acest modul este folosit în proiectul Mesa pentru a construi componente scrise în Rust.
  • Opțiunea de prefix, acceptată în majoritatea funcțiilor de verificare a compilatorului, oferă posibilitatea de a gestiona matrice în plus față de șiruri. De exemplu, acum puteți specifica: cc.check_header('GL/wglew.h', prefix : ['#include ', '#include '])
  • S-a adăugat un nou argument „--workdir” pentru a permite suprascrierea directorului de lucru. De exemplu, pentru a utiliza directorul curent în loc de directorul de lucru, puteți rula: meson devenv -C builddir --workdir .
  • Au fost propuși noi operatori „în” și „nu în” pentru a determina apariția unui subșir într-un șir, similar cu verificarea disponibilă anterior pentru apariția unui element într-o matrice sau dicționar. De exemplu: fs = import('fs') if 'something' in fs.read('somefile') # True endif
  • S-a adăugat opțiunea „warning-level=everything”, care activează ieșirea tuturor avertismentelor compilatorului disponibile (în clang și MSVC folosește -Weverything și /Wall, iar în GCC avertismentele sunt incluse separat, aproximativ corespunzând cu -Weverything mod în clang).
  • Metoda rust.bindgen implementează capacitatea de a gestiona argumentul „dependențe” pentru a transmite căi către dependențe care ar trebui să fie procesate de compilator.
  • Funcția java.generate_native_headers a fost depreciată și redenumită în java.native_headers pentru a se conforma stilului comun de denumire a funcțiilor Meson.

Sursa: opennet.ru

Adauga un comentariu