Phát hành công cụ xây dựng Qbs 1.21 và bắt đầu thử nghiệm Qt 6.3

Bản phát hành công cụ xây dựng Qbs 1.21 đã được công bố. Đây là bản phát hành thứ tám kể từ khi Công ty Qt rời bỏ việc phát triển dự án, được chuẩn bị bởi cộng đồng quan tâm đến việc tiếp tục phát triển Qbs. Để xây dựng Qbs, Qt được yêu cầu trong số các phần phụ thuộc, mặc dù bản thân Qbs được thiết kế để tổ chức việc lắp ráp bất kỳ dự án nào. Qbs sử dụng phiên bản đơn giản của ngôn ngữ QML để xác định tập lệnh xây dựng dự án, cho phép bạn xác định các quy tắc xây dựng khá linh hoạt có thể kết nối các mô-đun bên ngoài, sử dụng các hàm JavaScript và tạo quy tắc xây dựng tùy chỉnh.

Ngôn ngữ kịch bản được sử dụng trong Qbs được điều chỉnh để tự động hóa việc tạo và phân tích cú pháp các tập lệnh xây dựng bằng IDE. Ngoài ra, Qbs không tạo tệp tạo tệp và chính nó, không có trung gian như tiện ích tạo, kiểm soát việc khởi chạy trình biên dịch và trình liên kết, tối ưu hóa quy trình xây dựng dựa trên biểu đồ chi tiết của tất cả các phụ thuộc. Sự hiện diện của dữ liệu ban đầu về cấu trúc và các phụ thuộc trong dự án cho phép bạn thực hiện song song hiệu quả việc thực hiện các hoạt động trong một số luồng. Đối với các dự án lớn bao gồm một số lượng lớn tệp và thư mục con, hiệu suất của quá trình xây dựng lại bằng Qbs có thể vượt trội hơn nhiều lần so với thực hiện - quá trình xây dựng lại gần như tức thời và không khiến nhà phát triển mất thời gian chờ đợi.

Nhớ lại năm 2018, Công ty Qt đã quyết định ngừng phát triển Qbs. Qbs được phát triển để thay thế cho qmake, nhưng cuối cùng người ta quyết định sử dụng CMake làm hệ thống xây dựng chính cho Qt về lâu dài. Sự phát triển của Qbs hiện đã tiếp tục như một dự án độc lập được hỗ trợ bởi lực lượng cộng đồng và các nhà phát triển quan tâm. Cơ sở hạ tầng của Công ty Qt tiếp tục được sử dụng để phát triển.

Những cải tiến chính trong Qbs 1.21:

  • Cơ chế cung cấp mô-đun (trình tạo mô-đun) đã được thiết kế lại. Đối với các khung như Qt và Boost, giờ đây có thể sử dụng nhiều nhà cung cấp, chỉ định nhà cung cấp nào sẽ chạy bằng thuộc tính qbsModuleProviders mới và chỉ định mức độ ưu tiên cho việc chọn mô-đun được tạo bởi các nhà cung cấp khác nhau. Ví dụ: bạn có thể chỉ định hai nhà cung cấp "Qt" và "qbspkgconfig", nhà cung cấp đầu tiên sẽ cố gắng sử dụng cài đặt Qt của người dùng (thông qua tìm kiếm qmake) và nếu không tìm thấy cài đặt nào như vậy, nhà cung cấp thứ hai sẽ cố gắng sử dụng Qt do hệ thống cung cấp (thông qua lệnh gọi tới pkg-config): CppApplication { Phụ thuộc { tên: "Qt.core" } tệp: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Đã thêm nhà cung cấp "qbspkgconfig", thay thế nhà cung cấp mô-đun "dự phòng", đã cố gắng tạo mô-đun bằng pkg-config nếu mô-đun được yêu cầu không được tạo bởi các nhà cung cấp khác. Không giống như “dự phòng”, “qbspkgconfig” thay vì gọi tiện ích pkg-config, hãy sử dụng thư viện C++ tích hợp để đọc trực tiếp các tệp “.pc”, giúp tăng tốc công việc và cung cấp thông tin bổ sung về các phụ thuộc gói không có sẵn khi gọi tiện ích pkg-config.
  • Đã thêm hỗ trợ cho đặc tả C++23, xác định tiêu chuẩn C++ trong tương lai.
  • Đã thêm hỗ trợ cho kiến ​​trúc Elbrus E2K cho bộ công cụ GCC.
  • Đối với nền tảng Android, thuộc tính Android.ndk.buildId đã được thêm để ghi đè giá trị mặc định cho cờ liên kết "--build-id".
  • Các mô-đun capnproto và protobuf triển khai khả năng sử dụng thời gian chạy do nhà cung cấp qbspkgconfig cung cấp.
  • Đã giải quyết các vấn đề về theo dõi thay đổi trong tệp nguồn trên FreeBSD do mất mili giây khi ước tính thời gian sửa đổi tệp.
  • Đã thêm thuộc tính ConanfileProbe.verbose để giúp gỡ lỗi các dự án sử dụng trình quản lý gói Conan dễ dàng hơn.

Ngoài ra, chúng ta có thể lưu ý việc bắt đầu thử nghiệm alpha của khung Qt 6.3, triển khai mô-đun mới “Máy chủ ngôn ngữ Qt” với sự hỗ trợ cho Máy chủ ngôn ngữ và giao thức JsonRpc 2.0, một phần lớn các chức năng mới đã được thêm vào Qt Core mô-đun và loại QML MessageDialog đã được triển khai trong mô-đun Hộp thoại nhanh Qt. Để sử dụng các hộp thoại do nền tảng cung cấp, máy chủ Qt Shell tổng hợp và API để tạo tiện ích mở rộng shell tùy chỉnh của riêng bạn đã được thêm vào mô-đun Qt Wayland Compositor .

Mô-đun Qt QML cung cấp triển khai trình biên dịch qmltc (trình biên dịch kiểu QML), cho phép bạn biên dịch các cấu trúc đối tượng QML thành các lớp trong C++. Đối với người dùng thương mại của Qt 6.3, việc thử nghiệm sản phẩm Trình biên dịch nhanh Qt đã bắt đầu, ngoài Trình biên dịch loại QML nêu trên, còn có Trình biên dịch tập lệnh QML, cho phép bạn biên dịch các hàm và biểu thức QML thành mã C++. Cần lưu ý rằng việc sử dụng Qt Quick Compiler sẽ mang lại hiệu suất của các chương trình dựa trên QML gần hơn với các chương trình gốc; đặc biệt, khi biên dịch các tiện ích mở rộng, thời gian khởi động và thực thi sẽ giảm khoảng 30% so với sử dụng phiên bản thông dịch .

Nguồn: opennet.ru

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