Meson build system -julkaisu 1.0

Meson 1.0.0 -koontijärjestelmän julkaisu on julkaistu, jolla rakennetaan projekteja, kuten X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK. Meson-koodi on kirjoitettu Pythonilla ja lisensoitu Apache 2.0 -lisenssillä.

Mesonin tärkein kehitystavoite on tarjota nopea kokoonpanoprosessi yhdistettynä mukavuuteen ja helppokäyttöisyyteen. Maken sijaan koontiversio käyttää oletusarvoisesti Ninja-työkalupakkia, mutta myös muita taustaohjelmia, kuten xcode ja VisualStudio, voidaan käyttää. Järjestelmässä on sisäänrakennettu usean alustan riippuvuuskäsittelijä, jonka avulla voit käyttää Mesonia jakelupakettien rakentamiseen. Kokoonpanosäännöt on asetettu yksinkertaistetulla verkkotunnuskohtaisella kielellä, ne ovat käyttäjälle hyvin luettavia ja ymmärrettäviä (tekijöiden idean mukaan kehittäjän tulee käyttää sääntöjen kirjoittamiseen mahdollisimman vähän aikaa).

Ristikääntämistä ja rakentamista Linuxille, Illumos/Solarisille, FreeBSD:lle, NetBSD:lle, DragonFly BSD:lle, Haikulle, macOS:lle ja Windowsille GCC:n, Clangin, Visual Studion ja muiden kääntäjien avulla tuetaan. On mahdollista rakentaa projekteja eri ohjelmointikielillä, mukaan lukien C, C++, Fortran, Java ja Rust. Inkrementaalinen rakennustila on tuettu, jossa vain komponentit, jotka liittyvät suoraan edellisen koontiversion jälkeen tehtyihin muutoksiin, rakennetaan uudelleen. Mesonilla voidaan luoda toistettavia koontiversioita, joissa koontiversion suorittaminen eri ympäristöissä johtaa täysin identtisiin suoritettaviin tiedostoihin.

Meson 1.0:n tärkeimmät innovaatiot:

  • Rust-kielellä rakennusprojektien moduuli on julistettu vakaaksi. Tätä moduulia käytetään Mesa-projektissa ruosteella kirjoitettujen komponenttien rakentamiseen.
  • Useimpien kääntäjien tarkistustoimintojen tukema etuliitevaihtoehto toteuttaa kyvyn käsitellä muita taulukoita kuin merkkijonoja. Voit nyt esimerkiksi määrittää: cc.check_header('GL/wglew.h', etuliite : ['#include ', '#sisältää '])
  • Uusi argumentti "--workdir" on lisätty, jotta voit ohittaa työhakemiston. Jos haluat esimerkiksi käyttää nykyistä hakemistoa työhakemiston sijaan, voit suorittaa: meson devenv -C builddir --workdir .
  • Uusia operaattoreita "in" ja "not in" ehdotetaan alimerkkijonon esiintymisen määrittämiseksi merkkijonossa, samalla tavalla kuin aiemmin saatavilla oleva taulukon tai sanakirjan elementin esiintymisen tarkistus. Esimerkki: fs = import('fs') if 'something' in fs.read('somefile') # True endif
  • Lisätty "warning-level=everything" -vaihtoehto, joka ottaa käyttöön kaikkien saatavilla olevien kääntäjien varoitusten tuoton (clangissa ja MSVC:ssä käytetään -Weverything- ja /Wall-toimintoja, ja GCC:ssä on erilliset varoitukset, jotka vastaavat karkeasti clangin -Weverything-tilaa).
  • Rust.bindgen-menetelmä toteuttaa kyvyn käsitellä "riippuvuudet"-argumentti välittääkseen polkuja riippuvuuksiin, jotka kääntäjän tulee käsitellä.
  • Funktio java.generate_native_headers on vanhentunut ja nimetty uudelleen muotoon java.native_headers vastaamaan Mesonin yleistä funktion nimeämistyyliä.

Lähde: opennet.ru

Lisää kommentti