Lansarea kitului de instrumente de construire Qbs 1.21 și începutul testării Qt 6.3

A fost lansată versiunea kitului de instrumente de construire Qbs 1.21. Aceasta este a opta lansare după ce compania Qt Company a încetat dezvoltarea proiectului, realizată de comunitatea interesată de continuarea dezvoltării Qbs. Pentru a construi Qbs, este necesar Qt ca dependență, deși Qbs este destinat organizării construirii oricăror proiecte. Qbs utilizează o variantă simplificată a limbajului QML pentru a defini scenariile de construire a proiectului, ceea ce permite definirea unor reguli de construire suficient de flexibile, în care se pot integra module externe, se pot utiliza funcții în JavaScript și se pot crea reguli de construire arbitrari.

Limbajul de scripting utilizat în Qbs este adaptat pentru automatizarea generării și analizei scripturilor de construire în cadrul mediilor integrate de dezvoltare. În plus, Qbs nu generează fișiere make, ci controlează în mod direct, fără intermediari, cum ar fi utilitarul make, lansarea compilatoarelor și linkerelor, optimizând procesul de construire pe baza unui grafic detaliat al tuturor dependențelor. Disponibilitatea datelor inițiale despre structura și dependențele din proiect permite eficientizarea execuției operațiunilor în paralel. Pentru proiecte mari, formate dintr-un număr mare de fișiere și subdirectoare, performanța recompilării utilizând Qbs poate depăși cu mult făcând-o, recompilarea având loc aproape instantaneu și fără a face ca dezvoltatorul să piardă timp așteptând.

Amintim că, în 2018, compania Qt Company a decis să oprească dezvoltarea Qbs. Qbs a fost dezvoltat ca o alternativă la qmake, dar în cele din urmă s-a decis utilizarea CMake ca sistem de construcție principal pentru Qt pe termen lung. Dezvoltarea Qbs este acum continuată sub forma unui proiect independent, susținut de comunitate și de dezvoltatori interesați. Infrastructura Qt Company este încă folosită pentru dezvoltare.

Principalele noutăți ale Qbs 1.21:

  • Mecanismul furnizorilor de module (generatoare de module) a fost refăcut. Pentru cadru, cum ar fi Qt și Boost, acum se pot folosi mai mult de un furnizor, definind pe care dintre furnizori să-l ruleze prin noua proprietate qbsModuleProviders și specificând prioritatea pentru selectarea modulelor generate de diferiți furnizori. De exemplu, se pot specifica doi furnizori „Qt” și „qbspkgconfig”, primul dintre aceștia încercând să utilizeze instalarea personalizată a Qt (prin căutarea qmake), și dacă o astfel de instalare nu este găsită, al doilea furnizor va încerca să folosească Qt furnizat de sistem (prin apelul pkg-config): CppApplication { Depends { name: «Qt.core» } files: «main.cpp» qbsModuleProviders: [«Qt», «qbspkgconfig»] }
  • A fost adăugat furnizorul „qbspkgconfig”, care a înlocuit furnizorul de module „fallback”, care încercase să genereze un modul folosind pkg-config, dacă modulul solicitat nu a fost generat de alți furnizori. Spre deosebire de „fallback”, în „qbspkgconfig” în locul apelării utilitarului pkg-config se folosește o bibliotecă C++ încorporată pentru a citi direct fișierele „.pc”, ceea ce permite îmbunătățirea performanței și obținerea de informații suplimentare despre dependențele pachetelor, inaccesibile prin apelul utilitarului pkg-config.
  • A fost adăugată suportul pentru specificația C++23, care definește viitorul standard C++.
  • Pentru kitul de instrumente GCC a fost adăugată suportul pentru arhitectura Elbrus E2K.
  • Pentru platforma Android a fost adăugată proprietatea Android.ndk.buildId, care permite să se suprascrie valoarea implicită a flag-ului link-ului „—build-id”.
  • În modulele capnproto și protobuf a fost implementată posibilitatea utilizării runtime-ului furnizat de furnizorul qbspkgconfig.
  • Problemele legate de urmărirea modificărilor în fișierele de cod sursă pe platforma FreeBSD, apărute din cauza eliminării milisecundelor în evaluarea timpului de modificare a fișierului, au fost rezolvate.
  • A fost adăugată proprietatea ConanfileProbe.verbose, care simplifică depanarea proiectelor care utilizează managerul de pachete Conan.

Se poate menționa, de asemenea, începutul testării în alfa a framework-ului Qt 6.3, în care a fost implementat un nou modul «Qt Language Server» care suportă protocoalele Language Server și JsonRpc 2.0. Modulul Qt Core a adăugat o gamă largă de noi funcții, iar modulul Qt Quick Dialogs a implementat tipul QML MessageDialog pentru folosirea feronerelor de dialog oferite de platformă. În modulul Qt Wayland Compositor a fost adăugat un compozitor. serverul Qt Shell și API pentru crearea extensiilor personalizate ale interfeței utilizator.

În modulul Qt QML a fost propusă implementarea compilatorului qmltc (compilatorul de tip QML), care permite compilarea structurilor de obiecte QML în clase în limbajul C++. Pentru utilizatorii comerciali, Qt 6.3 a început testarea produsului Qt Quick Compiler, care, pe lângă compilatorul de tip QML menționat anterior, include și Compilatorul scriptului QML, ce permite compilarea funcțiilor și expresiilor QML în cod C++. Se observă că utilizarea Qt Quick Compiler va apropia performanța aplicațiilor bazate pe QML de programele native, în special în timpul compilării extensiilor, unde se semnalează o reducere a timpului de pornire și execuție cu aproximativ 30% comparativ cu utilizarea variantei interpretate.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster