Выпуск сборочной системы 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:

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.