Release of assembly system Meson 0.58. Project for creation of implementation of MESON in SI language

Published Release assembly system meson 0.58 , which is used to build projects such as X.org Server, Mesa, Lighttpd, Systemd, Gstreamer, Wayland, Gnome and GTK. Meson code is written in Python and comes under the Apache 2.0 license.

The key goal of the development of Meson is to ensure high speed assembly process in combination With the convenience and ease of use. Instead of the MAKE utility when assembling the default toolkit, Ninja is used, but it is possible to use other backends such as Xcode and VisualStudio. A multi-platform dependency handler is built into the system, which allows using Meson to build packets for distributions. The assembly rules are set on a simplified subject-oriented language, differ in good readability and understandable to the user (on the idea of ​​the authors, the developer must spend a minimum of time to write rules).

supported Cross compilation and assembly in Linux, Illumos / Solaris, FreeBSD, NetBSD, Dragonfly BSD, Haiku, MacOS and Windows using GCC, Clang, Visual Studio and other compilers. Build projects in various programming languages, including C, C ++, Fortran, Java and Rust. The incremental assembly mode is supported, in which only components are reassembled directly related to changes made from the moment of past assembly. Meson can be used to form repeated assemblies at which the launch of the assembly in different environments leads to the generation of fully identical executable files.

Basic innovations meson 0.58:

  • in Meson language implemented embedded row formatting operations. Instead of calling the Format method, you can now substitute the values ​​directly, for example, instead of “‘a string @ 0 @ to be formatted @ 1 @’. Format (N, M)” can be specified immediately “F’a String @ n @ to be formatted @ M @ ‘”.
  • In the string objects, the Replace method has been added to perform a replacement operation of one substring to another, for example, “S = S.REPLACE (‘AAA’, ‘BBB’)”.
  • Added function “Range (Start, Stop [ Step])” to return an object that can be used in the “foreach” cycle, for example “Foreach I: Range (15)”.
  • MESON.ADD_DEVENV () method is implemented, which allows you to add an Environment () object to set the environment variables while using the MESON DEVENV command, for example, to specify the environment variable with a directory with plugins.
  • For the development environments, a new command “Meson Devenv -c Builddir [], which gives you the ability to run a command surrounded to start projects from the assembly directory (without installation).
  • The “-pipe” parameter is terminated by default when you start all supported compilers.
  • MESON.Add_dist_Script () call is allowed from subprojects.
  • is given the possibility of repeated launch of the APPEND () and Prepend () methods for the same ENVIRONMENT () object.
/Media reports.