Dự án meson đã phát hành một phiên bản 1.11.0Việc phát hành đã diễn ra Tháng Tư 13 2026 năm và tiếp tục phát triển một trong những hệ thống biên dịch miễn phí nổi bật nhất được sử dụng trong nhiều lĩnh vực. Linux và các dự án đa nền tảng.
Meson từ trước đến nay luôn chú trọng đến tốc độ cao, mô tả quá trình biên dịch dễ dự đoán và ngôn ngữ DSL tương đối đơn giản, và phiên bản mới tập trung chủ yếu vào những cải tiến thiết thực cho các tình huống phát triển thực tế.
Những thay đổi chính trong Meson 1.11.0:
- Hỗ trợ phân tích cú pháp Cargo.toml cấp cao nhất thông qua workspace() trong mô-đun Rust;
- Hỗ trợ cho link_args, add_project_link_arguments() và add_global_link_arguments() trong Rust;
- Phương thức compiler_target() mới trong mô-đun Rust;
- Cython không còn yêu cầu phải bao gồm C hoặc C++ một cách rõ ràng nữa;
- Tham số mới link_early_args cho phép truyền các tùy chọn sớm hơn cho trình liên kết;
- meson dist đã nhận được hỗ trợ cho -j/--num-processes;
- Các lệnh install_man và install_headers hiện đã hỗ trợ install_tag;
- Các tham số liên kết khử trùng lặp OpenMP;
- Tự động phát hiện QT_DEBUG và QT_NO_DEBUG;
- những cải tiến cho Windows- môi trường và rc.exe.
Một trong những thay đổi đáng chú ý nhất liên quan đến... RustMeson 1.11.0 hiện phân tích cú pháp tệp Cargo.toml cấp cao nhất khi gọi hàm workspace() trong một mô-đun Rust, cho phép giải quyết các phụ thuộc và cờ tính năng theo cấu hình không gian làm việc Cargo. Điều này cải thiện đáng kể khả năng tích hợp với các dự án Rust: đối tượng không gian làm việc được trả về cho phép truy xuất thông tin về phụ thuộc và tính năng cho các dự án con Cargo, cũng như các mục tiêu xây dựng được mô tả trong Cargo.toml.
Các nhà phát triển cũng đã mở rộng hỗ trợ của Meson cho Rust trong quá trình liên kết. Bắt đầu từ phiên bản 1.11.0, các hàm add_project_link_arguments(), add_global_link_arguments() và link_args được hỗ trợ cho Rust, được truyền qua rustc với trình bao bọc -Clink-arg=. Ngoài ra, mô-đun Rust hiện có phương thức compiler_target(), trả về bộ ba mục tiêu của trình biên dịch, đơn giản hóa việc chuyển đổi các tập lệnh trước đây được liên kết với các biến Cargo như TARGET và HOST.
Một thay đổi thực tế khác ảnh hưởng đến CythonGiờ đây bạn không cần phải kích hoạt ngôn ngữ một cách rõ ràng để làm việc với nó nữa. C hoặc C + +Meson quy định rằng các ngôn ngữ này chỉ được thêm vào như một chi tiết triển khai nội bộ của Cython, chứ không phải là một cách hoàn chỉnh để xây dựng các mục tiêu C/C++ gốc thông thường song song. Đối với người dùng, điều này chủ yếu đơn giản hóa cấu hình xây dựng.
Bản phát hành này cũng bao gồm các cải tiến được thiết kế để cung cấp khả năng kiểm soát tốt hơn đối với việc liên kết và cài đặt. Các mục tiêu liên kết hiện có đối số link_early_args mới, cho phép bạn truyền các tùy chọn cho trình liên kết trước các đối tượng và thư viện — điều này rất quan trọng đối với các tùy chọn nhạy cảm về thứ tự như -u hoặc --defsym. Install_man và install_headers cũng được bổ sung hỗ trợ install_tag, cho phép quản lý linh hoạt hơn các tệp đã cài đặt thông qua meson install --tags.
Việc phát triển các công cụ hỗ trợ xây dựng cũng đáng chú ý. Lệnh `meson dist` hiện chấp nhận `-j` và `--num-processes`, cho phép bạn kiểm soát số lượng tiến trình song song khi kiểm tra bản phân phối. Đồng thời, Meson đã bắt đầu loại bỏ các đối số liên kết OpenMP trùng lặp, chẳng hạn như `-fopenmp` và `-qopenmp`, và các mô-đun Qt hiện tự động phát hiện các macro `QT_DEBUG` hoặc `QT_NO_DEBUG` tùy thuộc vào chế độ xây dựng, giúp hành vi gần giống với `qmake` hơn.
Ngoài ra còn có những thay đổi về khả năng tương thích với các kịch bản nền tảng cụ thể. Trong mô-đun external_project dành cho Windows Cygpath hiện được sử dụng để chuyển đổi chính xác các đường dẫn sang định dạng Unix khi chạy các tập lệnh cấu hình trong các môi trường như MSYS2 và Cygwin. Ngoài ra, windows.compile_resources giờ đây có thể theo dõi các thay đổi tiêu đề khi sử dụng rc.exe, khắc phục một hạn chế lâu nay của trình biên dịch tài nguyên này.
Nói chung, Meson 1.11.0 Phiên bản này mang đến cảm giác không có gì đột phá, nhưng lại sở hữu một số lượng đáng kể các cải tiến kỹ thuật. Mục tiêu chính của phiên bản này là làm cho hệ thống xây dựng thân thiện hơn với người dùng trong các dự án đa ngôn ngữ hiện đại, đặc biệt là những dự án kết hợp Rust, Cython, Qt và các thành phần C/C++ truyền thống. Đối với các nhà phát triển, đây không phải là lý do để viết lại toàn bộ cơ sở hạ tầng, mà chỉ là một bản cập nhật cẩn thận nhưng hữu ích cho một công cụ vốn đã là một phần không thể thiếu trong hệ sinh thái mã nguồn mở hàng ngày.
Nguồn: linux.org.ru
