Keluaran alat binaan Qbs 1.21 dan permulaan ujian Qt 6.3

Keluaran alat binaan Qbs 1.21 telah diumumkan. Ini adalah keluaran kelapan sejak Syarikat Qt meninggalkan pembangunan projek, disediakan oleh komuniti yang berminat untuk meneruskan pembangunan Qbs. Untuk membina Qbs, Qt diperlukan antara kebergantungan, walaupun Qbs sendiri direka untuk mengatur pemasangan mana-mana projek. Qbs menggunakan versi mudah bahasa QML untuk mentakrifkan skrip binaan projek, yang membolehkan anda mentakrifkan peraturan binaan yang agak fleksibel yang boleh menyambungkan modul luaran, menggunakan fungsi JavaScript dan membuat peraturan binaan tersuai.

Bahasa skrip yang digunakan dalam Qbs disesuaikan untuk mengautomasikan penjanaan dan penghuraian skrip binaan oleh IDE. Selain itu, Qbs tidak menjana fail make, dan sendiri, tanpa perantara seperti utiliti make, mengawal pelancaran penyusun dan pemaut, mengoptimumkan proses binaan berdasarkan graf terperinci semua kebergantungan. Kehadiran data awal pada struktur dan kebergantungan dalam projek membolehkan anda menyelaraskan pelaksanaan operasi dalam beberapa utas dengan berkesan. Untuk projek besar yang terdiri daripada sejumlah besar fail dan subdirektori, prestasi bina semula menggunakan Qbs boleh mengatasi prestasi beberapa kali - binaan semula hampir serta-merta dan tidak membuatkan pembangun meluangkan masa menunggu.

Mari kita ingat bahawa pada tahun 2018 Syarikat Qt memutuskan untuk berhenti membangunkan Qbs. Qbs dibangunkan sebagai pengganti qmake, tetapi akhirnya ia telah memutuskan untuk menggunakan CMake sebagai sistem binaan utama untuk Qt dalam jangka masa panjang. Pembangunan Qbs kini diteruskan sebagai projek bebas yang disokong oleh komuniti dan pemaju yang berminat. Infrastruktur Syarikat Qt terus digunakan untuk pembangunan.

Inovasi utama dalam Qbs 1.21:

  • Mekanisme pembekal modul (penjana modul) telah direka bentuk semula. Untuk rangka kerja seperti Qt dan Boost, kini boleh menggunakan lebih daripada satu pembekal, tentukan penyedia yang hendak dijalankan menggunakan sifat qbsModuleProviders baharu dan tentukan keutamaan untuk memilih modul yang dijana oleh pembekal yang berbeza. Sebagai contoh, anda boleh menentukan dua pembekal "Qt" dan "qbspkgconfig", yang pertama akan cuba menggunakan pemasangan Qt pengguna (melalui carian qmake), dan jika tiada pemasangan sedemikian ditemui, pembekal kedua akan cuba menggunakan Qt yang disediakan oleh sistem (melalui panggilan ke pkg-config): CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Menambahkan pembekal "qbspkgconfig", yang menggantikan penyedia modul "fallback", yang cuba menjana modul menggunakan pkg-config jika modul yang diminta tidak dijana oleh pembekal lain. Tidak seperti "fallback", "qbspkgconfig" dan bukannya memanggil utiliti pkg-config menggunakan perpustakaan C++ terbina dalam untuk membaca terus fail ".pc", yang mempercepatkan kerja dan menyediakan maklumat tambahan tentang kebergantungan pakej yang tidak tersedia semasa memanggil utiliti pkg-config.
  • Menambah sokongan untuk spesifikasi C++23, yang mentakrifkan piawaian C++ masa hadapan.
  • Menambah sokongan untuk seni bina Elbrus E2K untuk kit alat GCC.
  • Untuk platform Android, sifat Android.ndk.buildId telah ditambahkan untuk menggantikan nilai lalai untuk bendera pemaut "--build-id".
  • Modul capnproto dan protobuf melaksanakan keupayaan untuk menggunakan masa jalan yang disediakan oleh pembekal qbspkgconfig.
  • Isu yang diselesaikan dengan penjejakan perubahan dalam fail sumber pada FreeBSD disebabkan milisaat digugurkan semasa menganggarkan masa pengubahsuaian fail.
  • Menambahkan sifat ConanfileProbe.verbose untuk memudahkan anda menyahpepijat projek yang menggunakan pengurus pakej Conan.

Selain itu, kita boleh perhatikan permulaan ujian alfa rangka kerja Qt 6.3, yang melaksanakan modul baharu "Pelayan Bahasa Qt" dengan sokongan untuk Pelayan Bahasa dan protokol JsonRpc 2.0, sebahagian besar fungsi baharu telah ditambah pada Teras Qt modul, dan jenis QML MessageDialog telah dilaksanakan dalam modul Qt Quick Dialogs Untuk menggunakan kotak dialog yang disediakan oleh platform, pelayan Qt Shell komposit dan API untuk mencipta sambungan shell tersuai anda telah ditambahkan pada modul Qt Wayland Compositor .

Modul Qt QML menawarkan pelaksanaan pengkompil qmltc (pengkompil jenis QML), yang membolehkan anda menyusun struktur objek QML ke dalam kelas dalam C++. Untuk pengguna komersial Qt 6.3, ujian produk Qt Quick Compiler telah bermula, yang, sebagai tambahan kepada QML Type Compiler yang disebutkan di atas, termasuk QML Script Compiler, yang membolehkan anda menyusun fungsi dan ungkapan QML ke dalam kod C++. Adalah diperhatikan bahawa penggunaan Qt Quick Compiler akan membawa prestasi program berasaskan QML lebih dekat kepada program asli; khususnya, apabila menyusun sambungan, terdapat pengurangan masa permulaan dan pelaksanaan sebanyak kira-kira 30% berbanding menggunakan versi yang ditafsirkan. .

Sumber: opennet.ru

Tambah komen