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.