Meson 1.3 koostamisraami versioon

Avaldati Meson 1.3.0 koostamisraam, mida kasutatakse projektide nagu X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ja GTK koostamiseks. Mesoni kood on kirjutatud Pythonis ja levitatakse Apache 2.0 litsentsi alusel.

Mesoni arengu peamine eesmĂ€rk on tagada kiire kogumise protsess koos mugavuse ja lihtsusega. Vaikimisi kasutatakse kogumise jaoks make'i asemel Ninja tööriistu, kuid on vĂ”imalik kasutada ka muid tagaplaneeringuid, nagu xcode ja VisualStudio. SĂŒsteemis on integreeritud mitme platvormi sĂ”ltuvuste haldur, mis vĂ”imaldab Mesonit kasutada distributsioonide paketide koostamiseks. Koostamisreeglid on mÀÀratud lihtsustatud ainealases keeles, mis on hea loetavusega ja arusaadav kasutajale (autoritelt on kavandatud, et arendaja peaks reeglite kirjutamiseks vĂ”imalikult vĂ€he aega kulutama).

Toetatakse ristkompileerimist ja ehitamist Linuxis, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ja Windowsis, kasutades GCC, Clang, Visual Studio ja teisi kompilaatoreid. Erinevate programmeerimiskeelte, sealhulgas C, C++, Fortran, Java ja Rust projektide ehitamine on vĂ”imalik. Toetatakse inkrementaalset ehitusreĆŸiimi, kus uuesti ehitatakse ainult need komponendid, mis on otseselt seotud muudatustega, mis on tehtud alates eelmisest ehitusest. Mesonit saab kasutada reprodutseeritavate ehituste loomiseks, kus ehituse kĂ€ivitamine erinevates keskkondades toob kaasa tĂ€ielikult identsete kĂ€ivitatavate failide genereerimise.

Meson 1.3 peamised uuendused:

  • Komplektorite kontrollimeetoditesse compiler.compiles(), compiler.links() ja compiler.run() on lisatud valik "werror: true", mille korral kĂ€sitletakse komplektori hoiatusi viguena (seda saab kasutada, et kontrollida, et kood kompileerub ilma hoiatusteta).
  • Lisatud meetod has_define, et kontrollida makrodefineerimist etteprotsessoris.
  • Funktsiooni configure_file() on lisatud parameeter macro_name, mis lisab dubleerimise kaitse "#include" kaudu ("include guards"), vormistatuna C keele makrode stiilis (lihtsustab konfiguratsioonifailide loomist dĂŒnaamiliste makronimede jaoks).
  • configure_file() funktsiooni on lisatud uus vĂ€ljundvorming — JSON ("output_format: json").
  • Parameetrites c_std ja cpp_std on lisatud vĂ”imalus kasutada vÀÀrtuste nimekirju (nĂ€iteks "default_options: 'c_std=gnu11,c11'").
  • Moodulites, mis kasutavad CustomTarget'i failide töötlemiseks, on lisatud valik kohandada sĂ”numeid, mida kuvab tööriist ninja.
  • Kehtestatud on vananenud kogumise eesmĂ€rk (build_target) „jar“, mille asemel soovitatakse kasutada „jar()“ kutsumist.
  • Meetodisse generator.process() on lisatud parameeter ‘env’, et seada keskkonnamuutuj, mille kaudu generaator töötleb sisendi.
  • Kogumise eesmĂ€rkide nimede mÀÀramisel, mis on seotud tĂ€idetavate failidega, on lubatud mÀÀrata lĂ”pp-nimed, nĂ€iteks „executable(‘foo’, ‘main.c’, name_suffix: ‘bar’)“, et genereerida tĂ€iendavaid tĂ€idetavaid faile samas kataloogis.
  • Funktsiooni executable() on lisatud parameeter „vs_module_defs“ def-faili kasutamiseks, mis mÀÀratleb funktsioonide nimekirja, mis edastatakse shared_module().
  • Funktsiooni find_program() on lisatud parameeter ‘default_options’, mis vĂ”imaldab mÀÀrata vaikimisi valikud varuprojekti (fallback) jaoks.
  • Lisatud on meetod fs.relative_to(), mis tagastab suhtevĂ€lja esimese argumendi ja teise suhtes, kui esimene tee eksisteerib. NĂ€iteks „fs.relative_to(‘/prefix/lib’, ‘/prefix/bin’) == ‘../lib’)“.
  • Funktsioonides install_data(), install_headers() ja install_subdir() on lisatud parameeter follow_symlinks, mille mÀÀramisel vĂ”imaldatakse jĂ€rgida sĂŒmboolseid linke.
  • Meetodis int.to_string() on lisatud parameeter „fill“, mis vĂ”imaldab tĂ€ita stringe eelnevate nullidega. NĂ€iteks kutse message(n.to_string(fill: 3)) vÀÀrtusega n=4 genereerib stringi „004“.
  • Uus clang-tidy-fix eesmĂ€rk, mis mÀÀratleb clang-tidy utiliidi kĂ€ivitamise lipuga „-fix“, on lisatud.
  • KĂ€sku compile on tĂ€iendatud vĂ”imalusega mĂ€rkida sihtsuhte (TARGET_SUFFIX) koostamise eesmĂ€rgi jaoks ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]).
  • Keskkonnamuutuja MESON_PACKAGE_CACHE_DIR on lisatud pakettide vahemĂ€lu (subprojects/packagecache) tee ĂŒle mÀÀramiseks, mis vĂ”imaldab kasutada ĂŒhte vahemĂ€lu mitmes projektis.
  • Lisatud kĂ€sk „meson setup —clearcache“ pideva vahemĂ€lu kustutamiseks.
  • KĂ”ikides kompilaatori kontrollimise meetodites „has_*“ on lisatud toetuse tulenevas vĂ”tmesĂ”nas „required“, nĂ€iteks nĂŒĂŒd saab kirjutada „cc.has_function(‘some_function’, required: true)“ asemel „assert(cc.has_function(‘some_function’))“.
  • Funktsioonides shared_library(), static_library(), library() ja shared_module() on lisatud uus vĂ”tmesĂ”na rust_abi, mida tuleks kasutada asemel vananenud rust_crate_type.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster