Meson-konstrua sistemo eldono 0.51

eldonita konstrui sisteman liberigon Mesono 0.51, kiu estas uzata por konstrui projektojn kiel X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME kaj GTK+. La Meson-kodo estas skribita en Python kaj provizis licencita sub Apache 2.0.

La ŝlosila celo de Meson-evoluo estas provizi altan rapidecon de la kunigprocezo kombinita kun oportuno kaj facileco de uzo. Anstataŭ la make-utilo, la defaŭlta konstruo uzas la ilaron ninja, sed ankaŭ eblas uzi aliajn backends, kiel xcode kaj VisualStudio. La sistemo havas enkonstruitan plurplatforman dependectraktilon, kiu permesas vin uzi Meson por konstrui pakaĵojn por distribuoj. Asembleaj reguloj estas specifitaj en simpligita domajna-specifa lingvo, estas tre legeblaj kaj kompreneblaj por la uzanto (kiel celite de la aŭtoroj, la programisto devus pasigi minimumon da tempo skribante regulojn).

Transkompilado kaj konstruado sur Linukso, macOS kaj Vindozo uzante GCC, Clang, Visual Studio kaj aliajn kompililojn estas subtenataj. Eblas konstrui projektojn en diversaj programlingvoj, inkluzive de C, C++, Fortran, Java kaj Rust. Pliiga konstrureĝimo estas subtenata, en kiu nur komponentoj rekte rilataj al ŝanĝoj faritaj ekde la lasta konstruo estas rekonstruitaj. Meson povas esti uzata por generi ripeteblajn konstruojn, en kiuj ruli la konstruon en malsamaj medioj rezultigas la generacion de tute identaj ruleblaj dosieroj.

Ĉefa novigoj Mezono 0.51:

  • Aldonita subteno por travidebla konstruado de ekzistantaj projektoj, kiuj uzas CMake-konstruajn skriptojn. Meson nun povas rekte konstrui simplajn subprojektojn (kiel ekzemple ununuraj bibliotekoj) uzante la CMake-modulon, simile al normaj subprojektoj (inkluzive de CMake-subprojektoj povas esti metitaj en la subprojekta dosierujo);
  • Por ĉiuj uzitaj kompililoj, prepara testado estas inkluzivita per la kunigo kaj ekzekuto de simplaj testdosieroj (prudenta kontrolo), ne limigita al testado de uzant-specifitaj flagoj por kruc-kompililoj (de nun, kompililoj indiĝenaj al la nuna platformo ankaŭ estas kontrolitaj) .
  • Aldonis la kapablon difini komandliniajn opciojn uzatajn dum kruc-kompilo, kun ligado per specifo de platformprefikso antaŭ la opcio. Antaŭe, komandliniaj opcioj nur kovris indiĝenajn konstruojn kaj ne povus esti specifitaj por kruc-kompilo. Komandliniaj opcioj nun validas sendepende de ĉu vi konstruas denaske aŭ transkompilas, certigante ke denaskaj kaj kruckonstruaĵoj produktas identajn rezultojn;
  • Aldonita la eblo specifi la flagon "--cross-file" pli ol unufoje sur la komandlinio por listigi plurajn krucdosierojn;
  • Aldonita subteno por la ICL-kompililo (Intel C/C++ Compiler) por la Vindoza platformo (ICL.EXE kaj ifort);
  • Aldonita komenca ilaro subteno por Xtensa CPUs (xt-xcc, xt-xc++, xt-nm);
  • La metodo "get_variable" estis aldonita al la objekto "dependeco", kiu ebligas al vi ricevi la valoron de variablo sen konsideri la tipon de la nuna dependeco (ekzemple, dep.get_variable(pkg-config : 'var-). nomo', cmake : 'COP_VAR_NAME));
  • Aldonita nova argumento pri cel-asembla opcio, "link_language", por eksplicite specifi la lingvon uzatan kiam oni vokas la ligilon. Ekzemple, ĉefa Fortran-programo povus voki C/C++-kodon, kiu aŭtomate elektus C/C++ kiam la Fortran-ligilo devus esti uzita;
  • La uzado de CPPFLAGS antaŭprocesorflagoj estis ŝanĝita. Dum Meson antaŭe stokis CPPFLAGS kaj lingvospecifajn kompilajn flagojn (CFLAGS, CXXFLAGS) aparte, ili nun estas prilaboritaj nedisigeble kaj la flagoj listigitaj en CPPFLAGS estas uzataj kiel alia fonto de kompilflagoj por lingvoj kiuj subtenas ilin;
  • La eligo de custom_target kaj custom_target[i] nun povas esti uzata kiel argumentoj en la operacioj link_with kaj link_whole;
  • Generatoroj nun havas la kapablon specifi pliajn dependecojn uzante la opcion "depends" (ekzemple, generator(program_runner, output: ['@[retpoŝte protektita]'], dependas: exe));
  • Aldonita statika opcio al find_library por permesi al la serĉo inkluzivi nur statike ligitajn bibliotekojn;
  • Por python.find_installation, la kapablo determini la ĉeeston de donita Python-modulo por specifa versio de Python estis aldonita;
  • Aldonita nova modulo unstable-kconfig por analizi kconfig dosierojn;
  • Aldonita nova komando "subprojektoj por ĉiu", kiu prenas komandon kun argumentoj kaj rulas ĝin en ĉiuj subprojektaj dosierujoj;

fonto: opennet.ru

Aldoni komenton