Pagpagawas sa sistema sa pagtukod sa Meson 1.3

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

Ang yawe nga katuyoan sa pag-uswag sa Meson mao ang paghatag usa ka taas nga tulin nga proseso sa asembliya inubanan sa kasayon ​​ug kadali sa paggamit. Inay sa paghimo, ang pagtukod naggamit sa Ninja toolkit sa default, apan ang ubang mga backend sama sa xcode ug VisualStudio mahimo usab nga gamiton. 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 gipahimutang sa usa ka gipayano nga pinulongan nga piho sa domain, kini maayo nga mabasa ug masabtan sa tiggamit (sumala sa ideya sa mga tagsulat, ang developer kinahanglan nga mogugol og usa ka minimum nga panahon sa pagsulat sa mga lagda).

Ang 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 gisuportahan. Posible nga magtukod mga proyekto sa lainlaing mga sinultian nga programming, lakip ang C, C ++, Fortran, Java ug Rust. Gisuportahan ang usa ka incremental build mode, diin ang mga sangkap lamang nga direktang may kalabutan sa mga pagbag-o nga nahimo sukad sa katapusan nga pagtukod ang gitukod pag-usab. Ang Meson mahimong gamiton aron makamugna og balik-balik nga pagtukod, diin ang pagpadagan sa pagtukod sa lain-laing mga palibot moresulta sa hingpit nga managsama nga mga executable nga namugna.

Panguna nga mga inobasyon sa Meson 1.3:

  • Gidugang ang opsyon nga "werror: true" sa compiler check method compiler.compiles(), compiler.links() ug compiler.run(), nga nagtratar sa mga pasidaan sa compiler isip mga sayop (mahimong gamiton aron masusi nga ang code gitukod nga walay pasidaan ).
  • Gidugang has_define nga pamaagi aron masusi ang kahulugan sa simbolo pinaagi sa preprocessor.
  • Ang macro_name parameter gidugang sa configure_file() function, pagdugang sa macro nga proteksyon alang sa doble nga koneksyon pinaagi sa "#include" ("ilakip ang mga guwardiya"), gidisenyo sa estilo sa mga macro sa C nga pinulongan (pagpasimple sa paghimo sa pag-configure sa mga file nga adunay dinamikong macro nga mga ngalan).
  • Usa ka bag-ong output format ang gidugang sa configure_file() - JSON ("output_format: json").
  • Gidugang ang abilidad sa paggamit sa mga lista sa mga kantidad sa c_std ug cpp_std nga mga parameter (pananglitan, "default_options: 'c_std=gnu11,c11β€²').
  • Sa mga module nga naggamit sa CustomTarget sa pagproseso sa mga file, ang abilidad sa pag-customize sa mga mensahe nga output sa ninja utility gidugang.
  • Ang build_target nga "jar" wala na gigamit ug ang "jar()" nga tawag girekomenda sa baylo.
  • Ang parameter nga 'env' gidugang sa generator.process() nga pamaagi aron itakda ang environment variable diin ang generator moproseso sa input.
  • Kung gipiho ang mga ngalan sa target sa pagtukod nga adunay kalabotan sa mga executable, ang mga suffix sama sa "executable ('foo', 'main.c', name_suffix: 'bar')" gitugotan nga makamugna og dugang nga mga executable sa parehas nga direktoryo.
  • Gidugang ang parameter nga "vs_module_defs" sa exectuable() function aron magamit ang def file nga naghubit sa lista sa mga function nga gipasa sa shared_module().
  • Gidugang ang parameter nga 'default_options' sa function nga find_program() aron itakda ang default nga mga kapilian alang sa fallback subproject.
  • Gidugang ang fs.relative_to() nga pamaagi, nga nagbalik sa relatibong dalan alang sa unang argumento, relatibong sa ikaduha, kon anaa ang unang dalan. Pananglitan, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • Ang mosunod nga_symlinks nga parametro gidugang sa install_data(), install_headers() ug install_subdir() functions; kon itakda, ang simbolikong mga link gisunod.
  • Usa ka parameter nga "pun-on" ang gidugang sa int.to_string() nga pamaagi aron madugangan nga pun-on ang kuwerdas nga adunay nanguna nga mga sero. Pananglitan, ang pagtawag sa mensahe(n.to_string(fill: 3)) para sa n=4 maghimo sa string nga "004".
  • Gidugang ang usa ka bag-ong target, clang-tidy-fix, nga nagtino sa pagpadagan sa clang-tidy utility nga adunay "-fix" nga bandila.
  • Ang abilidad sa pagtino sa suffix (TARGET_SUFFIX) sa target sa asembliya ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) gidugang sa compile command.
  • Gidugang ang environment variable MESON_PACKAGE_CACHE_DIR aron ma-override ang agianan padulong sa package cache (subprojects/packagecache), pananglitan, nagtugot kanimo sa paggamit sa shared cache sa daghang mga proyekto.
  • Gidugang ang "meson setup --clearcache" nga sugo aron malimpyohan ang padayon nga cache.
  • Ang suporta alang sa "gikinahanglan" nga keyword gidugang sa tanan nga "has_*" nga mga pamaagi sa pagsusi sa compiler, pananglitan, imbes nga "ipahayag (cc.has_function ('some_function'))" mahimo nimong itakda ang "cc.has_function ('some_function'). , gikinahanglan: tinuod)”.
  • Usa ka bag-ong keyword, rust_abi, gidugang sa shared_library(), static_library(), library(), ug shared_module() functions, nga kinahanglan gamiton imbes sa wala na gamita nga rust_crate_type.

Source: opennet.ru

Idugang sa usa ka comment