Meson build system -julkaisu 1.1

Meson 1.1.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.1:n tärkeimmät innovaatiot:

  • Uusi "objects:"-argumentti on lisätty deklaraatioon_dependency() objektien liittämiseksi suoraan suoritettaviin tiedostoihin sisäisinä riippuvuuksina, jotka eivät vaadi link_who-parametria.
  • "Meson devenv --dump" -komennolla on valinnainen kyky määrittää tiedosto, johon ympäristömuuttujat kirjoitetaan sen sijaan, että tulostettaisiin vakiotulostevirtaan.
  • Lisätty menetelmät FeatureOption.enable_if ja FeatureOption.disable_if, jotta ehdollisten ehtojen luominen olisi helpompaa valmisteltaessa parametrien välittämistä dependency()-funktiolle. opt = get_option('feature').disable_if(not foo, error_message : 'Ominaisuutta ei voi ottaa käyttöön, kun foo ei ole myös käytössä') dep = dependency('foo', pakollinen : opt)
  • Luotuja objekteja saa välittää "objektit:"-argumenttien joukossa.
  • Projektitoiminto tukee projektilisenssejä koskevia tietoja sisältävien tiedostojen asennusta.
  • "Sudo meson install" -ohjelman suorittaminen varmistaa oikeuksien nollauksen kohdealustojen uudelleenrakentamisen aikana.
  • "Meson install" -komento antaa mahdollisuuden määrittää erillisen käsittelijän pääkäyttäjän oikeuksien hankkimiseksi (voit esimerkiksi valita polkit, sudo, opendoas tai $MESON_ROOT_CMD). "Meson-asennuksen" suorittaminen ei-interaktiivisessa tilassa ei enää yritä nostaa oikeuksia.
  • Lisätty tuki vaihtoehtojen lukemiselle meson.options-tiedostosta meson_options.txt-tiedoston sijaan.
  • Edellyttää itsetutkiskelun edistymistä koskevien tietojen uudelleenohjausta stderr:lle.
  • Uusi "ei mitään"-taustaosa (--backend=none) on lisätty luomaan projekteja, joissa on vain asennussääntöjä, mutta ei koontisääntöjä.
  • Uusi riippuvuus pybind11 on lisätty, jotta dependency('pybind11') toimisi pkg-config:n ja cmake:n kanssa ilman pybind11-config-komentosarjaa.
  • Vaihtoehdot "--reconfigure" ja "--wipe" (meson setup --reconfigure builddir ja meson setup --wipe builddir ) ovat sallittuja tyhjällä builddir:llä.
  • meson.add_install_script() lisäsi tuen dry_run-avainsanalle, jonka avulla voit suorittaa omia asennusskriptejä kutsuttaessa "meson install --dry-run".

Lähde: opennet.ru

Lisää kommentti