Meson build system -julkaisu 0.51

julkaistu rakentaa järjestelmän julkaisu Meson 0.51, jota käytetään rakentamaan projekteja, kuten X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK+. Meson-koodi on kirjoitettu Pythonilla ja toimitetaan lisensoitu Apache 2.0:lla.

Meson-kehityksen keskeisenä tavoitteena on tarjota nopea kokoonpanoprosessi yhdistettynä mukavuuteen ja helppokäyttöisyyteen. Make-apuohjelman sijaan oletuskoontiversio käyttää työkalupakkia Ninja, mutta on myös mahdollista käyttää muita taustaohjelmia, kuten xcode ja VisualStudio. Järjestelmässä on sisäänrakennettu usean alustan riippuvuuskäsittelijä, jonka avulla voit käyttää Mesonia jakelupakettien rakentamiseen. Kokoonpanosäännöt on määritelty yksinkertaistetulla verkkotunnuskohtaisella kielellä, ne ovat erittäin luettavia ja käyttäjälle ymmärrettäviä (tekijöiden tarkoittaman, kehittäjän tulee käyttää vähintään aikaa sääntöjen kirjoittamiseen).

Ristikääntämistä ja rakentamista Linuxissa, macOS:ssä ja Windowsissa 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 identtisten suoritettavien tiedostojen luomiseen.

Pääasiallinen innovaatioita Meson 0.51:

  • Lisätty tuki olemassa olevien projektien läpinäkyvälle rakentamiselle, jotka käyttävät CMake-koontiskriptejä. Meson voi nyt suoraan rakentaa yksinkertaisia ​​aliprojekteja (kuten yksittäisiä kirjastoja) käyttämällä CMake-moduulia, kuten tavallisia aliprojekteja (mukaan lukien CMake-aliprojektit voidaan sijoittaa aliprojektihakemistoon);
  • Kaikille käytetyille kääntäjille alustava testaus sisältyy yksinkertaisten testitiedostojen kokoamiseen ja suorittamiseen (terveyden tarkastus), joka ei rajoitu käyttäjän määrittelemien ristikääntäjien lippujen testaamiseen (tästä lähtien myös nykyiselle alustalle kotoisin olevat kääntäjät tarkistetaan) .
  • Lisätty mahdollisuus määrittää ristikääntämisen aikana käytetyt komentoriviasetukset, sidottaessa määrittämällä alustan etuliite ennen vaihtoehtoa. Aikaisemmin komentorivin valinnat kattoivat vain alkuperäiset koontiversiot, eikä niitä voitu määrittää ristiinkäännöstä varten. Komentorivivaihtoehdot ovat nyt voimassa riippumatta siitä, oletko rakentamassa natiivisti vai ristiinkääntämässä. Näin varmistetaan, että alkuperäiset ja ristikkäiset käännökset tuottavat identtiset tulokset.
  • Lisätty mahdollisuus määrittää "--cross-file" -lippu useammin kuin kerran komentorivillä useiden ristikkäisten tiedostojen luetteloimiseksi;
  • Lisätty tuki ICL-kääntäjälle (Intel C/C++ Compiler) Windows-alustalle (ICL.EXE ja ifort);
  • Lisätty alustavan työkalusarjan tuki CPU Xtensalle (xt-xcc, xt-xc++, xt-nm);
  • "Dependency"-objektiin on lisätty menetelmä get_variable, jonka avulla voit saada muuttujan arvon ottamatta huomioon nykyisen riippuvuuden tyyppiä (esim. dep.get_variable(pkg-config : 'var- nimi', cmake : 'COP_VAR_NAME));
  • Lisätty uusi kohdekokoonpanoasetusargumentti "link_language", joka määrittää linkkeriä kutsuttaessa käytettävän kielen. Esimerkiksi Fortran-pääohjelma voisi kutsua C/C++-koodia, joka automaattisesti valitsee C/C++:n, kun Fortran-linkkeriä tulisi käyttää;
  • CPPFLAGS-esikäsittelylippujen käsittelyä on muutettu. Koska Meson on aiemmin tallentanut CPPFLAGS:t ja kielikohtaiset käännösliput (CFLAGS, CXXFLAGS) erikseen, niitä käsitellään nyt erottamattomasti ja CPPFLAGS:issa lueteltuja lippuja käytetään toisena käännösmerkkien lähteenä niitä tukeville kielille;
  • Mukautettu_kohde- ja mukautettu_kohde[i]-tulostetta voidaan nyt käyttää argumentteina linkki_with- ja link_whole-operaatioissa;
  • Generaattorit voivat nyt määrittää lisäriippuvuuksia käyttämällä "riippuu"-vaihtoehtoa (esimerkiksi generator(program_runner, output: ['@)[sähköposti suojattu]'], riippuu: exe));
  • Lisätty staattinen vaihtoehto find_library, jotta haku voi sisältää vain staattisesti linkitetyt kirjastot;
  • Python.find_installationiin on lisätty mahdollisuus määrittää tietyn Python-moduulin olemassaolo tietylle Python-versiolle.
  • Lisätty uusi moduuli unstable-kconfig kconfig-tiedostojen jäsentämiseen;
  • Lisätty uusi komento "subprojects foreach", joka ottaa argumenteilla varustetun komennon ja suorittaa sen kaikissa aliprojektihakemistoissa;

Lähde: opennet.ru

Lisää kommentti