Meson build systeem release 0.51

publisearre build systeem release Meson 0.51, dat wurdt brûkt om projekten te bouwen lykas X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME en GTK+. De Meson-koade is skreaun yn Python en levere lisinsje ûnder Apache 2.0.

It wichtichste doel fan Meson-ûntwikkeling is om hege snelheid te leverjen fan it assemblageproses kombineare mei gemak en gemak fan gebrûk. Ynstee fan it make-hulpprogramma brûkt de standertbuild de toolkit ninja, mar it is ek mooglik om oare backends te brûken, lykas xcode en VisualStudio. It systeem hat in ynboude multi-platfoarm ôfhinklikens handler wêrmei jo te brûken Meson te bouwen pakketten foar distribúsjes. Gearstallingsregels wurde spesifisearre yn in ferienfâldige domein-spesifike taal, binne tige lêsber en begryplik foar de brûker (lykas bedoeld troch de auteurs, de ûntwikkelder moat in minimum tiid besteegje oan it skriuwen fan regels).

Cross-kompilearjen en bouwen op Linux, macOS en Windows mei GCC, Clang, Visual Studio en oare kompilatoren wurdt stipe. It is mooglik om projekten te bouwen yn ferskate programmeartalen, ynklusyf C, C++, Fortran, Java en Rust. Inkrementele boumodus wurdt stipe, wêrby't allinich komponinten dy't direkt relatearre binne oan feroarings makke sûnt de lêste bou wurde opnij boud. Meson kin brûkt wurde om werhellbere builds te generearjen, wêrby't it útfieren fan de build yn ferskate omjouwings resulteart yn 'e generaasje fan folslein identike útfierbere bestannen.

haad ynnovaasjes Meson 0.51:

  • Stipe tafoege foar transparant bouwen fan besteande projekten dy't CMake build-skripts brûke. Meson kin no direkt ienfâldige subprojekten bouwe (lykas inkele bibleteken) mei de CMake-module, fergelykber mei standert subprojekten (ynklusyf CMake-subprojekten kinne pleatst wurde yn 'e subprojects-map);
  • Foar alle brûkte gearstallers binne foarriedige testen opnommen troch de gearstalling en útfiering fan ienfâldige testbestannen (sanity check), net beheind ta it testen fan brûkersspesifisearre flaggen foar cross-compilers (fan no ôf wurde kompilers lânseigen oan it hjoeddeistige platfoarm ek kontrolearre) .
  • De mooglikheid tafoege om kommandorigelopsjes te definiearjen brûkt tidens cross-kompilaasje, mei bining troch in platfoarmfoarheaksel oan te jaan foar de opsje. Earder befette kommandorigelopsjes allinich native builds en koenen net wurde spesifisearre foar cross-kompilaasje. Opsjes foar kommandorigel jilde no nettsjinsteande of jo native of cross-compiling bouwe, en soargje derfoar dat native en cross-builds identike resultaten produsearje;
  • De mooglikheid tafoege om de flagge "--cross-file" mear as ien kear op 'e kommandorigel oan te jaan om meardere cross-bestannen te listjen;
  • Stipe tafoege foar de ICL-kompiler (Intel C / C ++ Compiler) foar it Windows-platfoarm (ICL.EXE en ifort);
  • Inisjele toolkit-stipe tafoege foar CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • De metoade "get_variable" is tafoege oan it objekt "ôfhinklikens", wêrtroch jo de wearde fan in fariabele kinne krije sûnder rekken te hâlden mei it type fan 'e hjoeddeistige ôfhinklikens (bygelyks dep.get_variable(pkg-config : 'var- namme', cmake: 'COP_VAR_NAME));
  • In nij argumint foar doelassemblageopsjes tafoege, "link_language", om de taal eksplisyt oan te jaan dy't brûkt wurdt by it oproppen fan de linker. Bygelyks, in haadprogramma fan Fortran kin C/C++-koade neame, wat automatysk C/C++ sil selektearje as de Fortran-linker brûkt wurde moat;
  • De ôfhanneling fan CPPFLAGS preprocessor flaggen is feroare. Wylst Meson earder CPPFLAGS en taalspesifike kompilaasjeflaggen (CFLAGS, CXXFLAGS) apart opslein hat, wurde se no ûnskiedber ferwurke en de flaggen neamd yn CPPFLAGS wurde brûkt as in oare boarne fan kompilaasjeflaggen foar talen dy't har stypje;
  • De útfier fan custom_target en custom_target[i] kin no brûkt wurde as arguminten yn de link_with en link_whole operaasjes;
  • Generators hawwe no de mooglikheid om ekstra ôfhinklikens op te jaan mei de opsje "depends" (bygelyks generator(program_runner, útfier: ['@[e-post beskerme]'], hinget ôf fan: exe));
  • In statyske opsje tafoege oan find_library om it sykjen allinich statysk keppele bibleteken op te nimmen;
  • Foar python.find_installation, de mooglikheid om te bepalen de oanwêzigens fan in opjûne Python module foar in spesifike ferzje fan Python is tafoege;
  • Nije module tafoege unstable-kconfig foar it parsearjen fan kconfig-bestannen;
  • In nij kommando tafoege "subprojects foreach", dy't in kommando nimt mei arguminten en rint it yn alle subprojektmappen;

Boarne: opennet.ru

Add a comment