Meson build system version 0.51

pibliye bati lage sistèm lan Meson 0.51, ki itilize pou konstwi pwojè tankou X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ak GTK+. Meson kòd la ekri nan Python ak apwovizyone ki gen lisans anba Apache 2.0.

Objektif kle nan devlopman Meson se bay gwo vitès nan pwosesis asanble a konbine avèk konvenyans ak fasilite nan itilize. Olye pou yo fè sèvis piblik la, konstriksyon default la sèvi ak bwat zouti a Ninja, men li posib tou pou itilize lòt backends, tankou xcode ak VisualStudio. Sistèm nan gen yon gestionnaire depandans milti-platfòm entegre ki pèmèt ou sèvi ak Meson pou konstwi pakè pou distribisyon. Règ asanble yo espesifye nan yon lang senplifye espesifik nan domèn, yo trè lizib ak konprann itilizatè a (jan otè yo gen entansyon, pwomotè a ta dwe pase yon minimòm de tan ekri règ).

Konpile kwa ak bati sou Linux, macOS ak Windows lè l sèvi avèk GCC, Clang, Visual Studio ak lòt konpilateur yo sipòte. Li posib pou konstwi pwojè nan divès langaj pwogramasyon, tankou C, C++, Fortran, Java ak Rust. Mòd konstriksyon enkreman sipòte, kote sèlman konpozan ki gen rapò dirèkteman ak chanjman ki fèt depi dènye bati a yo rebati. Meson ka itilize pou jenere batiman repete, nan ki kouri bati a nan diferan anviwònman rezilta nan jenerasyon an nan dosye ègzèkutabl konplètman idantik.

Prensipal la inovasyon Meson 0.51:

  • Te ajoute sipò pou konstriksyon transparan nan pwojè ki deja egziste ki sèvi ak script build CMake. Meson kapab kounye a bati dirèkteman sou-pwojè senp (tankou bibliyotèk sèl) lè l sèvi avèk modil la CMake, menm jan ak sou-pwojè estanda (ki gen ladan sou-pwojè CMake yo ka mete nan anyè a sou-pwojè);
  • Pou tout konpilatè yo itilize, tès preliminè enkli nan asanble a ak ekzekisyon dosye tès senp (chèk sanite), pa limite a tès drapo itilizatè yo espesifye pou kwa-konpilateur (apati kounye a, konpilateur natif natal nan platfòm aktyèl la yo tcheke tou) .
  • Te ajoute kapasite nan defini opsyon liy kòmand yo itilize pandan kwa-konpilasyon, ak obligatwa lè yo espesifye yon prefiks platfòm anvan opsyon an. Anvan sa, opsyon liy kòmand yo te kouvri sèlman bati natif natal epi yo pa t 'kapab espesifye pou kwa-konpilasyon. Opsyon liy kòmand yo aplike kounye a kèlkeswa si w ap bati natif natal oswa kwa-konpile, asire ke natif natal ak kwa-bati pwodui rezilta ki idantik;
  • Te ajoute kapasite pou presize "--cross-file" drapo a plis pase yon fwa sou liy lòd la pou lis plizyè kwa-fichye;
  • Te ajoute sipò pou du ICL (Intel C/C++ Compiler) pou platfòm Windows (ICL.EXE ak ifort);
  • Te ajoute sipò inisyal zouti pou CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Yo te ajoute metòd "get_variable" nan objè "dependency" la, ki pèmèt ou jwenn valè yon varyab san yo pa pran an konsiderasyon kalite depandans aktyèl la (pa egzanp, dep.get_variable(pkg-config : 'var-). non', cmake : 'COP_VAR_NAME));
  • Te ajoute yon nouvo agiman opsyon asanble sib, "link_language", pou presize klèman lang yo itilize lè w ap rele linker la. Pa egzanp, yon pwogram prensipal Fortran ta ka rele kòd C/C++, ki ta otomatikman chwazi C/C++ lè yo ta dwe itilize Fortran linker la;
  • Manyen drapo preprosesè CPPFLAGS yo te chanje. Lè nou konsidere ke Meson te deja estoke CPPFLAGS ak drapo konpilasyon espesifik lang (CFLAGS, CXXFLAGS) separeman, kounye a yo trete yo inséparabl epi drapo yo ki nan lis CPPFLAGS yo itilize kòm yon lòt sous drapo konpilasyon pou lang ki sipòte yo;
  • Pwodiksyon custom_target ak custom_target[i] kapab kounye a itilize kòm agiman nan operasyon yo link_with ak link_whole;
  • Jeneratè kounye a gen kapasite pou presize depandans adisyonèl lè l sèvi avèk opsyon "depann" (pa egzanp, generator(program_runner, output: ['@)[imèl pwoteje]'], depann de: exe));
  • Te ajoute yon opsyon estatik nan find_library pou pèmèt rechèch la gen ladan sèlman bibliyotèk ki lye estatik;
  • Pou python.find_installation, yo te ajoute kapasite pou detèmine prezans yon modil Python bay pou yon vèsyon espesifik Python;
  • Te ajoute nouvo modil unstable-kconfig pou analize kconfig fichye yo;
  • Te ajoute yon nouvo lòd "subprojects foreach", ki pran yon kòmandman ak agiman epi kouri li nan tout anyè subproject;

Sous: opennet.ru

Add nouvo kòmantè