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

Việc phát hành hệ thống xây dựng Meson 1.1.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.1:

  • Đối số "objects:" mới đã được thêm vào khai báo_dependency() để đính kèm trực tiếp các đối tượng vào tệp thực thi dưới dạng phụ thuộc nội bộ không yêu cầu sử dụng link_who.
  • Lệnh "meson devenv -dump" hiện có tùy chọn chỉ định một tệp để ghi các biến môi trường thay vì in nó ra đầu ra tiêu chuẩn.
  • Đã thêm các phương thức FeatureOption.enable_if và FeatureOption.disable_if để giúp tạo các điều kiện chuẩn bị truyền tham số cho hàm dependency() dễ dàng hơn. opt = get_option('feature').disable_if(not foo, error_message : 'Không thể bật tính năng khi foo cũng không được bật') dep = dependency('foo', bắt buộc : opt)
  • Cho phép chuyển các đối tượng được tạo làm đối số cho “đối tượng:”.
  • Chức năng dự án hiện hỗ trợ cài đặt các tệp có thông tin về giấy phép dự án.
  • Chạy "sudo meson install" đảm bảo rằng các đặc quyền được đặt lại trong quá trình xây dựng lại nền tảng đích.
  • Lệnh "meson install" cung cấp khả năng chỉ định một trình xử lý riêng để lấy quyền root (ví dụ: bạn có thể chọn polkit, sudo, opendoas hoặc $MESON_ROOT_CMD). Chạy "cài đặt meson" ở chế độ không tương tác không còn cố gắng nâng cấp đặc quyền nữa.
  • Đã thêm hỗ trợ cho các tùy chọn đọc từ tệp meson.options thay vì meson_options.txt.
  • Việc chuyển hướng thông tin về tiến trình xem xét nội tâm đối với stderr được cung cấp.
  • Đã thêm phần phụ trợ "none" mới (--backend=none) để tạo các dự án chỉ có quy tắc cài đặt và không có quy tắc xây dựng.
  • Đã thêm một phần phụ thuộc mới pybind11, cho phép phần phụ thuộc ('pybind11') hoạt động với pkg-config và cmake mà không cần sử dụng tập lệnh pybind11-config.
  • Cho phép tùy chọn "--reconfigure" và "--wipe" (meson setup --reconfigure builddir và meson setup --wipe builddir ) với một builddir trống.
  • Đã thêm hỗ trợ cho từ khóa dry_run vào meson.add_install_script() để cho phép chạy tập lệnh cài đặt của riêng bạn khi gọi "meson install --dry-run".

Nguồn: opennet.ru

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