Lansarea instrumentelor de compilare Qbs 1.21 și începerea testării Qt 6.3

Lansarea instrumentelor de construcție Qbs 1.21 a fost anunțată. Aceasta este a opta lansare de când compania Qt a părăsit dezvoltarea proiectului, pregătit de comunitatea interesată în continuarea dezvoltării Qbs. Pentru a construi Qbs, Qt este necesar printre dependențe, deși Qbs în sine este conceput pentru a organiza asamblarea oricăror proiecte. Qbs folosește o versiune simplificată a limbajului QML pentru a defini scripturile de construire a proiectelor, ceea ce vă permite să definiți reguli de construcție destul de flexibile în care modulele externe pot fi conectate, pot fi utilizate funcții JavaScript și pot fi create reguli de construcție arbitrare.

Limbajul de scripting folosit în Qbs este adaptat pentru a automatiza generarea și analizarea scripturilor de compilare de către mediile de dezvoltare integrate. În plus, Qbs nu generează fișiere make, dar el însuși, fără intermediari precum utilitarul make, controlează lansarea compilatoarelor și a link-urilor, optimizând procesul de construire pe baza unui grafic detaliat al tuturor dependențelor. Prezența datelor inițiale despre structură și dependențe în proiect vă permite să paralelizați eficient execuția operațiunilor în mai multe fire. Pentru proiectele mari care constau dintr-un număr mare de fișiere și subdirectoare, performanța reconstrucției folosind Qbs poate fi de câteva ori mai rapidă decât make - reconstrucția se realizează aproape instantaneu și nu obligă dezvoltatorul să piardă timpul în așteptare.

Să ne amintim că în 2018, compania Qt a decis să nu mai dezvolte Qbs. Qbs a fost dezvoltat ca înlocuitor pentru qmake, dar în cele din urmă s-a decis să se utilizeze CMake ca principal sistem de construcție pentru Qt pe termen lung. Dezvoltarea Qbs a continuat acum ca un proiect independent susținut de comunitate și de dezvoltatorii interesați. Infrastructura companiei Qt continuă să fie utilizată pentru dezvoltare.

Inovații cheie în Qbs 1.21:

  • Mecanismul furnizorilor de module (generatoare de module) a fost reproiectat. Pentru cadre precum Qt și Boost, acum este posibil să utilizați mai mult de un furnizor, să specificați ce furnizor să ruleze folosind noua proprietate qbsModuleProviders și să specificați o prioritate pentru selectarea modulelor generate de diferiți furnizori. De exemplu, puteți specifica doi furnizori „Qt” și „qbspkgconfig”, primul dintre care va încerca să folosească instalarea Qt a utilizatorului (printr-o căutare qmake), iar dacă nu se găsește o astfel de instalare, al doilea furnizor va încerca să folosească Qt furnizat de sistem (printr-un apel la pkg-config): CppApplication { Depinde { nume: "Qt.core" } fișiere: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • S-a adăugat furnizorul „qbspkgconfig”, care a înlocuit furnizorul de module „de rezervă”, care a încercat să genereze un modul folosind pkg-config dacă modulul solicitat nu a fost generat de alți furnizori. Spre deosebire de „fallback”, „qbspkgconfig” în loc să apeleze utilitarul pkg-config folosește o bibliotecă C++ încorporată pentru a citi direct fișierele „.pc”, ceea ce accelerează munca și oferă informații suplimentare despre dependențele pachetelor care nu sunt disponibile la apelarea utilitarul pkg-config.
  • S-a adăugat suport pentru specificația C++23, care definește viitorul standard C++.
  • S-a adăugat suport pentru arhitectura Elbrus E2K pentru setul de instrumente GCC.
  • Pentru platforma Android, proprietatea Android.ndk.buildId a fost adăugată pentru a înlocui valoarea implicită pentru semnalizatorul de linker „--build-id”.
  • Modulele capnproto și protobuf implementează capacitatea de a utiliza timpii de execuție furnizați de furnizorul qbspkgconfig.
  • S-au rezolvat problemele cu urmărirea modificărilor în fișierele sursă pe FreeBSD din cauza pierderii milisecundelor la estimarea timpilor de modificare a fișierelor.
  • S-a adăugat proprietatea ConanfileProbe.verbose pentru a facilita depanarea proiectelor care utilizează managerul de pachete Conan.

În plus, putem observa începutul testării alfa a cadrului Qt 6.3, care implementează un nou modul „Qt Language Server” cu suport pentru protocoalele Language Server și JsonRpc 2.0, o mare parte de noi funcții au fost adăugate Qt Core modulul, iar tipul QML MessageDialog a fost implementat în modulul Qt Quick Dialogs Pentru a utiliza casetele de dialog furnizate de platformă, la modulul Qt Wayland Compositor au fost adăugate un server Qt Shell compus și un API pentru crearea propriilor extensii shell personalizate. .

Modulul Qt QML oferă o implementare a compilatorului qmltc (compilatorul de tip QML), care vă permite să compilați structuri de obiecte QML în clase în C++. Pentru utilizatorii comerciali ai Qt 6.3, a început testarea produsului Qt Quick Compiler, care, pe lângă QML Type Compiler menționat mai sus, include QML Script Compiler, care vă permite să compilați funcții și expresii QML în cod C++. Se observă că utilizarea Qt Quick Compiler va aduce performanța programelor bazate pe QML mai aproape de programele native; în special, la compilarea extensiilor, există o reducere a timpului de pornire și execuție cu aproximativ 30% față de utilizarea versiunii interpretate. .

Sursa: opennet.ru

Adauga un comentariu