Meson build system release 1.3

O le Meson 1.3.0 build system ua tuʻuina atu, lea e faʻaaogaina e fausia ai galuega e pei o le X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ma GTK. O le code a Meson e tusia i le Python ma ua laiseneina i lalo ole laisene Apache 2.0.

O le sini autu o le atinaʻeina o Meson o le tuʻuina atu lea o le saoasaoa maualuga o le faʻapotopotoga faʻatasi ma le faʻaogaina ma le faigofie o le faʻaogaina. Nai lo le faʻaaogaina, o le Ninja toolkit e faʻaaogaina e ala i le le mafai ona fausia, ae o isi pito i tua e pei o le xcode ma VisualStudio e mafai foi ona faʻaaogaina. O le faiga o lo'o i ai se fa'apipi'i fa'alagolago i le tele-platform e mafai ai ona e fa'aogaina Meson e fau ai afifi mo tufatufaga. O tulafono fa'apotopotoga o lo'o fa'amaoti mai i se gagana fa'apitoa fa'apitoa, e matua'i faitau ma malamalama i ai le tagata fa'aoga (e pei ona fa'amoemoeina e le au tusitala, e tatau i le tagata atia'e ona fa'aalu sina taimi itiiti e tusitusi ai tulafono).

Lagolago le faʻapipiʻi faʻasolosolo ma le fausiaina i luga o Linux, Illumos / Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ma Windows e faʻaaoga ai le GCC, Clang, Visual Studio ma isi tagata faʻapipiʻi. E mafai ona fausia galuega i gagana eseese polokalame, e aofia ai C, C ++, Fortran, Java ma Rust. O lo'o lagolagoina le faiga fa'aopoopo, lea e na'o vaega e feso'ota'i sa'o ma suiga na faia talu mai le fale mulimuli e toe fau. E mafai ona fa'aogaina Meson e fa'atupu ai le toe fa'afo'iina o fale, lea o lo'o fa'atinoina ai le fausiaina i totonu o si'osi'omaga eseese e maua ai le fa'atupuina o faila fa'atino tutusa.

Faiga fou a Meson 1.3:

  • Faʻaopoopo le filifiliga "werror: moni" i le compiler siaki metotia compiler.compiles(), compiler.links() ma compiler.run(), lea e togafitia lapataiga compiler e pei o mea sese (e mafai ona faʻaoga e siaki ai o le code ua fausia e aunoa ma ni lapataiga. ).
  • Fa'aopoopo le has_define metotia e siaki ai fa'amatalaga fa'ailoga e le preprocessor.
  • O le macro_name parameter ua faʻaopoopoina i le configure_file () galuega, faʻaopoopo le puipuiga o le macro mo fesoʻotaʻiga faʻalua e ala i le "#include" ("aofia ai leoleo"), fuafuaina i le sitaili o macros i le gagana C (faʻafaigofieina le fatuina o faila faila ma le malosi. igoa macro).
  • Ua fa'aopoopoina se fa'asologa fou i le configure_file() - JSON ("output_format: json").
  • Faʻaopoopo le tomai e faʻaoga ai lisi o mea taua i le c_std ma cpp_std parakalafa (mo se faʻataʻitaʻiga, "default_options: 'c_std = gnu11, c11′').
  • I modules e faʻaogaina le CustomTarget e faʻagasolo faila, ua faʻaopoopoina le mafai e faʻapipiʻi feʻau na faia e le ninja utility.
  • O le build_target "jar" ua le toe fa'aaogaina ma o le "jar()" valaau ua fautuaina nai lo.
  • O le 'env' parakalafa ua faaopoopo i le generator.process() auala e seti ai le fesuiaiga o le siosiomaga lea e faʻaogaina ai e le afi faʻaoga.
  • Pe a faʻamaoti igoa faʻatulagaina e fesoʻotaʻi ma mea e mafai ona faʻatinoina, o mea faʻapipiʻi e pei o le "executable('foo', 'main.c', name_suffix: 'bar')" e faʻatagaina e faʻatupu ai isi faʻaogaina i totonu o le lisi lava e tasi.
  • Faʻaopoopo le "vs_module_defs" parakalafa i le faʻatinoina () galuega e faʻaaoga ai se faila faila e faʻamatalaina ai le lisi o galuega na pasia i shared_module().
  • Fa'aopoopo le 'default_options' parakalafa e find_program() galuega e seti ai filifiliga le lelei mo le toe foʻi i tua galuega.
  • Fa'aopoopo fs.relative_to() metotia, lea e toe fa'afo'i ai le ala fa'atatau mo le finauga muamua, fa'atatau i le lona lua, pe a iai le ala muamua. Mo se faʻataʻitaʻiga, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • Ua fa'aopoopo le fa'asologa o_symlinks i le install_data(), install_headers() ma install_subdir() galuega; pe a seti, e mulimulita'i sootaga fa'atusa.
  • O le "faatumu" parakalafa ua faaopoopo i le int.to_string() auala e faʻaopoopo faʻatumu le manoa i zeros. Mo se faʻataʻitaʻiga, valaʻau savali(n.to_string(faatumu: 3)) mo n=4 o le a maua ai le manoa "004".
  • Ua fa'aopoopoina se fa'amoemoe fou, clang-tidy-fix, e fa'amaoti mai ai le fa'aogaina o le fa'aogaina o le clang-tidy ma le fu'a "-fix".
  • Le mafai ona fa'amaoti le suffix (TARGET_SUFFIX) o le fa'amoemoe o le fa'apotopotoga ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) ua fa'aopoopoina i le fa'atonuga tu'ufa'atasi.
  • Fa'aopoopo le suiga ole si'osi'omaga MESON_PACKAGE_CACHE_DIR e fa'asolo ai le ala i le pusa pusa (subprojects/packagecache), mo se fa'ata'ita'iga, fa'atagaina oe e fa'aoga se fa'asoa fa'asoa i le tele o galuega.
  • Fa'aopoopoina le "meson setup --clearcache" le fa'atonuga e fa'amama ai le fa'aoga tumau.
  • Lagolago mo le "manaomia" upu autu ua faaopoopo i "has_*" auala siaki compiler, mo se faataitaiga, nai lo le "faailoa (cc.has_function ('some_function'))" e mafai nei ona e faʻamaonia "cc.has_function('some_function'). , manaomia: moni)”.
  • O se upu fou, rust_abi, ua faaopoopo i le shared_library(), static_library(), library(), ma shared_module() functions, lea e tatau ona faaaoga nai lo le rust_crate_type ua le toe faaaogaina.

puna: opennet.ru

Faaopoopo i ai se faamatalaga