Llançament de les eines de compilació Qbs 1.21 i inici de les proves de Qt 6.3

S'ha anunciat el llançament de les eines de compilació Qbs 1.21. Aquest és el vuitè llançament des que la companyia Qt va deixar el desenvolupament del projecte, preparat per la comunitat interessada a continuar amb el desenvolupament de Qbs. Per construir Qbs, es requereix Qt entre les dependències, tot i que el mateix Qbs està dissenyat per organitzar el muntatge de qualsevol projecte. Qbs utilitza una versió simplificada del llenguatge QML per definir scripts de creació de projectes, que us permet definir regles de compilació bastant flexibles que poden connectar mòduls externs, utilitzar funcions de JavaScript i crear regles de compilació personalitzades.

El llenguatge de scripting utilitzat a Qbs està adaptat per automatitzar la generació i l'anàlisi de scripts de compilació per part dels IDE. A més, Qbs no genera makefiles, i ell mateix, sense intermediaris com la utilitat make, controla el llançament de compiladors i enllaçadors, optimitzant el procés de compilació basant-se en un gràfic detallat de totes les dependències. La presència de dades inicials sobre l'estructura i les dependències en el projecte us permet paral·lelitzar eficaçment l'execució d'operacions en diversos fils. Per a projectes grans que consisteixen en un gran nombre de fitxers i subdirectoris, el rendiment de reconstrucció amb Qbs pot superar el rendiment en diverses vegades: la reconstrucció és gairebé instantània i no fa que el desenvolupador passi temps esperant.

Recordem que el 2018, la companyia Qt va decidir deixar de desenvolupar Qbs. Qbs es va desenvolupar com a substitut de qmake, però finalment es va decidir utilitzar CMake com a sistema de compilació principal per a Qt a llarg termini. El desenvolupament de Qbs ha continuat ara com un projecte independent recolzat per forces de la comunitat i desenvolupadors interessats. La infraestructura de Qt Company es continua utilitzant per al desenvolupament.

Innovacions clau a Qbs 1.21:

  • S'ha redissenyat el mecanisme dels proveïdors de mòduls (generadors de mòduls). Per a marcs com ara Qt i Boost, ara és possible utilitzar més d'un proveïdor, especificar quin proveïdor s'executa amb la nova propietat qbsModuleProviders i especificar una prioritat per seleccionar mòduls generats per diferents proveïdors. Per exemple, podeu especificar dos proveïdors "Qt" i "qbspkgconfig", el primer dels quals intentarà utilitzar la instal·lació de Qt de l'usuari (mitjançant una cerca de qmake), i si no es troba aquesta instal·lació, el segon proveïdor intentarà utilitzar-la. el Qt proporcionat pel sistema (mitjançant una trucada a pkg-config): CppApplication { Depèn { nom: "Qt.core" } fitxers: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • S'ha afegit el proveïdor "qbspkgconfig", que va substituir el proveïdor de mòduls "de reserva", que intentava generar un mòdul mitjançant pkg-config si el mòdul sol·licitat no el generaven altres proveïdors. A diferència de "fallback", "qbspkgconfig" en comptes de trucar a la utilitat pkg-config utilitza una biblioteca de C++ integrada per llegir directament fitxers ".pc", la qual cosa permet accelerar el treball i obtenir informació addicional sobre les dependències dels paquets que no està disponible en trucar. la utilitat pkg-config.
  • S'ha afegit suport per a l'especificació C++23, que defineix el futur estàndard de C++.
  • S'ha afegit suport per a l'arquitectura Elbrus E2K per al conjunt d'eines GCC.
  • Per a la plataforma Android, s'ha afegit la propietat Android.ndk.buildId per substituir el valor predeterminat de la marca d'enllaç "--build-id".
  • Els mòduls capnproto i protobuf implementen la capacitat d'utilitzar temps d'execució proporcionats pel proveïdor qbspkgconfig.
  • S'han resolt problemes amb el seguiment de canvis als fitxers font a FreeBSD a causa de la pèrdua de mil·lisegons en estimar els temps de modificació dels fitxers.
  • S'ha afegit la propietat ConanfileProbe.verbose per facilitar la depuració de projectes que utilitzen el gestor de paquets Conan.

A més, podem destacar l'inici de les proves alfa del framework Qt 6.3, que implementa un nou mòdul "Qt Language Server" amb suport per als protocols Language Server i JsonRpc 2.0, una gran part de noves funcions s'han afegit al Qt Core i el tipus QML MessageDialog s'ha implementat al mòdul Qt Quick Dialogs Per utilitzar els quadres de diàleg proporcionats per la plataforma, s'han afegit un servidor Qt Shell compost i una API per crear les vostres pròpies extensions de shell personalitzades al mòdul Qt Wayland Compositor .

El mòdul Qt QML ofereix una implementació del compilador qmltc (compilador de tipus QML), que us permet compilar estructures d'objectes QML en classes en C++. Per als usuaris comercials de Qt 6.3, s'han iniciat les proves del producte Qt Quick Compiler, que, a més del QML Type Compiler esmentat anteriorment, inclou el QML Script Compiler, que us permet compilar funcions i expressions QML en codi C++. Cal assenyalar que l'ús de Qt Quick Compiler aproparà el rendiment dels programes basats en QML als programes natius; en particular, quan es compilen extensions, hi ha una reducció del temps d'inici i d'execució en un 30% aproximadament en comparació amb l'ús de la versió interpretada. .

Font: opennet.ru

Afegeix comentari