Meson 0.51 kogumissüsteemi versioon

Avaldatud kokkuvõtte süsteemi väljalase Meson 0.51, mida kasutatakse selliste projektide nagu X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK+ ehitamiseks. Mesoni kood on kirjutatud Pythonis ja on saadaval ainekood on litsentsitud Apache 2.0 all.

Mesoni arendamise peamine eesmärk on tagada ehitusprotsessi kõrge kiirus koos kasutusmugavuse ja lihtsusega. Ehitamisel kasutatakse vaikimisi tööriista Ninja, kuid on võimalik kasutada ka muid tagasisidestajaid, nagu xcode ja VisualStudio. Süsteemis on sisse ehitatud mitme platvormi sõltuvuste haldur, mis võimaldab kasutada Mesonit pakettide ehitamiseks distributsioonidele. Ehitamise reeglid määratakse lihtsustatud ainepõhises keeles, mis on hästi loetav ja arusaadav kasutajale (autori mõte on, et arendaja peaks reeglite kirjutamisele minimeerima aega).

Toetatakse ristkompileerimist ja kokkupanekut Linuxis, macOS-is ja Windowsis, kasutades GCC, Clang, Visual Studio ja muid kompilaatoreid. Projekte saab koostada erinevates programmeerimiskeeltes, sealhulgas C, C++, Fortran, Java ja Rust. Toetatakse inkrementaalset kokkupanekurežiimi, kus uuendatakse ainult komponente, mis on otseselt seotud muudatustega, mis on tehtud alates eelmisest kokkupanekust. Mesonit saab kasutada korduvate koostete genereerimiseks, kus erinevates keskkondades koostatud kokkupanekud toodavad täielikult identseid täitefailide.

Peamised uuendused Meson 0.51:

  • Lisatud tugi olemasolevate projektide läbipaistvale kokkupanekule, kus kasutatakse CMake kokkupaneku stsenaariume. Meson suudab nüüd otse koguda lihtsaid alamprojekte (näiteks üksikuid teeke), kasutades CMake moodulit, sarnaselt valikutele, mis esitatakse standardsete alamprojektide kaudu (sealhulgas CMake'i alamprojekte saab asetada katalooge subprojects);
  • Kõikidele rakendatavatele kompilaatoritele on sisse lülitatud eelnevalt testimise võimalus, mis hõlmab lihtsate testfailide koostamist ja täitmist (sanity check), mitte piirdudes kasutaja määratud lippude testimisega ristkompilaatorite jaoks (nüüd testitakse ka praegusele platvormile sobivaid kompilaatoreid).
  • Lisatud on võimalus määrata käsurea valikuid, mida kasutatakse ristkompilaatsiooni puhul, seostades need platvormi eeltesiga enne valikut. Varasemad käsurea valikud hõlmasid ainult koostamist kohaliku platvormi jaoks ja ei saanud olla määratud ristkompilaatsiooniks. Nüüd rakendatakse käsurea valikuid sõltumatult sellest, kas toimub lokaalsete või ristkompilaatsioon, tagades, et kohaliku ja ristkompilaatsiooni tulemused on identsed;
  • Lisatud on võimalus määrata lipp „—cross-file“ käsureal rohkem kui üks kord, et loetleda mitmeid ristfailide;
  • Lisatud tugi ICL (Intel C/C++ Compiler) kompilaatori jaoks Windowsi platvormile (ICL.EXE ja ifort);
  • Lisatud on algne tugi Xtensa CPU tööriistakomplektile (xt-xcc, xt-xc++, xt-nm);
  • Objekti „dependency“ on lisatud meetod „get_variable“, mis võimaldab saada muutuja väärtust, arvestamata praeguse sõltuvuse tüüpi (näiteks, dep.get_variable(pkg-config : ‘var-name’, cmake : ‘COP_VAR_NAME));
  • Uus sihtkoha ehitamise parameeter — „link_language“ on lisatud, et selgelt määrata keelt, mida kasutades lingitakse. Näiteks peamine programm Fortran'is võib kutsuda C/C++ koodi, mis toob automaatselt kaasa C/C++ valiku, kui tegelikult tuleks kasutada Fortran'i linkijat;
  • CPPFLAGS'i makrode töötlemine on muudetud. Kui varem hoidis Meson eraldi CPPFLAGS'i ning keelepõhiseid kompileerimise lippe (CFLAGS, CXXFLAGS), siis nüüd käsitletakse neid koos ja CPPFLAGS'is loetletud lipud rakendatakse täiendavateks kompileerimise lipuks, mida keel toetab;
  • custom_target ja custom_target[i] väljundit saab nüüd kasutada link_with ja link_whole operatsioonide argumentidena;
  • Generaatoreisse on lisatud võimalus määrata täiendavaid sõltuvusi „depends“ valiku abil (näiteks, generator(program_runner, output: [‘@BASENAME@.c’], depends: exe));
  • find_library-funktsiooni juurde on lisatud static valik, mis hõlmab otsingus ainult staatiliselt seotud teeke;
  • python.find_installation-funktsioonile on lisatud võimalus määrata, kas etteantud Python-moodul on teatud Python-versiooni jaoks olemas;
  • uus unstable-kconfig moodul on lisatud kconfig-failide tõlgendamiseks;
  • uus käsk «subprojects foreach» on lisatud, mis võtab käsu koos argumentidega ja käivitab selle kõigis alamprojektide kataloogides;

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster