Meson 1.4 уже вышел и вот его новые возможности

Meson — это программный инструмент для автоматизации создания программного обеспечения. Это бесплатное приложение с открытым исходным кодом, написанное на Python.

Недавно было объявлено о выпуске новой версии системы сборки Meson 1.4 . Эта версия включает улучшенную поддержку некоторых функций модуля FS, а также улучшения совместимости, новые функции и многое другое.

Для тех, кто не знаком с Meson, это система сборки, используемая такими известными проектами, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK. Её основная цель — обеспечить быстрый и удобный процесс сборки. По умолчанию она использует инструментарий Ninja, но также совместима с другими бэкендами, такими как Xcode и Visual Studio.

Эта система включает в себя интегрированный кроссплатформенный менеджер зависимостей , который упрощает создание пакетов для дистрибутивов. Правила компиляции определены на конкретном, понятном языке, что минимизирует время, необходимое для их написания.

Meson поддерживает сборку проектов на нескольких языках, таких как C, C++, Fortran, Java и Rust, и предлагает режим инкрементальной сборки, который перестраивает только те компоненты, на которые были внесены изменения с момента последней сборки. Кроме того, Meson может создавать повторяемые сборки, гарантируя, что при запуске сборки в разных средах будут получены полностью идентичные исполняемые файлы.

Основные новинки Meson 1.4

В новой версии Meson 1.4 добавлена ​​поддержка модуля FS, который теперь поддерживает объекты целей компиляции build_tgt и custom_tgt, а также индекс цели компиляции (custom_idx) в функциях fs.name, fs.parent, fs.replace_suffix и fs.stem.

Еще одно важное изменение в этой новой версии заключается в том, что Meson теперь может считывать версию проекта из подпроектов, созданных на основе CMake. Это гарантирует корректную проверку ограничений версии при доступе к подпроекту CMake.

Кроме того, в функции `compile_ui`, `compile_moc` и preprocessing модулей `qt4`, `qt5` и `qt6` добавлен аргумент `preserve_paths`, позволяющий выбрать опцию построения структуры каталогов для записываемых файлов.

Также следует отметить, что в stldebug была добавлена ​​поддержка Clang при включении debugstl, для объекта env был введен метод unset(), а к объекту File был добавлен метод full_path() для получения полного пути к файлу.

Добавлена ​​поддержка инструмента numpy-config и pkg-config в качестве новых пользовательских зависимостей. Это доступно начиная с NumPy 2.0.0. Поддержка numpy-config будет работать автоматически после установки NumPy. Однако файл pkg-config находится внутри пакетов Python, а это значит, что его нельзя использовать сразу без настройки PKG_CONFIG_PATH.

Среди других существенных изменений в новой версии можно отметить следующие:

  • Возможность управлять проверками утверждений (GLIBCXX_ASSERTIONS) в стандартной библиотеке C++ через конфигурацию ndebug.
  • Добавлен аргумент ключевого слова save_pathsun в функции модуля qt.
  • Теперь можно указать зависимые цели с помощью depend: for compiler.preprocess(). Эти цели должны быть созданы до начала предварительной обработки.
  • Генератор привязкиbindgen теперь поддерживает эвристику Meson для определения файлов заголовков C++.
  • Добавлена ​​возможность переопределить языковые настройки для привязки.
  • Тесты теперь по умолчанию завершаются неудачно после обнаружения ошибок при запуске дезинфицирующих средств, таких как MemorySanitizer.
  • Добавлена ​​поддержка компилятора C/C++ Texas Instruments для семейства ЦП C6000.

Наконец, если вас интересует более подробная информация, вы можете найти ее по следующей ссылке.

Как установить Meson на Linux?

Для тех, кто заинтересован в возможности установить эту систему сборки в своей системе, они могут сделать это, следуя инструкциям, которые мы публикуем ниже.

Они должны знать, что Meson доступен на PyPi, поэтому его можно установить с помощью команды:

pip3 install meson

В качестве примечания вы должны знать, что точная команда для установки pip может различаться в разных системах, поэтому рекомендуется использовать версию pip для Python 3.


Добавить в качестве предпочтительного источника в Google