Mesoni ehitussĂŒsteemi vĂ€ljalase 1.3

Avaldatud on Meson 1.3.0 ehitussĂŒsteemi vĂ€ljalase, mida kasutatakse selliste projektide ehitamiseks nagu X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK. Mesoni kood on kirjutatud Pythonis ja litsentsitud Apache 2.0 litsentsi alusel.

Mesoni arenduse pĂ”hieesmĂ€rk on pakkuda kiiret montaaĆŸiprotsessi koos mugavuse ja kasutuslihtsusega. Make asemel kasutab jĂ€rg vaikimisi Ninja tööriistakomplekti, kuid kasutada saab ka muid taustaprogramme, nagu xcode ja VisualStudio. SĂŒsteemil on sisseehitatud mitme platvormi sĂ”ltuvuse töötleja, mis vĂ”imaldab kasutada Mesonit distributsioonide pakettide koostamiseks. Koostereeglid on seatud lihtsustatud domeenipĂ”hises keeles, need on hĂ€sti loetavad ja kasutajale arusaadavad (autorite idee kohaselt peaks arendaja kulutama reeglite kirjutamisele minimaalselt aega).

Toetatud on ristkompileerimine ja assembler. Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS Đž Windows Kasutades GCC-d, Clangi, Visual Studiot ja teisi kompilaatoreid. Projekte saab luua erinevates programmeerimiskeeltes, sealhulgas C, C++, Fortran, Java ja Rust. Toetatud on inkrementaalne ehitusreĆŸiim, mis ehitab uuesti ainult komponendid, mis on otseselt seotud muudatustega, mis on tehtud pĂ€rast eelmist ehitust. Mesoni saab kasutada korduvate ehituste loomiseks, kus ehituse kĂ€ivitamine erinevates keskkondades annab tulemuseks tĂ€iesti identsed kĂ€ivitatavad failid.

Meson 1.3 peamised uuendused:

  • Kompilaatori kontrollimismeetoditele compiler.compiles(), compiler.links() ja compiler.run() lisati valik “werror: true”, mis kĂ€sitleb kompilaatori hoiatusi vigadena (saab kontrollida, kas kood on koostatud ilma hoiatusteta ).
  • Lisatud on has_define meetod sĂŒmboli definitsiooni kontrollimiseks eelprotsessori jĂ€rgi.
  • Funktsioonile configure_file() on lisatud parameeter macro_name, mis lisab topeltĂŒhendustele makrokaitse lĂ€bi “#include” (“include valves”), mis on kujundatud makrode stiilis C-keeles (lihtsustades konfiguratsioonifailide loomist dĂŒnaamilise funktsiooniga makro nimed).
  • Failile configure_file() on lisatud uus vĂ€ljundvorming - JSON ("output_format: json").
  • Lisati vĂ”imalus kasutada vÀÀrtuste loendeid parameetritele c_std ja cpp_std (nĂ€iteks „default_options: 'c_std=gnu11,c11').
  • Moodulitele, mis kasutavad failide töötlemiseks CustomTargetit, on lisatud vĂ”imalus kohandada ninja-utiliidi sĂ”numeid.
  • Build_target "jar" on aegunud ja selle asemel on soovitatav kutsuda "jar()".
  • Meetodile generator.process() on lisatud parameeter 'env', et mÀÀrata keskkonnamuutuja, mille kaudu generaator sisendit töötleb.
  • TĂ€itmisfailidega seotud jĂ€rgu sihtnimede mÀÀramisel lubatakse jĂ€relliidetel nagu "executable('foo', 'main.c', name_suffix: 'bar')" luua samas kataloogis tĂ€iendavaid kĂ€ivitatavaid faile.
  • Funktsioonile exectuable() lisati parameeter "vs_module_defs", et kasutada def-faili, mis mÀÀratleb jagatud_mooduli() funktsioonide loendi.
  • Funktsiooni find_program() jaoks on lisatud parameeter 'default_options', et mÀÀrata varualamprojekti vaikesuvandid.
  • Lisatud on meetod fs.relative_to(), mis tagastab esimese argumendi suhtelise tee teise suhtes, kui esimene tee on olemas. NĂ€iteks "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • Funktsioonidele install_data(), install_headers() ja install_subdir() on lisatud parameeter next_symlinks, mille mÀÀramisel jĂ€rgitakse sĂŒmboolseid linke.
  • Meetodile int.to_string() on lisatud parameeter "fill", et stringi jĂ€rk-jĂ€rgult tĂ€ita eesolevate nullidega. NĂ€iteks sĂ”numi (n.to_string(fill: 3)) kutsumine n=4 korral annab stringi "004".
  • Lisati uus sihtmĂ€rk clang-tidy-fix, mis mÀÀrab clang-tidy utiliidi kĂ€itamise lipuga "-fix".
  • KompileerimiskĂ€sule on lisatud vĂ”imalus mÀÀrata kooste sihtmĂ€rgi ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) jĂ€relliide (TARGET_SUFFIX).
  • Lisatud keskkonnamuutuja MESON_PACKAGE_CACHE_DIR, et alistada nĂ€iteks paketi vahemĂ€lu (alamprojektid/paketivahemĂ€lu) tee, vĂ”imaldades kasutada jagatud vahemĂ€lu mitmes projektis.
  • PĂŒsiva vahemĂ€lu tĂŒhjendamiseks on lisatud kĂ€sk "meson setup --clearcache".
  • KĂ”igile "has_*" kompilaatori kontrollimeetoditele on lisatud mĂ€rksĂ”na "required" tugi, nĂ€iteks "assert(cc.has_function('some_function'))" asemel saate nĂŒĂŒd mÀÀrata "cc.has_function('some_function'). , nĂ”utav: tĂ”si)”.
  • Funktsioonidele shared_library(), static_library(), raamatukogu() ja jagatud_moodul() on lisatud uus mĂ€rksĂ”na rust_abi, mida tuleks kasutada aegunud rust_crate_type asemel.

Allikas: opennet.ru

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster