Rilis alat pembangunan Qbs 1.21 dan dimulainya pengujian Qt 6.3

Rilis alat build Qbs 1.21 telah diumumkan. Ini merupakan rilis kedelapan sejak Perusahaan Qt meninggalkan pengembangan proyek yang disiapkan oleh komunitas yang tertarik untuk melanjutkan pengembangan Qbs. Untuk membangun Qbs, Qt diperlukan di antara dependensi, meskipun Qbs sendiri dirancang untuk mengatur perakitan proyek apa pun. Qbs menggunakan versi bahasa QML yang disederhanakan untuk mendefinisikan skrip pembangunan proyek, yang memungkinkan Anda menentukan aturan pembangunan yang cukup fleksibel yang dapat menghubungkan modul eksternal, menggunakan fungsi JavaScript, dan membuat aturan pembangunan khusus.

Bahasa skrip yang digunakan di Qbs diadaptasi untuk mengotomatiskan pembuatan dan penguraian skrip build dengan lingkungan pengembangan terintegrasi. Selain itu, Qbs tidak menghasilkan makefile, tetapi dirinya sendiri, tanpa perantara seperti utilitas make, mengontrol peluncuran kompiler dan linker, mengoptimalkan proses pembangunan berdasarkan grafik terperinci dari semua dependensi. Kehadiran data awal tentang struktur dan ketergantungan dalam proyek memungkinkan Anda untuk secara efektif memparalelkan pelaksanaan operasi di beberapa thread. Untuk proyek besar yang terdiri dari sejumlah besar file dan subdirektori, kinerja pembangunan kembali menggunakan Qbs bisa beberapa kali lebih cepat daripada pembuatan ulang - pembangunan kembali dilakukan hampir seketika dan tidak memaksa pengembang membuang waktu menunggu.

Ingatlah bahwa pada tahun 2018 Perusahaan Qt memutuskan untuk berhenti mengembangkan Qbs. Qbs dikembangkan sebagai pengganti qmake, namun pada akhirnya diputuskan untuk menggunakan CMake sebagai sistem build utama untuk Qt dalam jangka panjang. Pengembangan Qbs kini berlanjut sebagai proyek independen yang didukung oleh komunitas dan pengembang yang berminat. Infrastruktur Perusahaan Qt terus digunakan untuk pembangunan.

Inovasi utama di Qbs 1.21:

  • Mekanisme penyedia modul (module generator) telah didesain ulang. Untuk kerangka kerja seperti Qt dan Boost, kini dimungkinkan untuk menggunakan lebih dari satu penyedia, menentukan penyedia mana yang akan dijalankan menggunakan properti qbsModuleProviders baru, dan menentukan prioritas untuk memilih modul yang dihasilkan oleh penyedia berbeda. Misalnya, Anda dapat menentukan dua penyedia "Qt" dan "qbspkgconfig", yang pertama akan mencoba menggunakan instalasi Qt pengguna (melalui pencarian qmake), dan jika instalasi tersebut tidak ditemukan, penyedia kedua akan mencoba menggunakan Qt yang disediakan oleh sistem (melalui panggilan ke pkg-config): CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Menambahkan penyedia "qbspkgconfig", yang menggantikan penyedia modul "fallback", yang mencoba membuat modul menggunakan pkg-config jika modul yang diminta tidak dibuat oleh penyedia lain. Tidak seperti β€œfallback”, β€œqbspkgconfig” alih-alih memanggil utilitas pkg-config menggunakan pustaka C++ bawaan untuk langsung membaca file β€œ.pc”, yang mempercepat pekerjaan dan memberikan informasi tambahan tentang dependensi paket yang tidak tersedia saat memanggil utilitas pkg-config.
  • Menambahkan dukungan untuk spesifikasi C++23, yang mendefinisikan standar C++ masa depan.
  • Menambahkan dukungan untuk arsitektur Elbrus E2K untuk toolkit GCC.
  • Untuk platform Android, properti Android.ndk.buildId telah ditambahkan untuk mengganti nilai default untuk flag linker "--build-id".
  • Modul capnproto dan protobuf mengimplementasikan kemampuan untuk menggunakan runtime yang disediakan oleh penyedia qbspkgconfig.
  • Menyelesaikan masalah pelacakan perubahan pada file sumber di FreeBSD karena hilangnya milidetik saat memperkirakan waktu modifikasi file.
  • Menambahkan properti ConanfileProbe.verbose untuk mempermudah debug proyek yang menggunakan manajer paket Conan.

Selain itu, kami dapat mencatat awal pengujian alfa kerangka Qt 6.3, yang mengimplementasikan modul baru "Server Bahasa Qt" dengan dukungan untuk Server Bahasa dan protokol JSONRpc 2.0, sebagian besar fungsi baru telah ditambahkan ke Qt Core modul, dan tipe QML MessageDialog telah diimplementasikan dalam modul Qt Quick Dialogs. Untuk menggunakan kotak dialog yang disediakan oleh platform, server komposit Qt Shell dan API untuk membuat ekstensi shell kustom Anda sendiri telah ditambahkan ke modul Qt Wayland Compositor .

Modul Qt QML menawarkan implementasi kompiler qmltc (kompiler tipe QML), yang memungkinkan Anda mengkompilasi struktur objek QML ke dalam kelas di C++. Untuk pengguna komersial Qt 6.3, pengujian produk Qt Quick Compiler telah dimulai, yang selain QML Type Compiler yang disebutkan di atas, mencakup QML Script Compiler, yang memungkinkan Anda mengkompilasi fungsi dan ekspresi QML ke dalam kode C++. Perlu dicatat bahwa penggunaan Qt Quick Compiler akan membawa kinerja program berbasis QML lebih dekat ke program asli; khususnya, ketika mengkompilasi ekstensi, ada pengurangan waktu startup dan eksekusi sekitar 30% dibandingkan dengan menggunakan versi interpretasi. .

Sumber: opennet.ru

Tambah komentar