Pagpagawas sa sistema sa pagtukod sa Meson 0.52

gipatik pagtukod sa pagpagawas sa sistema Meson 0.52, nga gigamit sa pagtukod og mga proyekto sama sa X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ug GTK+. Ang Meson code gisulat sa Python ug gihatag lisensyado ubos sa Apache 2.0.

Ang yawe nga tumong sa pagpalambo sa Meson mao ang paghatag og taas nga tulin sa proseso sa asembliya inubanan sa kasayon ​​ug kasayon ​​sa paggamit. Imbis sa make utility, ang default build naggamit sa toolkit Ninja, apan posible usab nga gamiton ang ubang mga backend, sama sa xcode ug VisualStudio. Ang sistema adunay usa ka built-in nga multi-platform dependency handler nga nagtugot kanimo sa paggamit sa Meson sa paghimo og mga pakete alang sa mga pag-apod-apod. Ang mga lagda sa asembliya gipiho sa usa ka gipayano nga pinulongan nga piho sa domain, dali nga mabasa ug masabtan sa tiggamit (sama sa gituyo sa mga tagsulat, ang developer kinahanglan nga mogugol ug labing gamay nga oras sa pagsulat sa mga lagda).

Gisuportahan cross-compile ug pagtukod sa Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ug Windows gamit ang GCC, Clang, Visual Studio ug uban pang mga compiler. Posible nga magtukod mga proyekto sa lainlaing mga sinultian nga programming, lakip ang C, C ++, Fortran, Java ug Rust. Gisuportahan ang incremental nga mode sa pagtukod, diin ang mga sangkap lamang nga direktang may kalabutan sa mga pagbag-o nga nahimo sukad ang katapusan nga pagtukod gitukod pag-usab. Ang Meson mahimong gamiton aron makamugna og balik-balik nga mga pagtukod, diin ang pagpadagan sa pagtukod sa lain-laing mga palibot moresulta sa paghimo sa hingpit nga managsama nga mga executable nga mga file.

nag-unang mga inobasyon Meson 0.52:

  • Gidugang nga suporta sa eksperimento alang sa Webassembly gamit ang Emscripten isip usa ka compiler;
  • Ang suporta alang sa mga plataporma sa Illumos ug Solaris labi nga gipauswag ug gidala sa kahimtang sa pagtrabaho;
  • Pagsiguro nga ang gettext-based internationalization scripts dili tagdon kon ang sistema walay gettext toolkit nga na-install (kaniadto, usa ka sayup ang gipakita sa dihang naggamit sa i18n module sa mga sistema nga walay gettext);
  • Gipauswag nga suporta alang sa mga static nga librarya. Daghang mga problema kung gigamit ang wala ma-install nga mga static nga librarya nga nasulbad;
  • Gidugang ang abilidad sa paggamit sa mga diksyonaryo aron mag-assign sa mga variable sa palibot. Kung nagtawag sa environment(), ang unang elemento mahimo na nga espesipiko isip usa ka diksyonaryo diin ang environment variables gihubit sa key/value nga porma. Kini nga mga baryable ibalhin ngadto sa environment_object sama nga sila tagsa-tagsa nga gitakda pinaagi sa set() nga pamaagi. Ang mga diksyonaryo mahimo na usab nga ipasa sa lainlaing mga gimbuhaton nga nagsuporta sa usa ka "env" nga argumento;
  • Gidugang nga function "runtarget alias_target(target_name, dep1, ...)" nga nagmugna og bag-ong first-level build target nga matawag sa pinili nga build backend (eg "ninja target_name"). Kini nga target sa pagtukod wala magpadagan sa bisan unsang mga mando, apan nagsiguro nga ang tanan nga mga dependency gitukod;
  • Gi-enable ang awtomatik nga setting sa PKG_CONFIG_SYSROOT_DIR environment variable atol sa cross-compilation kon adunay sys_root setting sa "[properties]" nga seksyon;
  • Gidugang ang kapilian nga "--gdb-path" aron mahibal-an ang agianan sa debugger sa GDB kung gipiho ang kapilian nga "--gdb testname" aron mapadagan ang GDB gamit ang gitakda nga script sa pagsulay;
  • Gidugang ang awtomatik nga pagkakita sa clang-tidy nga target sa pagtukod aron mapadagan kini nga linter sa tanan nga gigikanan nga mga file. Ang target gihimo kung ang clang-tidy anaa sa sistema ug ang ".clang-tidy" (o "_clang-tidy") nga file gihubit sa gamut sa proyekto;
  • Gidugang nga dependency('blocks') para gamiton sa Clang extension Mga bloke;
  • Ang linker ug compiler views gibulag, nagtugot sa lain-laing mga kombinasyon sa mga compiler ug linkers nga gamiton;
  • Gidugang all_dependencies() method sa SourceSet objects dugang sa all_sources() method;
  • Sa run_project_tests.py, ang "--only" nga kapilian gidugang sa pinili nga pagpadagan sa mga pagsulay (pananglitan, "python run_project_tests.py —only fortran python3");
  • Ang function nga find_program() karon adunay katakus sa pagpangita lamang sa gikinahanglan nga mga bersyon sa usa ka programa (ang bersyon gitino pinaagi sa pagpadagan sa programa gamit ang "-bersyon" nga kapilian);
  • Aron makontrol ang pag-eksport sa mga simbolo, ang opsyon sa vs_module_defs gidugang sa shared_module() function, susama sa shared_library();
  • Ang kconfig module gipalapdan sa pagsuporta sa configure_file() alang sa pagtino sa usa ka input file;
  • Gidugang ang abilidad sa pagtino sa daghang mga input file alang sa "command:" nga mga tigdumala sa configure_file ();
  • Ang "dist" nga sugo alang sa paghimo og archive gibalhin ngadto sa kategorya sa mga first-level commands (kaniadto ang command gihigot sa ninja). Gidugang ang "--formats" nga kapilian aron ipasabut ang mga tipo sa mga archive nga himuon (pananglitan,
    "meson dist -formats=xztar,zip").

Source: opennet.ru

Idugang sa usa ka comment