Meson 0.58 조립 시스템 출시. C 언어로 Meson 구현을 만드는 프로젝트

X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME 및 GTK와 같은 프로젝트를 빌드하는 데 사용되는 Meson 0.58 빌드 시스템의 릴리스가 게시되었습니다. Meson 코드는 Python으로 작성되었으며 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다.

Meson의 주요 개발 목표는 편리함과 사용 편의성이 결합된 고속 조립 공정을 제공하는 것입니다. make 대신 빌드는 기본적으로 Ninja 툴킷을 사용하지만 xcode 및 VisualStudio와 같은 다른 백엔드도 사용할 수 있습니다. 시스템에는 Meson을 사용하여 배포용 패키지를 빌드할 수 있는 내장 다중 플랫폼 종속성 처리기가 있습니다. 조립 규칙은 단순화된 도메인별 언어로 설정되며 사용자가 잘 읽고 이해할 수 있습니다(작성자의 생각에 따르면 개발자는 규칙을 작성하는 데 최소한의 시간을 소비해야 함).

GCC, Clang, Visual Studio 및 기타 컴파일러를 사용하여 Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS 및 Windows에서 크로스 컴파일 및 빌드가 지원됩니다. C, C++, Fortran, Java, Rust 등 다양한 프로그래밍 언어로 프로젝트를 구축할 수 있습니다. 마지막 빌드 이후 변경 사항과 직접 관련된 구성 요소만 다시 빌드되는 증분 빌드 모드가 지원됩니다. Meson은 반복 가능한 빌드를 생성하는 데 사용할 수 있으며, 다른 환경에서 빌드를 실행하면 완전히 동일한 실행 파일이 생성됩니다.

Meson 0.58의 주요 혁신:

  • В языке Meson реализованы встроенные операции форматирования строк. Вместо вызова метода format теперь можно подставлять значения напрямую, например, вместо «‘A string @0@ to be formatted @1@’.format(n, m)» можно указывать сразу «f’A string @n@ to be formatted @m@'».
  • В строковые объекты добавлен метод «replace» для выполнения операции замены одной подстроки на другую, например, «s = s.replace(‘aaa’, ‘bbb’)».
  • Добавлена функция «range(start, stop[, step])» для возврата объекта, который может применяться в цикле «foreach», например «foreach i : range(15)».
  • Реализован метод meson.add_devenv(), позволяющий добавить объект environment() для установки переменных окружения во время использования команды «meson devenv», например, для задания переменной окружения с путём к каталогу с плагинами.
  • Для окружений разработки предложена новая команда «meson devenv -C builddir [<команда>], дающая возможность запустить команду в окружении, настроенном для запуска проектов из сборочного каталога (без установки).
  • По умолчанию прекращена передача параметра «-pipe» при запуске всех поддерживаемых компиляторов.
  • Разрешён вызов meson.add_dist_script() из подпроектов.
  • Предоставлена возможность многократного запуска методов append() и prepend() для одного и того же объекта environment().
  • В функции error() разрешено указание более одного аргумента с разделением пробелом (по аналогии с warning() и message()).
  • Добавлен параметр «—skip-subprojects» для выборочного пропуска установки подпроектов.

Отдельно можно отметить проект Boson, нацеленный на создание переносимой и простой реализации языка сборочных сценариев Meson, написанной на языке Си вместо Python. Проект пока находится на начальном этапе развития и пока не готов для полноценной сборки рабочих проектов. Код распространяется под лицензией GPLv3 (оригинальный Meson на Python поставляется под лицензией Apache 2.0).

출처 : opennet.ru

코멘트를 추가