Meson build system version 0.52

pibliye bati lage sistèm lan Meson 0.52, 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).

Sipòte kwa-konpile epi bati sou Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ak Windows lè l sèvi avèk GCC, Clang, Visual Studio ak lòt konpilateur. 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.52:

  • Te ajoute sipò eksperimantal pou Webassembly lè l sèvi avèk Emscripten kòm yon du;
  • Sipò pou platfòm Illumos ak Solaris yo te amelyore anpil e li te pote nan kondisyon travay;
  • Asire ke scripts entènasyonalizasyon ki baze sou gettext yo inyore si sistèm nan pa gen bwat zouti gettext enstale (anvan, yo te parèt yon erè lè w ap itilize modil i18n nan sou sistèm san gettext);
  • Amelyore sipò pou bibliyotèk estatik. Anpil pwoblèm lè w ap itilize bibliyotèk estatik dezenstale yo te rezoud;
  • Te ajoute kapasite pou itilize diksyonè yo bay varyab anviwònman an. Lè w ap rele anviwònman (), yo kapab kounye a espesifye premye eleman an kòm yon diksyonè kote varyab anviwònman yo defini nan fòm kle/valè. Varyab sa yo pral transfere nan environment_object kòm si yo te mete endividyèlman atravè metòd la set(). Diksyonè yo kapab tou pase kounye a nan divès fonksyon ki sipòte yon agiman "env";
  • Te ajoute fonksyon "runtarget alias_target(target_name, dep1, ...)" ki kreye yon nouvo sib premye nivo ki ka rele ak backend bati chwazi a (egzanp "ninja target_name"). Sib bati sa a pa kouri okenn kòmandman, men asire ke tout depandans yo bati;
  • Pèmèt anviwònman otomatik PKG_CONFIG_SYSROOT_DIR varyab anviwònman an pandan kwa-konpilasyon si gen yon anviwònman sys_root nan seksyon "[pwopriyete]" la;
  • Te ajoute opsyon "--gdb-path" pou detèmine chemen an nan debugger GDB lè yo presize opsyon "--gdb testname" pou kouri GDB ak script tès espesifye a;
  • Te ajoute deteksyon otomatik nan sib la bati clang-tidy pou kouri linter sa a ak tout dosye sous. Objektif la kreye si clang-tidy disponib nan sistèm nan epi yo defini fichye ".clang-tidy" (oswa "_clang-tidy") nan rasin pwojè a;
  • Te ajoute depandans ('blòk') pou itilize nan ekstansyon Clang la Blòk;
  • View linker ak konpilatè yo separe, sa ki pèmèt diferan konbinezon konpilateur ak linkers yo dwe itilize;
  • Te ajoute metòd all_dependencies() nan objè SourceSet anplis metòd all_sources();
  • Nan run_project_tests.py, yo te ajoute opsyon "--only" pou fè tès oaza (pa egzanp, "python run_project_tests.py —only fortran python3");
  • Fonksyon find_program() kounye a gen kapasite pou chèche sèlman vèsyon obligatwa yon pwogram (vèsyon an detèmine pa kouri pwogram nan ak opsyon "-version");
  • Pou kontwole ekspòtasyon senbòl yo, opsyon vs_module_defs yo te ajoute nan fonksyon shared_module(), menm jan ak shared_library();
  • Modil kconfig la te elaji pou sipòte configure_file() pou espesifye yon fichye antre;
  • Te ajoute abilite pou presize plizyè fichye D 'pou "kòmand:" moun kap okipe yo configure_file();
  • Kòmandman "dist" pou kreye yon achiv yo te deplase nan kategori kòmandman premye nivo (anvan kòmandman an te mare nan Ninja). Te ajoute opsyon "--formats" pou defini kalite achiv yo dwe kreye (pa egzanp,
    "meson dist -formats=xztar,zip").

Sous: opennet.ru

Add nouvo kòmantè