Vrystelling van die Meson 0.51-samestellingstelsel

gepubliseer bou stelselvrystelling Meson 0.51, wat gebruik word om projekte soos X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME en GTK+ te bou. Die Meson-kode is geskryf in Python en verskaf gelisensieer onder Apache 2.0.

Die sleuteldoel van Meson-ontwikkeling is om 'n hoë spoed van die monteerproses te bied, gekombineer met gerief en gemak van gebruik. In plaas van die make-nutsmiddel, gebruik die verstekbou die toolkit ninja, maar dit is ook moontlik om ander backends te gebruik, soos xcode en VisualStudio. Die stelsel het 'n ingeboude multi-platform afhanklikheid hanteerder wat jou toelaat om Meson te gebruik om pakkette vir verspreidings te bou. Samestellingreëls word in 'n vereenvoudigde domeinspesifieke taal gespesifiseer, is hoogs leesbaar en verstaanbaar vir die gebruiker (soos bedoel deur die skrywers, moet die ontwikkelaar 'n minimum tyd spandeer om reëls te skryf).

Kruissamestelling en bou op Linux, macOS en Windows met behulp van GCC, Clang, Visual Studio en ander samestellers word ondersteun. Dit is moontlik om projekte in verskeie programmeertale te bou, insluitend C, C++, Fortran, Java en Rust. Inkrementele boumodus word ondersteun, waarin slegs komponente wat direk verband hou met veranderinge wat sedert die laaste bou gemaak is, herbou word. Meson kan gebruik word om herhaalbare bouwerk te genereer, waarin die uitvoering van die bou in verskillende omgewings lei tot die generering van heeltemal identiese uitvoerbare lêers.

Die belangrikste innovasies Meson 0.51:

  • Bygevoeg ondersteuning vir deursigtige bou van bestaande projekte wat CMake bou skrifte gebruik. Meson kan nou direk eenvoudige subprojekte bou (soos enkelbiblioteke) deur die CMake-module te gebruik, soortgelyk aan standaard subprojekte (insluitend CMake-subprojekte kan in die subprojekte-gids geplaas word);
  • Vir alle gebruikte samestellers word voorlopige toetsing ingesluit deur die samestelling en uitvoering van eenvoudige toetslêers (sanity check), nie beperk tot die toets van gebruiker-gespesifiseerde vlae vir kruis-samestellers nie (van nou af word samestellers wat inheems is aan die huidige platform ook nagegaan) .
  • Die vermoë bygevoeg om opdragreëlopsies wat tydens kruissamestelling gebruik word, te definieer, met binding deur 'n platformvoorvoegsel voor die opsie te spesifiseer. Voorheen het opdragreëlopsies slegs inheemse bouwerk gedek en kon nie vir kruissamestelling gespesifiseer word nie. Opdragreëlopsies is nou van toepassing ongeag of jy oorspronklik bou of kruis-samestelling, om te verseker dat inheemse en kruisboue identiese resultate lewer;
  • Die vermoë bygevoeg om die “--kruis-lêer”-vlag meer as een keer op die opdragreël te spesifiseer om verskeie kruislêers te lys;
  • Bygevoeg ondersteuning vir die ICL samesteller (Intel C/C++ Compiler) vir die Windows platform (ICL.EXE en ifort);
  • Bygevoeg aanvanklike toolkit ondersteuning vir CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Die “get_variable”-metode is by die “dependency”-objek gevoeg, wat jou toelaat om die waarde van 'n veranderlike te kry sonder om die tipe huidige afhanklikheid in ag te neem (byvoorbeeld, dep.get_variable(pkg-config : 'var- naam', cmake : 'COP_VAR_NAME));
  • Het 'n nuwe argument vir teikensamestellingsopsies, "link_language", bygevoeg om die taal wat gebruik word wanneer die skakelaar geroep word, eksplisiet te spesifiseer. Byvoorbeeld, 'n hoof Fortran-program kan C/C++-kode oproep, wat outomaties C/C++ sal kies wanneer die Fortran-skakelaar gebruik moet word;
  • Die hantering van CPPFLAGS-voorverwerkervlae is verander. Terwyl Meson voorheen CPPFLAGS en taalspesifieke samestellingsvlae (CFLAGS, CXXFLAGS) afsonderlik gestoor het, word hulle nou onafskeidbaar verwerk en die vlae wat in CPPFLAGS gelys word, word gebruik as 'n ander bron van samestellingsvlae vir tale wat hulle ondersteun;
  • Die uitset van custom_target en custom_target[i] kan nou as argumente in die skakel_met en skakel_geheel bewerkings gebruik word;
  • Kragopwekkers het nou die vermoë om bykomende afhanklikhede te spesifiseer deur die "hang af" opsie te gebruik (byvoorbeeld, generator(program_runner, uitvoer: ['@[e-pos beskerm]'], hang af: exe));
  • Het 'n statiese opsie by find_library bygevoeg om die soektog toe te laat om slegs staties gekoppelde biblioteke in te sluit;
  • Vir python.find_installation is die vermoë om die teenwoordigheid van 'n gegewe Python-module vir 'n spesifieke weergawe van Python te bepaal, bygevoeg;
  • Bygevoeg nuwe module unstable-kconfig vir die ontleding van kconfig-lêers;
  • Bygevoeg 'n nuwe opdrag "subprojects foreach", wat 'n opdrag met argumente neem en dit in alle subprojek-gidse laat loop;

Bron: opennet.ru

Voeg 'n opmerking