Ra mắt hệ thống lắp ráp Meson 0.58. Dự án xây dựng ứng dụng Meson bằng ngôn ngữ C

Việc phát hành hệ thống xây dựng Meson 0.58 đã đượ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 0.58:

  • Meson có sẵn các thao tác định dạng chuỗi. Thay vì gọi phương thức định dạng, giờ đây bạn có thể thay thế trực tiếp các giá trị, ví dụ: thay vì “'Một chuỗi @0@ được định dạng @1@'.format(n, m)", bạn có thể chỉ định ngay "f' Một chuỗi @n@ được định dạng @ m@'".
  • Một phương thức “thay thế” đã được thêm vào các đối tượng chuỗi để thực hiện thao tác thay thế một chuỗi con bằng một chuỗi con khác, ví dụ: “s = s.replace('aaa', 'bbb')."
  • Đã thêm hàm "range(start, stop[, step])" để trả về một đối tượng có thể được sử dụng trong vòng lặp foreach, chẳng hạn như "foreach i : range(15)".
  • Phương thức meson.add_devenv() đã được triển khai, cho phép bạn thêm một đối tượng môi trường() để đặt các biến môi trường khi sử dụng lệnh "meson devenv", ví dụ: để đặt một biến môi trường có đường dẫn đến thư mục plugin.
  • Đối với môi trường phát triển, một lệnh mới đã được đề xuất: “meson devenv -C builddir [], cho phép chạy lệnh trong môi trường được định cấu hình để khởi chạy dự án từ thư mục bản dựng (không cần cài đặt).
  • Theo mặc định, tùy chọn "-pipe" không được chuyển khi chạy tất cả các trình biên dịch được hỗ trợ.
  • Cho phép gọi meson.add_dist_script() từ các dự án con.
  • Cung cấp khả năng chạy các phương thức add() và prepend() nhiều lần trên cùng một đối tượng môi trường().
  • Hàm error() cho phép nhiều đối số, cách nhau bằng dấu cách (tương tự như cảnh báo() và tin nhắn()).
  • Đã thêm tùy chọn "--skip-subprojects" để bỏ qua việc cài đặt các dự án con một cách có chọn lọc.

Riêng biệt, chúng ta có thể lưu ý đến dự án Boson, nhằm mục đích tạo ra một triển khai đơn giản và di động cho ngôn ngữ tập lệnh hợp ngữ Meson, được viết bằng C thay vì Python. Dự án vẫn đang ở giai đoạn phát triển ban đầu và chưa sẵn sàng để lắp ráp đầy đủ các dự án đang hoạt động. Mã này được cấp phép theo GPLv3 (Python Meson gốc được cấp phép theo giấy phép Apache 2.0).

Nguồn: opennet.ru

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