Meson bygge systemutgivelse 0.51

publisert bygge systemutgivelse Meson 0.51, som brukes til å bygge prosjekter som X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME og GTK+. Meson-koden er skrevet i Python og medfølgende lisensiert under Apache 2.0.

Hovedmålet med Meson-utvikling er å gi høy hastighet i monteringsprosessen kombinert med bekvemmelighet og brukervennlighet. I stedet for make-verktøyet, bruker standard build verktøysettet Ninja, men det er også mulig å bruke andre backends, som xcode og VisualStudio. Systemet har en innebygd multi-plattform avhengighetsbehandler som lar deg bruke Meson til å bygge pakker for distribusjoner. Monteringsreglene er spesifisert på et forenklet domenespesifikt språk, er svært lesbare og forståelige for brukeren (som ment av forfatterne, bør utvikleren bruke minimum tid på å skrive regler).

Krysskompilering og bygging på Linux, macOS og Windows ved hjelp av GCC, Clang, Visual Studio og andre kompilatorer støttes. Det er mulig å bygge prosjekter i ulike programmeringsspråk, inkludert C, C++, Fortran, Java og Rust. Inkrementell byggemodus støttes, der bare komponenter som er direkte relatert til endringer som er gjort siden siste bygg, gjenoppbygges. Meson kan brukes til å generere repeterbare bygg, der kjøring av bygget i forskjellige miljøer resulterer i generering av helt identiske kjørbare filer.

Den viktigste innovasjoner Meson 0.51:

  • Lagt til støtte for transparent bygging av eksisterende prosjekter som bruker CMake build-skript. Meson kan nå bygge enkle delprosjekter (som enkeltbiblioteker) direkte ved å bruke CMake-modulen, lik standard delprosjekter (inkludert CMake-delprosjekter kan plasseres i underprosjektkatalogen);
  • For alle brukte kompilatorer er foreløpig testing inkludert gjennom montering og utførelse av enkle testfiler (sanity check), ikke begrenset til å teste brukerspesifiserte flagg for krysskompilatorer (fra nå av sjekkes også kompilatorer som er native til den nåværende plattformen) .
  • Lagt til muligheten til å definere kommandolinjealternativer som brukes under krysskompilering, med binding ved å spesifisere et plattformprefiks før alternativet. Tidligere dekket kommandolinjealternativer bare native builds og kunne ikke spesifiseres for krysskompilering. Kommandolinjealternativer gjelder nå uavhengig av om du bygger native eller krysskompilere, og sikrer at native og cross-builds gir identiske resultater;
  • Lagt til muligheten til å spesifisere "--cross-file"-flagget mer enn én gang på kommandolinjen for å liste flere kryssfiler;
  • Lagt til støtte for ICL-kompilatoren (Intel C/C++ Compiler) for Windows-plattformen (ICL.EXE og ifort);
  • Lagt til støtte for første verktøysett for CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • “get_variable”-metoden er lagt til “dependency”-objektet, som lar deg få verdien av en variabel uten å ta hensyn til typen av gjeldende avhengighet (for eksempel dep.get_variable(pkg-config : 'var- navn', cmake : 'COP_VAR_NAME));
  • Lagt til et nytt argument for målsammenstillingsalternativer, "link_language", for å eksplisitt spesifisere språket som brukes når linkeren kalles. For eksempel kan et hovedprogram for Fortran kalle C/C++-kode, som automatisk velger C/C++ når Fortran-linkeren skal brukes;
  • Håndteringen av CPPFLAGS forprosessorflagg er endret. Mens Meson tidligere har lagret CPPFLAGS og språkspesifikke kompileringsflagg (CFLAGS, CXXFLAGS) separat, behandles de nå uatskillelig og flaggene oppført i CPPFLAGS brukes som en annen kilde til kompileringsflagg for språk som støtter dem;
  • Utdataene fra custom_target og custom_target[i] kan nå brukes som argumenter i link_with og link_whole-operasjonene;
  • Generatorer har nå muligheten til å spesifisere ytterligere avhengigheter ved å bruke "depends"-alternativet (for eksempel generator(program_runner, output: [‘@[e-postbeskyttet]'], avhenger av: exe));
  • Lagt til et statisk alternativ til find_library for å la søket kun inkludere statisk koblede biblioteker;
  • For python.find_installation er muligheten til å bestemme tilstedeværelsen av en gitt Python-modul for en spesifikk versjon av Python lagt til;
  • Lagt til ny modul unstable-kconfig for å analysere kconfig-filer;
  • Lagt til en ny kommando "subprojects foreach", som tar en kommando med argumenter og kjører den i alle underprosjektkataloger;

Kilde: opennet.ru

Legg til en kommentar