Itusilẹ eto eto Meson 1.3

Meson 1.3.0 kọ eto ti tu silẹ, eyiti o lo lati kọ awọn iṣẹ akanṣe bii X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ati GTK. Koodu Meson ti kọ ni Python ati pe o ni iwe-aṣẹ labẹ iwe-aṣẹ Apache 2.0.

Ibi-afẹde bọtini ti idagbasoke Meson ni lati pese iyara giga ti ilana apejọ ni idapo pẹlu irọrun ati irọrun lilo. Dipo ohun elo ṣiṣe, ohun elo irinṣẹ Ninja jẹ lilo nipasẹ aiyipada nigbati o ba kọ, ṣugbọn awọn ẹhin ẹhin miiran bii xcode ati VisualStudio tun le ṣee lo. Eto naa ni olutọju igbẹkẹle-pupọ ti a ṣe sinu rẹ ti o fun ọ laaye lati lo Meson lati kọ awọn idii fun awọn pinpin. Awọn ofin Apejọ ni pato ni ede ti o rọrun-pato-ašẹ, jẹ kika gaan ati oye si olumulo (gẹgẹbi a ti pinnu nipasẹ awọn onkọwe, olupilẹṣẹ yẹ ki o lo akoko ti o kere ju awọn ofin kikọ).

Ṣe atilẹyin akojọpọ agbelebu ati ile lori Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ati Windows nipa lilo GCC, Clang, Studio Visual ati awọn alakojọ miiran. O ṣee ṣe lati kọ awọn iṣẹ akanṣe ni ọpọlọpọ awọn ede siseto, pẹlu C, C ++, Fortran, Java ati Rust. Ipo kikọ afikun jẹ atilẹyin, ninu eyiti awọn paati nikan ti o ni ibatan taara si awọn ayipada ti a ṣe lati igba kikọ ti o kẹhin ti tun ṣe. Meson le ṣee lo lati ṣe ina awọn ile atunwi, ninu eyiti ṣiṣiṣẹ kọ ni awọn agbegbe oriṣiriṣi awọn abajade ni iran ti awọn faili ti o le ṣiṣẹ patapata.

Awọn imotuntun akọkọ ti Meson 1.3:

  • Ṣafikun aṣayan “aṣiṣe: otitọ” si awọn ọna iṣayẹwo olupilẹṣẹ compiler.compiles (), compiler.links () ati compiler.run (), eyiti o tọju awọn ikilọ alakojọpọ bi awọn aṣiṣe (le ṣee lo lati ṣayẹwo pe a kọ koodu naa laisi awọn ikilọ. ).
  • Ọna has_define ti a ṣafikun lati ṣayẹwo asọye aami nipasẹ olupilẹṣẹ.
  • A ti ṣafikun paramita macro_name si iṣẹ configure_file (), fifi aabo macro fun awọn asopọ ilọpo meji nipasẹ “#include” (“pẹlu awọn ẹṣọ”), ti a ṣe apẹrẹ ni ara macros ni ede C (irọrun ṣiṣẹda awọn atunto awọn faili pẹlu ìmúdàgba). awọn orukọ Makiro).
  • A ti ṣafikun ọna kika tuntun si configure_file () - JSON ("output_format: json").
  • Ṣe afikun agbara lati lo awọn atokọ ti awọn iye si awọn aye c_std ati cpp_std (fun apẹẹrẹ, “awọn aṣayan_aiyipada: 'c_std=gnu11,c11′').
  • Ninu awọn modulu ti o lo CustomTarget lati ṣe ilana awọn faili, agbara lati ṣe akanṣe awọn ifilọlẹ awọn ifiranṣẹ nipasẹ ohun elo ninja ti ṣafikun.
  • “Idẹ” build_target ti lọ silẹ ati pe “ipọn ()” ni a ṣeduro dipo.
  • A ti ṣafikun paramita 'env' si ọna generator.process() lati ṣeto oniyipada ayika nipasẹ eyiti monomono yoo ṣe ilana titẹ sii.
  • Nigbati o ba n ṣalaye awọn orukọ ibi-afẹde ti o ni nkan ṣe pẹlu awọn iṣẹ ṣiṣe, awọn suffixes bii “executable('foo', 'main.c', name_suffix: 'bar')” ni a gba laaye lati ṣe agbekalẹ awọn imuṣiṣẹ ni afikun ni itọsọna kanna.
  • Ṣe afikun paramita “vs_module_defs” si iṣẹ ṣiṣe () lati lo faili defi kan ti o ṣalaye atokọ ti awọn iṣẹ ti o kọja si shared_module ().
  • Fi paramita 'default_options' kun si iṣẹ find_program() lati ṣeto awọn aṣayan aifọwọyi fun iṣẹ abẹlẹ.
  • Fi kun fs.relative_to () ọna, eyi ti o pada ojulumo ona fun igba akọkọ ariyanjiyan, ojulumo si awọn keji, ti o ba ti akọkọ ona wa. Fun apẹẹrẹ, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • A ti ṣafikun paramita_symlinks wọnyi si install_data (), install_headers () ati awọn iṣẹ install_subdir (); nigba ti ṣeto, awọn ọna asopọ aami ni a tẹle.
  • A ti fi paramita “kun” kan si ọna int.to_string () lati kun okun ni afikun pẹlu awọn odo asiwaju. Fun apẹẹrẹ, pipe ifiranṣẹ (n.to_string (fill: 3)) fun n=4 yoo ṣe agbejade okun "004".
  • Ṣafikun ibi-afẹde tuntun kan, clang-tidy-fix, ti o tọka si ṣiṣiṣẹ ohun elo clang-tidy pẹlu asia “-fix”.
  • Agbara lati tokasi suffix (TARGET_SUFFIX) ti ibi-afẹde apejọ ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) ti jẹ afikun si aṣẹ akojọpọ.
  • Ayipada ayika ti a ṣafikun MESON_PACKAGE_CACHE_DIR lati yi ọna si kaṣe package (awọn iṣẹ akanṣe/packagecache), fun apẹẹrẹ, gbigba ọ laaye lati lo kaṣe pinpin ni awọn iṣẹ akanṣe pupọ.
  • Ṣafikun aṣẹ “meson setup --clearcache” lati ko kaṣe ti o tẹpẹlẹ kuro.
  • Atilẹyin fun koko-ọrọ “ti a beere” ni a ti ṣafikun si gbogbo “has_*” awọn ọna iṣayẹwo akojọpọ, fun apẹẹrẹ, dipo “isọ (cc.has_function('some_function'))” o le pato “cc.has_function('some_function') , beere: otitọ)".
  • Koko tuntun kan, rust_abi, ni a ti ṣafikun si sharing_library (), static_library (), ibi ikawe (), ati awọn iṣẹ ipin_module () eyiti o yẹ ki o lo dipo rust_crate_type ti a ti parẹ.

orisun: opennet.ru

Fi ọrọìwòye kun