Meson build system -julkaisu 0.52

julkaistu rakentaa järjestelmän julkaisu Meson 0.52, 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).

Tuettu ristiin kääntää ja rakentaa Linuxille, Illumos/Solarisille, FreeBSD:lle, NetBSD:lle, DragonFly BSD:lle, Haikulle, macOS:lle ja Windowsille käyttämällä GCC:tä, Clangia, Visual Studiota ja muita kääntäjiä. On mahdollista rakentaa projekteja useilla 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.52:

  • Lisätty kokeellinen tuki Webassemblylle käyttämällä Emscripteniä kääntäjänä;
  • Illumos- ja Solaris-alustojen tukea on parannettu merkittävästi ja saatettu toimintakuntoon;
  • Varmistaa, että gettext-pohjaiset kansainvälistymisskriptit ohitetaan, jos järjestelmään ei ole asennettu gettext-työkalupakettia (aiemmin i18n-moduulia käytettäessä järjestelmissä, joissa ei ole gettextiä, näytettiin virhe);
  • Parannettu tuki staattisille kirjastoille. Monet ongelmat, jotka liittyvät poistamattomien staattisten kirjastojen käyttöön, on ratkaistu;
  • Lisätty mahdollisuus käyttää sanakirjoja ympäristömuuttujien määrittämiseen. Kutsuttaessa Environment() ensimmäinen elementti voidaan nyt määrittää sanakirjaksi, jossa ympäristömuuttujat määritellään avain/arvo-muodossa. Nämä muuttujat siirretään ympäristö_objektiin ikään kuin ne olisi asetettu erikseen set()-metodilla. Sanakirjoja voidaan nyt myös siirtää erilaisille funktioille, jotka tukevat "env"-argumenttia;
  • Lisätty funktio "runtarget alias_target(kohteen_nimi, dep1, ...)", joka luo uuden ensimmäisen tason koontikohteen, joka voidaan kutsua valitulla koontiversiolla (esim. "ninja-kohteen_nimi"). Tämä koontikohde ei suorita mitään komentoja, mutta varmistaa, että kaikki riippuvuudet on rakennettu;
  • PKG_CONFIG_SYSROOT_DIR-ympäristömuuttujan automaattinen asetus käytössä ristikääntämisen aikana, jos [properties]-osiossa on sys_root-asetus.
  • Lisätty "--gdb-path" -vaihtoehto määrittääksesi polun GDB-debuggeriin määritettäessä "--gdb testname" -vaihtoehtoa GDB:n suorittamiseksi määritetyn testikomentosarjan kanssa.
  • Lisätty kilisevän koontikohteen automaattinen tunnistus tämän linterin suorittamiseksi kaikkien lähdetiedostojen kanssa. Kohde luodaan, jos clang-tidy on saatavilla järjestelmässä ja ".clang-tidy" (tai "_clang-tidy") -tiedosto on määritetty projektin juuressa;
  • Lisätty riippuvuus ('lohkot') käytettäväksi Clang-laajennuksessa Blocks;
  • Linkkeri- ja kääntäjänäkymät on erotettu toisistaan, mikä mahdollistaa erilaisten kääntäjien ja linkkien yhdistelmien käytön;
  • Lisätty all_dependencies()-metodi SourceSet-objekteihin all_sources()-metodin lisäksi;
  • Kohteeseen run_project_tests.py on lisätty "--only" -vaihtoehto testaamaan valikoivasti testejä (esimerkiksi "python run_project_tests.py —only fortran python3");
  • Find_program()-funktiolla on nyt mahdollisuus etsiä vain vaadittuja versioita ohjelmasta (versio määritetään ajamalla ohjelma "-versio"-vaihtoehdolla);
  • Symbolien viennin ohjaamiseksi vs_module_defs-vaihtoehto on lisätty share_module()-funktioon, kuten share_library();
  • kconfig-moduulia on laajennettu tukemaan configure_file() syötetiedoston määrittämistä varten;
  • Lisätty mahdollisuus määrittää useita syöttötiedostoja "komento:"-käsittelijöille configure_file();
  • "dist"-komento arkiston luomiseksi on siirretty ensimmäisen tason komentojen luokkaan (aiemmin komento oli sidottu ninjaan). Lisätty "--formats" -vaihtoehto luotavien arkistojen tyypit (esim.
    "meson dist -formats=xztar,zip").

Lähde: opennet.ru

Lisää kommentti