Новости и события » Hi-Tech » Выпуск сборочной системы Meson 0.49.0

Выпуск сборочной системы Meson 0.49.0

Представлен релиз сборочной системы Meson 0.49, которая используется для сборки таких проектов, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, GNOME и GTK+. Вчера о поддержке Meson объявили разработчики Wayland и композитного сервера Weston (поддержку autotools планируют прекратить в течение следующего года). Код Meson написан на языке Python и поставляется под лицензией Apache 2.0.

Ключевыми целями развития Meson является обеспечение высокой скорости сборочого процесса в сочетании с удобством и простотой использования. Вместо утилиты make при сборке применяется инструментарий Ninja. В систему встроен многоплатформенный обработчик зависимостей, позволяющий использовать Meson для сборки пакетов для дистрибутивов. Правила сборки задаются на упрощенном предметно-ориентированном языке, отличаются хорошей читаемостью и понятны пользователю (по задумке авторов разработчик должен тратить минимум времени на написание правил).

Поддерживается кросс-компиляция и сборка в Linux, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов. Возможна сборка проектов на различных языках программирования, включая C, C++, Fortran, Java и Rust. Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесенными с моментам прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.

Основные новшества, появившиеся в выпуске Meson 0.49:

  • При определении зависимости dependency('libgcrypt') в случае отсутствия pkg-config теперь выполняется поиск файлов libgcrypt-config;
  • Добавлено новое ключевое слово "section", применимое к сборочным опциям, которое позволяет интегрированным средам разработки группировать опции по аналогии с командой "meson configure". В "section" допустимо указания следующих значений: core, backend, base, compiler, directory, user, test;
  • Добавлена поддержка кросс-компиляции для чипов Renesas RX, используя компилятор CC-RX;
  • В объект "compiler" добавлен метод get_argument_syntax для проверки поддержки компилятором расширенного синтаксиса gcc и msvc;
  • Обеспечена возможность выполнения команды "meson introspect --projectinfo " без наличия настроенного сборочного каталога;
  • Добавлена возможность передачи аргументов в функции и методы в форме словарей (ассоциативных массивов);
  • В циклы foreach добавлена поддержка ключевых слов break и continue;
  • Добавлен оператор "/" для соединения путей (вместо join_paths('foo', 'bar') теперь можно указывать 'foo' / 'bar');
  • Добавлена опция "b_pie" и ключевое слово "pie" для формирования исполняемых файлов в режиме PIE (position-independent executables);
  • Реализованы новые команды: "meson subprojects download" (загрузка субпроекта), "meson subprojects update" (обновление всех субпроектов) и "meson subprojects checkout" для выполнения операции checkout или создания ветки во всех Git-субпроектах.

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

Вверх