Mesoni ehitussüsteemi väljalase 1.0

Avaldatud on Meson 1.0.0 ehitussüsteemi väljalase, mida kasutatakse selliste projektide ehitamiseks nagu X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK. Mesoni kood on kirjutatud Pythonis ja litsentsitud Apache 2.0 litsentsi alusel.

Mesoni arenduse põhieesmärk on pakkuda kiiret montaažiprotsessi koos mugavuse ja kasutuslihtsusega. Make asemel kasutab järg vaikimisi Ninja tööriistakomplekti, kuid kasutada saab ka muid taustaprogramme, nagu xcode ja VisualStudio. Süsteemil on sisseehitatud mitme platvormi sõltuvuse töötleja, mis võimaldab kasutada Mesonit distributsioonide pakettide koostamiseks. Koostereeglid on seatud lihtsustatud domeenipõhises keeles, need on hästi loetavad ja kasutajale arusaadavad (autorite idee kohaselt peaks arendaja kulutama reeglite kirjutamisele minimaalselt aega).

Toetatud on Linuxi, Illumos/Solarise, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS-i ja Windowsi ristkompileerimine ja ehitamine GCC, Clangi, Visual Studio ja muude kompilaatorite abil. Võimalik on ehitada projekte erinevates programmeerimiskeeltes, sealhulgas C, C++, Fortran, Java ja Rust. Toetatakse järkjärgulist ehitusrežiimi, milles ehitatakse ümber ainult need komponendid, mis on otseselt seotud pärast viimast ehitamist tehtud muudatustega. Mesonit saab kasutada korratavate ehituste genereerimiseks, kus ehitamist erinevates keskkondades käivitades saadakse täiesti identsed käivitatavad failid.

Meson 1.0 peamised uuendused:

  • Rustkeelse ehitusprojektide moodul on tunnistatud stabiilseks. Seda moodulit kasutatakse Mesa projektis Rustis kirjutatud komponentide ehitamiseks.
  • Enamiku kompilaatorite kontrollimisfunktsioonide toetatud prefiksi suvand rakendab võimalust käsitleda ka muid massiive peale stringide. Näiteks saate nüüd määrata: cc.check_header('GL/wglew.h', eesliide : ['#include ', '#kaasa '])
  • Lisatud on uus argument "--workdir", mis võimaldab teil töökataloogi alistada. Näiteks praeguse kataloogi kasutamiseks töökataloogi asemel võite käivitada: meson devenv -C builddir --workdir .
  • Alamstringi esinemise määramiseks stringis on välja pakutud uued operaatorid "in" ja "not in", sarnaselt varem kättesaadavale massiivi või sõnastiku elemendi esinemise kontrollimisele. Näiteks: fs = import('fs') if 'something' in fs.read('somefile') # True endif
  • Lisatud suvand "warning-level=verything", et lülitada sisse kõigi saadaolevate kompilaatori hoiatuste väljund (clangis ja MSVC-s kasutab -Weverything ja /Wall ning GCC-s on kaasatud eraldi hoiatused, mis vastavad umbkaudu klangi -Weverything režiimile).
  • Meetod rust.bindgen rakendab võimet töödelda argumenti "sõltuvused", et edastada teed sõltuvustele, mida kompilaator peaks töötlema.
  • Funktsioon java.generate_native_headers on aegunud ja ümber nimetatud java.native_headers, et see sobiks Mesoni üldise funktsioonide nimetamise stiiliga.

Allikas: opennet.ru

Lisa kommentaar