рдореЗрд╕рди рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рд░рд┐рд▓реАрдЬ 1.3

Meson 1.3.0 рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд░рд┐рд▓реАрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME рд░ GTK рдЬрд╕реНрддрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред Meson рдХреЛрдб Python рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ Apache 2.0 рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рджрд┐рдЗрдПрдХреЛ рдЫред

Meson рдХреЛ рдореБрдЦреНрдп рд╡рд┐рдХрд╛рд╕ рд▓рдХреНрд╖реНрдп рд╕реБрд╡рд┐рдзрд╛ рд░ рдкреНрд░рдпреЛрдЧ рдХреЛ рд╕рдЬрд┐рд▓реЛ рд╕рдВрдЧ рд╕рдВрдпреБрдХреНрдд рдПрдХ рдЙрдЪреНрдЪ рдЧрддрд┐ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреБ рд╣реЛред рдмрдирд╛рдЙрдирдХреЛ рд╕рдЯреНрдЯрд╛, рдирд┐рд░реНрдорд╛рдгрд▓реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдирд┐рдиреНрдЬрд╛ рдЯреБрд▓рдХрд┐рдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рддрд░ рдЕрдиреНрдп рдмреНрдпрд╛рдХрдПрдиреНрдбрд╣рд░реВ рдЬрд╕реНрддреИ xcode рд░ VisualStudio рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдирд┐рд░реНрдорд┐рдд рдмрд╣реБ-рдкреНрд▓реЗрдЯрдлрд░реНрдо рдирд┐рд░реНрднрд░рддрд╛ рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рдЫ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡рд┐рддрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдореЗрд╕рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЕрд╕реЗрдВрдмрд▓реА рдирд┐рдпрдорд╣рд░реВ рд╕рд░рд▓реАрдХреГрдд рдбреЛрдореЗрди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖рд╛рдорд╛ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН, рддрд┐рдиреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдкрдвреНрди рд░ рдмреБрдЭреНрди рдпреЛрдЧреНрдп рдЫрдиреН (рд▓реЗрдЦрдХрд╣рд░реВрдХреЛ рд╡рд┐рдЪрд╛рд░ рдЕрдиреБрд╕рд╛рд░, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдирд┐рдпрдорд╣рд░реВ рд▓реЗрдЦреНрди рдиреНрдпреВрдирддрдо рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реНрдиреБрдкрд░реНрдЫ)ред

Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS рд░ Windows рдорд╛ GCC, Clang, Visual Studio рд░ рдЕрдиреНрдп рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХреНрд░рд╕-рдХрдореНрдкрд╛рдЗрд▓рд┐рдЩ рд░ рдирд┐рд░реНрдорд╛рдг рд╕рдорд░реНрдерд┐рдд рдЫред C, C++, Fortran, Java рд░ Rust рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдирд┐рд░реНрдорд╛рдг рдореЛрдб рд╕рдорд░реНрдерд┐рдд рдЫ, рдЬрд╕рдорд╛ рдЕрдиреНрддрд┐рдо рдирд┐рд░реНрдорд╛рдг рдкрдЫрд┐ рдЧрд░рд┐рдПрдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрд╕рдБрдЧ рдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдкрдорд╛ рд╕рдореНрдмрдиреНрдзрд┐рдд рдШрдЯрдХрд╣рд░реВ рдорд╛рддреНрд░ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░рд┐рдиреНрдЫред рдореЗрд╕рдирд▓рд╛рдИ рджреЛрд╣реЛрд░реНрдпрд╛рдЙрди рдорд┐рд▓реНрдиреЗ рдмрд┐рд▓реНрдбрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЬрд╣рд╛рдБ рдмрд┐рд▓реНрдбрд▓рд╛рдИ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рдЪрд▓рд╛рдЙрдБрджрд╛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдпрд╣рд░реВ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫред

рдореЗрд╕рди рез.рез рдХрд╛ рдореБрдЦреНрдп рдЖрд╡рд┐рд╖реНрдХрд╛рд░рд╣рд░реВ:

  • рдХрдореНрдкрд╛рдЗрд▓рд░ рдЬрд╛рдБрдЪ рд╡рд┐рдзрд┐рд╣рд░реВ compiler.compiles(), compiler.links() рд░ compiler.run() рдорд╛ рд╡рд┐рдХрд▓реНрдк "рддреНрд░реБрдЯрд┐: рд╕рддреНрдп" рдердкрд┐рдпреЛ, рдЬрд╕рд▓реЗ рдХрдореНрдкрд╛рдЗрд▓рд░ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрд▓рд╛рдИ рддреНрд░реБрдЯрд┐рдХреЛ рд░реВрдкрдорд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрджрдЫ (рдХреЛрдб рдЪреЗрддрд╛рд╡рдиреА рдмрд┐рдирд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреА рдЬрд╛рдБрдЪ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред )ред
  • рдкреНрд░рд┐рдкреНрд░реЛрд╕реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддреАрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрди has_define рд╡рд┐рдзрд┐ рдердкрд┐рдпреЛред
  • рдореНрдпрд╛рдХреНрд░реЛ_рдирд╛рдо рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдХрдиреНрдлрд┐рдЧрд░_рдлрд╛рдЗрд▓() рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рдердкрд┐рдПрдХреЛ рдЫ, "# рд╕рдорд╛рд╡реЗрд╢" ("рдЧрд╛рд░реНрдбрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБрд╣реЛрд╕реН") рдорд╛рд░реНрдлрдд рдбрдмрд▓ рдЬрдбрд╛рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдореНрдпрд╛рдХреНрд░реЛ рд╕реБрд░рдХреНрд╖рд╛ рдердкреНрджреИ, C рднрд╛рд╖рд╛рдорд╛ рдореНрдпрд╛рдХреНрд░реЛрдХреЛ рд╢реИрд▓реАрдорд╛ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ (рдЧрддрд┐рд╢реАрд▓рд╕рдБрдЧ рдХрдиреНрдлрд┐рдЧрд░ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕рд┐рд░реНрдЬрдирд╛рд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрджреИред рдореНрдпрд╛рдХреНрд░реЛ рдирд╛рдорд╣рд░реВ)ред
  • configure_file() - JSON ("output_format: json") рдорд╛ рдирдпрд╛рдБ рдЖрдЙрдЯрдкреБрдЯ рдврд╛рдБрдЪрд╛ рдердкрд┐рдПрдХреЛ рдЫред
  • c_std рд░ cpp_std рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдорд╛ рдорд╛рдирд╣рд░реВрдХреЛ рд╕реВрдЪреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдпреЛ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, тАЬdefault_options: 'c_std=gnu11,c11тА▓')ред
  • рдлрд╛рдЗрд▓рд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди CustomTarget рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдорд╛, рдирд┐рдиреНрдЬрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рджреНрд╡рд╛рд░рд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЖрдЙрдЯрдкреБрдЯ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдПрдХреЛ рдЫред
  • build_target "jar" рд▓рд╛рдИ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛ "jar()" рдХрд▓ рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • 'env' рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд▓рд╛рдИ generator.process() рд╡рд┐рдзрд┐рдорд╛ рдердкрд┐рдПрдХреЛ рдЫ рд╡рд╛рддрд╛рд╡рд░рдгреАрдп рдЪрд░ рд╕реЗрдЯ рдЧрд░реНрди рдЬрд╕рдХреЛ рдорд╛рдзреНрдпрдордмрд╛рдЯ рдЬреЗрдиреЗрд░реЗрдЯрд░рд▓реЗ рдЗрдирдкреБрдЯ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗрдЫред
  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдпрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рдирд╛рдорд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрд╛, "executable('foo', 'main.c', name_suffix: 'bar')" рдЬрд╕реНрддрд╛ рдкреНрд░рддреНрдпрдпрд╣рд░реВрд▓рд╛рдИ рдЙрд╣реА рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдердк рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдпрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдиреНрдЫред
  • "vs_module_defs" рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд▓рд╛рдИ exectuable() рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рдердкрд┐рдпреЛ def рдлрд╛рдЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЬрд╕рд▓реЗ рд╕рд╛рдЭрд╛_module() рдорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдПрдХрд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред
  • рдлрд▓рдмреНрдпрд╛рдХ рдЙрдкрдкреНрд░реЛрдЬреЗрдХреНрдЯрдХрд╛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрди find_program() рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ 'default_options' рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдердкрд┐рдпреЛред
  • fs.relative_to() рд╡рд┐рдзрд┐ рдердкрд┐рдпреЛ, рдЬрд╕рд▓реЗ рдкрд╣рд┐рд▓реЛ рддрд░реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдкреЗрдХреНрд╖ рдорд╛рд░реНрдЧ рдлрд░реНрдХрд╛рдЙрдБрдЫ, рджреЛрд╕реНрд░реЛрдХреЛ рд╕рд╛рдкреЗрдХреНрд╖, рдпрджрд┐ рдкрд╣рд┐рд▓реЛ рдорд╛рд░реНрдЧ рдЕрд╡рд╕реНрдерд┐рдд рдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')"ред
  • рдирд┐рдореНрди_symlinks рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ install_data(), install_headers() рд░ install_subdir() рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдердкрд┐рдПрдХреЛ рдЫ; рд╕реЗрдЯ рдЧрд░реНрджрд╛, рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдЩреНрдХрд╣рд░реВ рдкрдЫреНрдпрд╛рдЗрдиреНрдЫред
  • int.to_string() рд╡рд┐рдзрд┐рдорд╛ "fill" рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдердкрд┐рдПрдХреЛ рдЫ рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдЯреНрд░рд┐рдЩрд▓рд╛рдИ рдЕрдЧреНрд░рдЧрд╛рдореА рд╢реВрдиреНрдпрд╣рд░реВ рднрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, n=3 рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдиреНрджреЗрд╢(n.to_string(fill: 4)) рдХрд▓ рдЧрд░реНрджрд╛ "004" рд╕реНрдЯреНрд░рд┐рдЩ рдЙрддреНрдкрд╛рджрди рд╣реБрдиреЗрдЫред
  • рдПрдЙрдЯрд╛ рдирдпрд╛рдБ рд▓рдХреНрд╖реНрдп рдердкрд┐рдпреЛ, clang-tidy-fix, рдЬрд╕рд▓реЗ "-fix" рдлреНрд▓реНрдпрд╛рдЧрдХреЛ рд╕рд╛рде clang-tidy рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЪрд▓рд╛рдЙрдиреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрдЫред
  • рд╕рдВрдпреЛрдЬрди рд▓рдХреНрд╖реНрдп ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) рдХреЛ рдкреНрд░рддреНрдпрдп (TARGET_SUFFIX) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЖрджреЗрд╢рдорд╛ рдердкрд┐рдПрдХреЛ рдЫред
  • рдкреНрдпрд╛рдХреЗрдЬ рдХреНрдпрд╛рд╕ (рдЙрдк-рдкрд░рд┐рдпреЛрдЬрдирд╛/рдкреНрдпрд╛рдХреЗрдЬ рдХреНрдпрд╛рд╕) рдХреЛ рдорд╛рд░реНрдЧ рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрди рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ MESON_PACKAGE_CACHE_DIR рдердкрд┐рдпреЛ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдзреЗрд░реИ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рд╕рд╛рдЭрд╛ рдХреНрдпрд╛рд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред
  • рд▓рдЧрд╛рддрд╛рд░ рдХреНрдпрд╛рд╕ рдЦрд╛рд▓реА рдЧрд░реНрди "meson setup --clearcache" рдЖрджреЗрд╢ рдердкрд┐рдпреЛред
  • "рдЖрд╡рд╢реНрдпрдХ" рдХреБрдЮреНрдЬреА рд╢рдмреНрджрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд╕рдмреИ "has_*" рдХрдореНрдкрд╛рдЗрд▓рд░ рдЬрд╛рдБрдЪ рд╡рд┐рдзрд┐рд╣рд░реВрдорд╛ рдердкрд┐рдПрдХреЛ рдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "assert(cc.has_function('some_function'))" рдХреЛ рд╕рдЯреНрдЯрд╛ рддрдкрд╛рдИрдВрд▓реЗ рдЕрдм "cc.has_function('some_function' рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред , рдЖрд╡рд╢реНрдпрдХ: рд╕рддреНрдп)"ред
  • рдирдпрд╛рдБ рдХреБрдЮреНрдЬреА рд╢рдмреНрдж, rust_abi, shared_library(), static_library(), library(), рд░ shared_module() рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдердкрд┐рдПрдХреЛ рдЫ, рдЬреБрди deprecated rust_crate_type рдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди