Mesoni ehitussüsteemi väljalase 0.51

avaldatud luua süsteemi väljalase Meson 0.51, mida kasutatakse selliste projektide ehitamiseks nagu X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK+. Mesoni kood on kirjutatud Pythonis ja varustatud litsentsitud Apache 2.0 alusel.

Mesoni arenduse põhieesmärk on pakkuda kiiret montaažiprotsessi koos mugavuse ja kasutuslihtsusega. Make-utiliidi asemel kasutab vaikejärg tööriistakomplekti Ninja, kuid on võimalik kasutada ka muid taustaprogramme, nagu xcode ja VisualStudio. Süsteemil on sisseehitatud mitme platvormi sõltuvuse töötleja, mis võimaldab kasutada Mesonit distributsioonide pakettide koostamiseks. Koostereeglid on määratletud lihtsustatud domeenispetsiifilises keeles, on hästi loetavad ja kasutajale arusaadavad (nagu autorid on ette näinud, peaks arendaja kulutama reeglite kirjutamisele minimaalselt aega).

Toetatakse Linuxi, macOS-i ja Windowsi ristkompileerimist ja ehitamist GCC, Clangi, Visual Studio ja muude kompilaatorite abil. Võimalik on ehitada projekte erinevates programmeerimiskeeltes, sealhulgas C, C++, Fortran, Java ja Rust. Toetatud on järkjärguline ehitusrežiim, milles ehitatakse ümber ainult need komponendid, mis on otseselt seotud pärast viimast ehitamist tehtud muudatustega. Mesonit saab kasutada korratavate ehituste genereerimiseks, mille puhul ehitamist erinevates keskkondades käivitades genereeritakse täiesti identsed käivitatavad failid.

Kõik uuendused Meson 0.51:

  • Lisatud on tugi CMake'i ehitusskripte kasutavate olemasolevate projektide läbipaistvaks ehitamiseks. Meson saab nüüd mooduli CMake abil otse ehitada lihtsaid alamprojekte (näiteks üksikuid teeke), sarnaselt tavaliste alamprojektidega (sh CMake'i alamprojekte saab paigutada alamprojektide kataloogi);
  • Kõikide kasutatud kompilaatorite puhul on eeltestimine kaasatud lihtsate testfailide kokkupanemise ja käivitamise kaudu (mõistuse kontroll), mitte ainult ristkompilaatorite kasutaja määratud lippude testimisega (edaspidi kontrollitakse ka praegusele platvormile omaseid kompilaatoreid). .
  • Lisati võimalus defineerida ristkompileerimisel kasutatavaid käsurea valikuid koos sidumisega, määrates enne suvandit platvormi eesliide. Varem hõlmasid käsurea valikud ainult platvormi algversioone ja neid ei saanud ristkompileerimiseks määrata. Käsurea valikud kehtivad nüüd olenemata sellest, kas loote algselt või ristkompileerimisel, tagades, et alg- ja ristkoostised annavad identsed tulemused;
  • Lisatud on võimalus määrata käsureal lipp "--cross-file" rohkem kui üks kord, et loetleda mitu ristfaili;
  • Lisatud tugi ICL-kompilaatorile (Intel C/C++ Compiler) Windowsi platvormile (ICL.EXE ja ifort);
  • Lisatud esialgne tööriistakomplekti tugi CPU Xtensa jaoks (xt-xcc, xt-xc++, xt-nm);
  • Objektile "dependency" on lisatud meetod "get_variable", mis võimaldab saada muutuja väärtuse, võtmata arvesse praeguse sõltuvuse tüüpi (näiteks dep.get_variable(pkg-config : 'var- nimi', cmake : 'COP_VAR_NAME));
  • Lisati uus sihtkoostu valikute argument "link_language", et täpsustada linkeri kutsumisel kasutatavat keelt. Näiteks võiks Fortrani põhiprogramm kutsuda C/C++ koodi, mis valiks automaatselt C/C++, kui Fortrani linkerit tuleks kasutada;
  • CPPFLAGS-i eelprotsessori lippude käsitlemist on muudetud. Kui varem salvestas Meson CPPFLAGS-i ja keelepõhiseid kompileerimislippe (CFLAGS, CXXFLAGS) eraldi, siis nüüd töödeldakse neid lahutamatult ja CPPFLAGS-is loetletud lippe kasutatakse teise neid toetavate keelte kompileerimislippude allikana;
  • Kohandatud_sihtmärk ja kohandatud_sihtmärk[i] väljundit saab nüüd kasutada argumentidena operatsioonides link_with ja link_whole;
  • Generaatoritel on nüüd võimalus määrata täiendavaid sõltuvusi kasutades suvandit "depends" (näiteks generator(program_runner, output: [‘@[meiliga kaitstud]'], oleneb: exe));
  • Lisatud staatiline valik find_library, et lubada otsingusse kaasata ainult staatiliselt lingitud teeke;
  • Python.find_installation jaoks on lisatud võimalus määrata Pythoni konkreetse versiooni jaoks antud Pythoni mooduli olemasolu;
  • Lisatud uus moodul unstable-kconfig kconfig-failide sõelumiseks;
  • Lisatud uus käsk “subprojects foreach”, mis võtab argumentidega käsu ja käivitab selle kõigis alamprojektide kataloogides;

Allikas: opennet.ru

Lisa kommentaar