Izdaja sistema za gradnjo Meson 0.51

Objavljeno izdelava izdaje sistema Mezon 0.51, ki se uporablja za izdelavo projektov, kot so X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME in GTK+. Koda Meson je napisana v Pythonu in priloženo licenciran pod Apache 2.0.

Ključni cilj razvoja Meson je zagotoviti visoko hitrost procesa montaže v kombinaciji s priročnostjo in enostavnostjo uporabe. Namesto pripomočka make privzeta zgradba uporablja komplet orodij ninja, vendar je mogoče uporabiti tudi druga ozadja, kot sta xcode in VisualStudio. Sistem ima vgrajen upravljalnik odvisnosti za več platform, ki vam omogoča uporabo Mesona za izdelavo paketov za distribucije. Pravila sestavljanja so določena v poenostavljenem domensko specifičnem jeziku, so zelo berljiva in razumljiva uporabniku (kot so predvideli avtorji, mora razvijalec porabiti najmanj časa za pisanje pravil).

Podprto je navzkrižno prevajanje in gradnja v sistemih Linux, macOS in Windows z uporabo GCC, Clang, Visual Studio in drugih prevajalnikov. Projekte je mogoče graditi v različnih programskih jezikih, vključno s C, C++, Fortran, Javo in Rust. Podprt je inkrementalni način gradnje, v katerem se znova zgradijo samo komponente, ki so neposredno povezane s spremembami, izvedenimi od zadnje gradnje. Meson se lahko uporablja za generiranje ponovljivih gradenj, pri katerih izvajanje gradnje v različnih okoljih povzroči generiranje popolnoma enakih izvedljivih datotek.

Glavni inovacije Mezon 0.51:

  • Dodana podpora za pregledno gradnjo obstoječih projektov, ki uporabljajo skripte za gradnjo CMake. Meson lahko zdaj neposredno gradi preproste podprojekte (kot so posamezne knjižnice) z uporabo modula CMake, podobno kot standardni podprojekti (vključno s podprojekti CMake je mogoče postaviti v imenik podprojektov);
  • Za vse uporabljene prevajalnike je vključeno predhodno testiranje prek sestavljanja in izvajanja preprostih testnih datotek (preverjanje razumnosti), ki ni omejeno na testiranje uporabniško določenih zastavic za navzkrižne prevajalnike (odslej se preverjajo tudi prevajalniki, ki so izvirni iz trenutne platforme) .
  • Dodana možnost definiranja možnosti ukazne vrstice, ki se uporabljajo med navzkrižnim prevajanjem, z vezavo z navedbo predpone platforme pred možnostjo. Prej so možnosti ukazne vrstice zajemale samo gradnje izvorne platforme in jih ni bilo mogoče določiti za navzkrižno prevajanje. Možnosti ukazne vrstice zdaj veljajo ne glede na to, ali gradite izvorno ali navzkrižno prevajate, kar zagotavlja, da izvirna in navzkrižna gradnja dajeta enake rezultate;
  • Dodana možnost, da zastavico »--cross-file« določite več kot enkrat v ukazni vrstici za seznam več navzkrižnih datotek;
  • Dodana podpora za prevajalnik ICL (Intel C/C++ Compiler) za platformo Windows (ICL.EXE in ifort);
  • Dodana začetna podpora za komplet orodij za CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Objektu »dependency« je bila dodana metoda »get_variable«, ki omogoča pridobitev vrednosti spremenljivke brez upoštevanja vrste trenutne odvisnosti (na primer dep.get_variable(pkg-config : 'var- ime', cmake : 'COP_VAR_NAME));
  • Dodan je nov argument možnosti ciljnega sestava, »link_language«, da izrecno podate jezik, uporabljen pri klicu povezovalca. Na primer, glavni program Fortran bi lahko poklical kodo C/C++, ki bi samodejno izbrala C/C++, ko bi bilo treba uporabiti povezovalnik Fortran;
  • Obravnava zastavic predprocesorja CPPFLAGS je bila spremenjena. Medtem ko je Meson prej ločeno shranjeval CPPFLAGS in zastavice prevajanja, specifične za jezik (CFLAGS, CXXFLAGS), se zdaj obdelujejo neločljivo in zastavice, navedene v CPPFLAGS, se uporabljajo kot drug vir zastavic prevajanja za jezike, ki jih podpirajo;
  • Izhod custom_target in custom_target[i] je zdaj mogoče uporabiti kot argumente v operacijah link_with in link_whole;
  • Generatorji imajo zdaj možnost določiti dodatne odvisnosti z možnostjo »odvisno« (na primer generator(program_runner, output: [‘@)[e-pošta zaščitena]'], odvisno: exe));
  • Dodana statična možnost za find_library, ki omogoča iskanje, da vključuje samo statično povezane knjižnice;
  • Za python.find_installation je bila dodana možnost ugotavljanja prisotnosti danega modula Python za določeno različico Pythona;
  • Dodan nov modul unstable-kconfig za razčlenjevanje datotek kconfig;
  • Dodan nov ukaz “subprojects foreach”, ki prevzame ukaz z argumenti in ga zažene v vseh imenikih podprojektov;

Vir: opennet.ru

Dodaj komentar