A Qbs 1.21 build eszközök kiadása és a Qt 6.3 tesztelésének megkezdése

Bejelentették a Qbs 1.21 build eszközök kiadását. Ez a nyolcadik kiadás azóta, hogy a Qt Company kilépett a projekt fejlesztéséből, amelyet a Qbs fejlesztésének folytatásában érdekelt közösség készített elő. A Qbs felépítéséhez Qt szükséges a függőségek között, bár magát a Qbs-t arra tervezték, hogy megszervezze bármely projekt összeállítását. A Qbs a QML nyelv egyszerűsített változatát használja a projektépítési szkriptek meghatározásához, amely lehetővé teszi meglehetősen rugalmas összeállítási szabályok meghatározását, amelyek külső modulokat csatlakoztathatnak, JavaScript-függvényeket használhatnak, és egyéni összeállítási szabályokat hozhatnak létre.

A Qbs-ben használt szkriptnyelvet úgy alakították ki, hogy automatizálja a build szkriptek IDE-k általi generálását és elemzését. Ezenkívül a Qbs nem hoz létre makefile-okat, és maga, közvetítők, például a make segédprogram nélkül, vezérli a fordítók és linkerek elindítását, optimalizálva az összeállítási folyamatot az összes függőség részletes grafikonja alapján. A kezdeti adatok jelenléte a struktúráról és a függőségekről a projektben lehetővé teszi a műveletek végrehajtásának hatékony párhuzamosítását több szálban. A nagyszámú fájlból és alkönyvtárból álló nagy projektek esetében a Qbs használatával végzett újraépítési teljesítmény többszörösen felülmúlhatja a make-t – az újraépítés szinte azonnal megtörténik, és nem kényszeríti a fejlesztőt a várakozásra.

Emlékezzünk vissza, hogy 2018-ban a Qt Company úgy döntött, hogy leállítja a Qbs fejlesztését. A Qbs-t a qmake helyettesítésére fejlesztették ki, de végül úgy döntöttek, hogy hosszú távon a CMake-et használják a Qt fő összeállítási rendszereként. A Qbs fejlesztése immár független projektként folytatódott, közösségi erők és érdeklődő fejlesztők támogatásával. Továbbra is a Qt Company infrastruktúráját használják fejlesztésre.

A Qbs 1.21 legfontosabb újításai:

  • A modulszolgáltatók (modulgenerátorok) mechanizmusát újratervezték. Az olyan keretrendszerek esetében, mint a Qt és a Boost, mostantól több szolgáltatót is használhat, az új qbsModuleProviders tulajdonság segítségével megadhatja, hogy melyik szolgáltatót futtassa, és prioritást adjon meg a különböző szolgáltatók által generált modulok kiválasztásához. Például megadhat két szolgáltatót: "Qt" és "qbspkgconfig", amelyek közül az első megpróbálja használni a felhasználó Qt telepítését (a qmake kereséssel), és ha nem található ilyen telepítés, a második szolgáltató megpróbálja használni. a rendszer által biztosított Qt (a pkg-config meghívásával) : CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Hozzáadtuk a "qbspkgconfig" szolgáltatót, amely felváltotta a "tartalék" modulszolgáltatót, amely megpróbált modult generálni a pkg-config segítségével, ha a kért modult nem más szolgáltatók hozták létre. A „tartalékkal” ellentétben a „qbspkgconfig” a pkg-config segédprogram hívása helyett egy beépített C++ könyvtárat használ a „.pc” fájlok közvetlen olvasására, ami felgyorsítja a munkát, és olyan további információkat nyújt a csomagfüggőségekről, amelyek nem állnak rendelkezésre a pkg-config segédprogram.
  • Hozzáadott támogatás a C++23 specifikációhoz, amely meghatározza a jövőbeli C++ szabványt.
  • Hozzáadott támogatás az Elbrus E2K architektúrához a GCC eszközkészlethez.
  • Az Android platformon az Android.ndk.buildId tulajdonság felülírja a "--build-id" linker jelző alapértelmezett értékét.
  • A capnproto és protobuf modulok a qbspkgconfig szolgáltató által biztosított futási idők használatának lehetőségét valósítják meg.
  • Megoldott a FreeBSD-n a forrásfájlok változáskövetésével kapcsolatos problémák, amelyek az ezredmásodpercek kiesése miatt következtek be a fájlmódosítási idők becslésekor.
  • Hozzáadtuk a ConanfileProbe.verbose tulajdonságot, hogy megkönnyítsük a Conan csomagkezelőt használó projektek hibakeresését.

Emellett megjegyezhetjük a Qt 6.3 keretrendszer alfatesztjének kezdetét, amely egy új „Qt Language Server” modult valósít meg a Language Server és a JsonRpc 2.0 protokollok támogatásával, és új funkciók nagy része bekerült a Qt Core-ba. modulban, a Qt Quick Dialogs modulban pedig a QML típusú MessageDialog implementációra került A platform által biztosított párbeszédpanelek használatához a Qt Wayland Compositor modulhoz egy összetett Qt Shell szerver és egy API került hozzáadásra a saját egyedi shell-bővítmények létrehozásához. .

A Qt QML modul a qmltc (QML típusú fordító) fordító megvalósítását kínálja, amely lehetővé teszi a QML objektumstruktúrák osztályokba történő fordítását C++ nyelven. A Qt 6.3 kereskedelmi felhasználói számára megkezdődött a Qt Quick Compiler termék tesztelése, amely a fent említett QML Type Compiler mellett tartalmazza a QML Script Compiler-t, amely lehetővé teszi a QML függvények és kifejezések C++ kódba való fordítását. Megjegyzendő, hogy a Qt Quick Compiler használata közelebb hozza a QML-alapú programok teljesítményét a natív programokhoz; különösen a bővítmények fordításakor az indítási és végrehajtási idő körülbelül 30%-kal csökken az értelmezett verzió használatához képest. .

Forrás: opennet.ru

Hozzászólás