Вышло обновление сборщика проектов Meson 1.7.0
Совсем недавно появилась свежая версия инструмента для сборки под названием Meson 1.7.0. Его, к слову, довольно часто берут на вооружение при работе с такими популярными разработками, как X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK. Базируется этот инструмент на языке Python, который, это очевидно, хорошо прижился в подобных штуках. А сам Meson распространяется под довольно либеральной лицензией Apache 2.0.
Итак, Meson выгодно выделяет себя среди собратьев за счёт того, что позволяет работать быстро, ну или, по крайней мере, достаточно бодро. Он предлагает разные удобные фишки, которые помогают, если честно, проще подходить к созданию проектов. Взамен привычного, но иногда поднадоевшего make тут фигурирует куда более шустрое решение — Ninja. Однако, что немного неожиданно, с IDE вроде Xcode или Visual Studio тоже можно нормально устраиваться. Так как основная задача Meson — сделать всё максимально комфортным в настройке и работе, сообщество разработчиков оценило эту штуку на ура. Пожалуй, самый интересный её пункт — это то, что она довольно успешно экономит время на процессе сборки и не вредит гибкости и возможностям.
Платформы и компиляторы, которые в теме
Meson неплохо работает со множеством платформ, включая Linux, Illumos/Solaris, разнообразные BSD-системы (FreeBSD, NetBSD, DragonFly BSD), Haiku, macOS, ну и Windows, конечно. Ещё, что любопытно, он ладит с такими компиляторами, как GCC, Clang, Visual Studio и рядом других популярных ребят. Что до языков программирования, тут у вас есть выбор довольно солидный — C, C++, Fortran, Java, D и даже модный Rust. Кроме того, можно сказать, что инструмент в некотором смысле полезен для всякой разработки, где требуется соединять кусочки, написанные на разных языках. А ещё тут предусмотрели возможность работать с проектами, где сборка должна происходить под разные платформы. Удобно, согласитесь.
Что поменяли или добавили в версии 1.7.0
В общем, разберём, что нового принёс этот апдейт:
- Добавили такую штуку, как «dependency(‘atomic’)», которая помогает тем, кто возится с библиотекой атомарных операций для C++.
- Появилась экспериментальная версия ассемблера «Linear Asm», который вроде как подходит для процессоров TI C6000.
- Теперь внедрили поддержку очередной версии Rust — 2024 (rust_std=2024), и она будет актуальной начиная с релиза Rust 1.85.0.
- Meson можно запускать с новым инструментом TASKING VX-Toolset, если работаете с процессорами Tricore.
- Подшаманили взаимодействие с Clippy — это инструмент, который помогает рыться в коде на Rust, чтобы находить всякие недочёты.
- Для тех, кто использует Cargo, завезли фишку с настройкой зависимостей и параметров сборки прямо через анализ синтаксиса (AST). Это упрощает работу с кодом, прямо управляя параметрами через Meson, что, согласитесь, иногда сберегает нервы.
- В модуль *external_project* встроили возможность легко определять переменные PATH и LD_LIBRARY_PATH для внешних проектов, так что всё стало чуть предсказуемее и комфортнее настроено.
- Если брать команду «format», то теперь с помощью нового параметра «stdin» можно форматировать код, принимая данные прямо из стандартного ввода.
- «meson test» наконец научился запускаться без предварительного создания всего и вся — тесты стартуют сразу, а собранные части остаются актуальными без лишних телодвижений.
- Функция vcs_tag() обзавелась опциями для управления всякими моментами, связанными с установкой: «install», «install_dir», «install_tag» и «install_mode». Эти мелочи делают систему настройки чуть более оживлённой.
- Появилась переменная окружения MESON_NUM_PROCESSES. Она позволяет регулировать число процессов, которые активны, будь то при использовании Ninja или других инструментах вроде clang-tidy, clang-format или clippy. Это всё добавляет контролируемости и зрелости инструменту.
Если обобщить, релиз добавил несколько интересных возможностей, от которых разработчики, скорее всего, будут в восторге. Так что, если вдруг не сталкивались с Meson, это подходящий момент попробовать себя в деле. Или же хотя бы покрутить, что он из себя представляет.