Запуск новая версия системы сборки Meson 1.0.0, который поставляется с новыми аргументами, а также стабильностью для компиляции проектов в Rust, среди прочего.
Для тех, кто не знает о Meson, они должны знать, что эта система сборки используется для компиляции известных проектов такие как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK.
Основная цель разработки Meson — обеспечить высокую скорость процесса компиляции в сочетании с удобством и простотой использования. Вместо этого в сборке по умолчанию используется Ninja Toolkit, но можно использовать и другие бэкенды, такие как xcode и VisualStudio.
Система имеет встроенный кроссплатформенный обработчик зависимостей что позволяет использовать Meson создавать пакеты для дистрибутивов. Правила компиляции изложены на упрощенном предметно-ориентированном языке, они хорошо читаются и понятны пользователю (по задумке авторов, разработчик должен тратить минимум времени на написание правил).
Se поддерживает кросс-компиляцию и компиляция в Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов.
Возможна сборка проектов на нескольких языках программирования, включая C, C++, Fortran, Java и Rust. Поддерживается режим инкрементной сборки, при котором перестраиваются только компоненты, непосредственно связанные с изменениями, внесенными с момента последней сборки.
Meson можно использовать для создания повторяющихся сборок, когда запуск сборки в разных средах приводит к полностью идентичным исполняемым файлам.
Основные новинки Meson 1.0
В этом новом выпуске Meson 1.0 подчеркивается, что Модуль для сборки проектов на языке Rust объявлен стабильным. Этот модуль используется в проекте Mesa для сборки компонентов, написанных на Rust.
Параметр prefix, поддерживаемый большинством функций проверки компилятора, реализует возможность обработки массивов, отличных от строк.
Еще одно изменение, которое выделяется из этого запуска, заключается в том, что они предлагают новые операторы «в» и «не в» для определения наличия подстроки в строке, Аналогично доступной ранее проверке на вхождение элемента в массив или словарь.
В дополнение к этому мы также можем обнаружить, что добавлена опция «уровень предупреждения = все» для запуска вывода всех доступных предупреждений компилятора (Clang и MSVC используют -Weeverything и /Wall, а GCC включает отдельные предупреждения, примерно соответствующие режиму clang -Weeverything.)
Также стоит отметить, что новый аргумент «–workdir», позволяющий переопределить рабочий каталог. Например, чтобы использовать текущий каталог вместо рабочего каталога.
Метод rust.bindgen реализует возможность обработки аргумента «dependencies» для передачи путей к зависимостям для обработки компилятором, а функция java.generate_native_headers устарела и переименована в java.native_headers, чтобы соответствовать общему стилю именования функций Meson.
С другой стороны, также упоминается, что сейчас при кросс-компиляции среда разработчика устанавливает все переменные среды для хост-машины. Теперь также устанавливает QEMU_LD_PREFIX и значение sys_root кросс-файла, если свойство установлено. Это означает, что кросс-компилируемые исполняемые файлы часто можно запускать прозрачно на машине сборки, например, при кросс-компиляции в aarch64 linux из x86_64 linux.
Наконец, если вы заинтересованы в том, чтобы узнать больше об этом, вы можете ознакомиться с подробностями в по следующей ссылке.
Как установить Meson на Linux?
Для тех, кто заинтересован в возможности установить эту систему сборки в своей системе, они могут сделать это, следуя инструкциям, которые мы публикуем ниже.
Они должны знать, что Meson доступен на PyPi, поэтому его можно установить с помощью команды:
pip3 install meson
В качестве примечания вы должны знать, что точная команда для установки pip может различаться в разных системах, поэтому рекомендуется использовать версию pip для Python 3.