Bản phát hành hệ thống xây dựng Meson 1.0

Việc phát hành hệ thống xây dựng Meson 1.0.0 đã được xuất bản, được sử dụng để xây dựng các dự án như X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME và GTK. Mã Meson được viết bằng Python và được cấp phép theo giấy phép Apache 2.0.

Mục tiêu phát triển chính của Meson là cung cấp quy trình lắp ráp tốc độ cao kết hợp với sự tiện lợi và dễ sử dụng. Thay vì thực hiện, bản dựng sử dụng bộ công cụ Ninja theo mặc định, nhưng các chương trình phụ trợ khác như xcode và VisualStudio cũng có thể được sử dụng. Hệ thống này có trình xử lý phụ thuộc đa nền tảng tích hợp sẵn cho phép bạn sử dụng Meson để xây dựng các gói cho bản phân phối. Các quy tắc hội được đặt bằng ngôn ngữ dành riêng cho miền được đơn giản hóa, chúng dễ đọc và dễ hiểu đối với người dùng (theo ý tưởng của tác giả, nhà phát triển nên dành tối thiểu thời gian để viết các quy tắc).

Hỗ trợ biên dịch chéo và xây dựng trên Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS và Windows bằng GCC, Clang, Visual Studio và các trình biên dịch khác. Có thể xây dựng các dự án bằng nhiều ngôn ngữ lập trình khác nhau, bao gồm C, C++, Fortran, Java và Rust. Chế độ xây dựng tăng dần được hỗ trợ, trong đó chỉ những thành phần có liên quan trực tiếp đến những thay đổi được thực hiện kể từ lần xây dựng cuối cùng mới được xây dựng lại. Meson có thể được sử dụng để tạo các bản dựng có thể lặp lại, trong đó việc chạy bản dựng trong các môi trường khác nhau sẽ tạo ra các tệp thực thi hoàn toàn giống nhau.

Những cải tiến chính của Meson 1.0:

  • Объявлен стабильным модуль для сборки проектов на языке Rust. Данный модуль используется в проекте Mesa для сборки компонентов, написанных на Rust.
  • В параметре prefix, поддерживаемом в большинстве функций проверки компилятора, реализована возможность обработки массивов помимо строк. Например, теперь можно указывать: cc.check_header(‘GL/wglew.h’, prefix : [‘#include <windows.h>’, ‘#include <GL/glew.h>’])
  • Добавлен новый аргумент «—workdir», позволяющий переопределить рабочий каталог. Например, для использования текущего каталога вместо рабочего можно запустить: meson devenv -C builddir —workdir .
  • Предложены новые операторы «in» и «not in» для определения вхождения в строку подстроки по аналогии с ранее доступной проверкой вхождения элемента в массив или словарь. Например: fs = import(‘fs’) if ‘something’ in fs.read(‘somefile’) # True endif
  • Добавлена опция «warning-level=everything», включающая вывод всех имеющихся предупреждений компилятора (в clang и MSVC использует -Weverything и /Wall, а в GCC раздельно включаются предупреждения, примерно соответствующие режиму -Weverything вclang).
  • В методе rust.bindgen реализована возможность обработки аргумента «dependencies» для передачи путей к зависимостям, которые должны быть обработаны компилятором.
  • Объявлена устаревшей функция java.generate_native_headers, которая переименована в java.native_headers для соответствия общему стилю наименования функций, принятому в Meson.

Nguồn: opennet.ru

Thêm một lời nhận xét