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

được phát hành xây dựng bản phát hành hệ thống Meson 0.51, đượ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à cung cấp được cấp phép theo Apache 2.0.

Mục tiêu chính của việc phát triển Meson là cung cấp tốc độ cao cho quá trình lắp ráp kết hợp với sự tiện lợi và dễ sử dụng. Thay vì tiện ích tạo, bản dựng mặc định sử dụng bộ công cụ Ninja, nhưng cũng có thể sử dụng các chương trình phụ trợ khác, chẳng hạn như xcode và VisualStudio. 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 chỉ định bằng ngôn ngữ dành riêng cho miền được đơn giản hóa, rất dễ đọc và dễ hiểu đối với người dùng (theo dự định 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, 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ỉ các thành phần 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 hệt nhau.

Chính đổi mới Meson 0.51:

  • Đã thêm hỗ trợ để xây dựng minh bạch các dự án hiện có sử dụng tập lệnh xây dựng CMake. Giờ đây, Meson có thể trực tiếp xây dựng các dự án con đơn giản (chẳng hạn như các thư viện đơn lẻ) bằng cách sử dụng mô-đun CMake, tương tự như các dự án con tiêu chuẩn (bao gồm cả các dự án con CMake có thể được đặt trong thư mục dự án con);
  • Đối với tất cả các trình biên dịch đã sử dụng, việc kiểm tra sơ bộ được bao gồm thông qua việc lắp ráp và thực thi các tệp kiểm tra đơn giản (kiểm tra độ chính xác), không giới hạn ở việc kiểm tra các cờ do người dùng chỉ định cho các trình biên dịch chéo (từ giờ trở đi, các trình biên dịch gốc cho nền tảng hiện tại cũng được kiểm tra) .
  • Đã thêm khả năng xác định các tùy chọn dòng lệnh được sử dụng trong quá trình biên dịch chéo, với tính năng ràng buộc bằng cách chỉ định tiền tố nền tảng trước tùy chọn. Trước đây, các tùy chọn dòng lệnh chỉ bao gồm các bản dựng gốc và không thể chỉ định để biên dịch chéo. Các tùy chọn dòng lệnh hiện được áp dụng bất kể bạn đang xây dựng nguyên bản hay biên dịch chéo, đảm bảo rằng các bản dựng gốc và bản dựng chéo tạo ra kết quả giống nhau;
  • Đã thêm khả năng chỉ định cờ “--cross-file” nhiều lần trên dòng lệnh để liệt kê nhiều tệp chéo;
  • Đã thêm hỗ trợ cho trình biên dịch ICL (Trình biên dịch Intel C/C++) cho nền tảng Windows (ICL.EXE và ifort);
  • Đã thêm hỗ trợ bộ công cụ ban đầu cho CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • Phương thức “get_variable” đã được thêm vào đối tượng “dependency”, cho phép bạn lấy giá trị của một biến mà không cần tính đến loại của phần phụ thuộc hiện tại (ví dụ: dep.get_variable(pkg-config : 'var- tên', cmake: 'COP_VAR_NAME));
  • Đã thêm đối số tùy chọn tập hợp mục tiêu mới, "link_ngôn ngữ", để chỉ định rõ ràng ngôn ngữ được sử dụng khi gọi trình liên kết. Ví dụ: một chương trình Fortran chính có thể gọi mã C/C++, mã này sẽ tự động chọn C/C++ khi sử dụng trình liên kết Fortran;
  • Việc xử lý các cờ tiền xử lý CPPFLAGS đã được thay đổi. Trong khi trước đây Meson đã lưu trữ riêng CPPFLAGS và các cờ biên dịch dành riêng cho ngôn ngữ (CFLAGS, CXXFLAGS), thì giờ đây chúng được xử lý không thể tách rời và các cờ được liệt kê trong CPPFLAGS được sử dụng làm nguồn cờ biên dịch khác cho các ngôn ngữ hỗ trợ chúng;
  • Hiện tại, đầu ra của custom_target và custom_target[i] có thể được sử dụng làm đối số trong các hoạt động link_with và link_whole;
  • Trình tạo hiện có khả năng chỉ định các phần phụ thuộc bổ sung bằng cách sử dụng tùy chọn “phụ thuộc” (ví dụ: trình tạo (chương trình_runner, đầu ra: ['@[email được bảo vệ]'], phụ thuộc: exe));
  • Đã thêm tùy chọn tĩnh vào find_library để cho phép tìm kiếm chỉ bao gồm các thư viện được liên kết tĩnh;
  • Đối với python.find_installation, khả năng xác định sự hiện diện của một mô-đun Python nhất định cho một phiên bản Python cụ thể đã được thêm vào;
  • Đã thêm mô-đun mới không ổn định-kconfig để phân tích tệp kconfig;
  • Đã thêm lệnh mới “dự án con foreach”, lệnh này nhận lệnh có đối số và chạy lệnh đó trong tất cả các thư mục dự án con;

Nguồn: opennet.ru

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