Hoʻokuʻu ʻia ʻo Meson build system 1.3

Ua paʻi ʻia ka hoʻokuʻu ʻana o ka ʻōnaehana kūkulu Meson 1.3.0, i hoʻohana ʻia e kūkulu i nā papahana e like me X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME a me GTK. Ua kākau ʻia ka code Meson ma Python a ua laikini ʻia ma lalo o ka laikini Apache 2.0.

ʻO ka pahuhopu hoʻomohala koʻikoʻi o Meson ʻo ia ka hāʻawi ʻana i kahi kaʻina hana hui wikiwiki i hui pū ʻia me ka maʻalahi a me ka maʻalahi o ka hoʻohana. Ma kahi o ka hana ʻana, hoʻohana ke kūkulu i ka mea hana Ninja ma ke ʻano maʻamau, akā hiki ke hoʻohana ʻia nā backends e like me xcode a me VisualStudio. Loaʻa i ka ʻōnaehana kahi mea hoʻohana hilinaʻi multi-platform e hiki ai iā ʻoe ke hoʻohana iā Meson e kūkulu i nā pūʻolo no ka hāʻawi ʻana. Hoʻonohonoho ʻia nā lula hui ma kahi ʻōlelo kikoʻī domain maʻalahi, hiki ke heluhelu a hoʻomaopopo ʻia e ka mea hoʻohana (e like me ka manaʻo o ka mea kākau, pono ka mea hoʻomohala e hoʻolilo i ka liʻiliʻi o ka manawa kākau i nā lula).

Kākoʻo ʻia ka hui ʻana a me ke kūkulu ʻana ma Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS a me Windows me ka hoʻohana ʻana iā GCC, Clang, Visual Studio a me nā mea hoʻohui ʻē aʻe. Hiki ke kūkulu i nā papahana ma nā ʻōlelo papahana like ʻole, me C, C++, Fortran, Java a me Rust. Kākoʻo ʻia ke ʻano hana hoʻonui, kahi i kūkulu hou ʻia nā ʻāpana i pili pono i nā loli i hana ʻia mai ka hale hope loa. Hiki ke hoʻohana ʻia ʻo Meson e hana i nā hale hana hou, kahi e holo ai ke kūkulu ʻana i nā wahi like ʻole e hopena i nā mea hoʻokō like loa.

ʻO nā hana hou o Meson 1.3:

  • Hoʻohui ʻia ke koho "werror: ʻoiaʻiʻo" i ka compiler check method compiler.compiles(), compiler.links() a compiler.run(), ka mea e mālama i nā ʻōlelo aʻoaʻo compiler e like me nā hewa (hiki ke hoʻohana ʻia e nānā i ke kūkulu ʻia ʻana o ke code me ka ʻole o nā ʻōlelo aʻo. ).
  • Hoʻohui ʻia ke ala has_define e nānā i ka wehewehe ʻana i ka hōʻailona e preprocessor.
  • Ua hoʻohui ʻia ka ʻāpana macro_name i ka hana configure_file (), me ka hoʻohui ʻana i ka pale macro no nā pilina pālua ma o "#include" ("include guards"), i hoʻolālā ʻia i ke ʻano o nā macros i ka ʻōlelo C (maʻalahi i ka hana ʻana i nā faila hoʻonohonoho me ka ikaika. inoa macro).
  • Ua hoʻohui ʻia kahi ʻano hoʻopuka hou i configure_file () - JSON ("output_format: json").
  • Hoʻohui i ka hiki ke hoʻohana i nā papa inoa o nā waiwai i nā ʻāpana c_std a me cpp_std (no ka laʻana, "default_options: 'c_std=gnu11,c11′').
  • I loko o nā modula e hoʻohana ana i CustomTarget e hoʻoponopono i nā faila, ua hoʻohui ʻia ka hiki ke hana i nā memo i hoʻopuka ʻia e ka pono ninja.
  • Ua hoʻopau ʻia ka build_target "jar" a ua ʻōlelo ʻia ke kelepona "jar()".
  • Ua hoʻohui ʻia ka ʻāpana 'env' i ke ʻano generator.process() e hoʻonohonoho i ka ʻano hoʻololi kaiapuni kahi e hana ai ka mea hana hoʻokomo.
  • Ke kuhikuhi ʻana i nā inoa i hoʻopaʻa ʻia e pili ana i nā mea hoʻokō, ua ʻae ʻia nā suffix e like me "executable('foo', 'main.c', name_suffix: 'bar')" e hana i nā mea hoʻokō hou ma ka papa kuhikuhi like.
  • Hoʻohui i ka "vs_module_defs" parameter i ka hana hoʻokō () e hoʻohana i kahi faila def e wehewehe i ka papa inoa o nā hana i hāʻawi ʻia i shared_module ().
  • Hoʻohui ʻia ka ʻāpana 'default_options' i ka hana find_program() e hoʻonohonoho i nā koho paʻamau no ka subproject fallback.
  • Hoʻohui ʻia ke ala fs.relative_to(), e hoʻihoʻi i ke ala pili no ka hoʻopaʻapaʻa mua, pili i ka lua, inā loaʻa ke ala mua. No ka laʻana, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • Ua hoʻohui ʻia kēia ʻāpana_symlinks i ka install_data (), install_headers () a me install_subdir() hana; ke hoʻonohonoho ʻia, hahai ʻia nā loulou hōʻailona.
  • Ua hoʻohui ʻia kahi ʻāpana "hoʻopiha" i ke ʻano int.to_string() e hoʻopiha i ke kaula me nā zeros alakaʻi. No ka laʻana, ke kāhea ʻana i ka memo(n.to_string(fill: 3)) no n=4 e hana i ke kaula "004".
  • Hoʻohui i kahi pahuhopu hou, clang-tidy-fix, e kuhikuhi ana i ka holo ʻana i ka pono clang-tidy me ka hae "-fix".
  • Ua hoʻohui ʻia ka hiki ke kuhikuhi i ka suffix (TARGET_SUFFIX) o ka pahuhopu hui ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) i ke kauoha hōʻuluʻulu.
  • Hoʻohui ʻia ka hoʻololi kaiapuni ʻo MESON_PACKAGE_CACHE_DIR e hoʻopau i ke ala i ka waihona waihona (subprojects/packagecache), no ka laʻana, e ʻae iā ʻoe e hoʻohana i kahi huna huna i kekahi mau papahana.
  • Hoʻohui ʻia ke kauoha "meson setup --clearcache" e hoʻomaʻemaʻe i ka cache hoʻomau.
  • Ua hoʻohui ʻia ke kākoʻo no ka huaʻōlelo "koi" i nā ʻano loiloi compiler a pau "has_*", no ka laʻana, ma kahi o "assert(cc.has_function ('some_function'))" hiki iā ʻoe ke kuhikuhi i kēia manawa "cc.has_function ('some_function'). , koi ʻia: ʻoiaʻiʻo)”.
  • Ua hoʻohui ʻia kahi huaʻōlelo hou, rust_abi, i ka shared_library (), static_library (), hale waihona (), a me shared_module (), pono e hoʻohana ʻia ma kahi o ka rust_crate_type i hoʻopau ʻia.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka