Izdavanje Qbs 1.21 alata za pravljenje i početak testiranja Qt 6.3

Najavljeno je izdanje Qbs 1.21 alata za izgradnju. Ovo je osmo izdanje otkako je kompanija Qt napustila razvoj projekta, a pripremila ga je zajednica zainteresovana za nastavak razvoja Qbs-a. Za izgradnju Qbs-a, Qt je potreban među ovisnostima, iako je sam Qbs dizajniran da organizira sastavljanje bilo kojeg projekta. Qbs koristi pojednostavljenu verziju QML jezika za definiranje skripti za izgradnju projekta, što vam omogućava da definirate prilično fleksibilna pravila izgradnje koja mogu povezati vanjske module, koristiti JavaScript funkcije i kreirati prilagođena pravila izgradnje.

Skriptni jezik koji se koristi u Qbs-u je prilagođen za automatizaciju generisanja i raščlanjivanja skriptova za izgradnju od strane IDE-a. Pored toga, Qbs ne generiše makefile, i sam, bez posrednika kao što je make uslužni program, kontroliše pokretanje kompajlera i linkera, optimizujući proces izgradnje na osnovu detaljnog grafikona svih zavisnosti. Prisustvo početnih podataka o strukturi i zavisnosti u projektu omogućava vam da efikasno paralelizujete izvođenje operacija u nekoliko niti. Za velike projekte koji se sastoje od velikog broja datoteka i poddirektorija, performanse rekonstrukcije pomoću Qbs-a mogu nadmašiti make za nekoliko puta - rekonstrukcija je gotovo trenutna i ne tjera programera da troši vrijeme na čekanje.

Podsjetimo da je 2018. kompanija Qt odlučila da prekine razvoj Qbs-a. Qbs je razvijen kao zamjena za qmake, ali je na kraju odlučeno da se koristi CMake kao glavni sistem izgradnje za Qt na duge staze. Razvoj Qbs-a je sada nastavljen kao nezavisan projekat podržan od strane snaga zajednice i zainteresovanih programera. Za razvoj se i dalje koristi infrastruktura kompanije Qt.

Ključne inovacije u Qbs 1.21:

  • Mehanizam dobavljača modula (generatora modula) je redizajniran. Za okvire kao što su Qt i Boost, sada je moguće koristiti više od jednog provajdera, specificirati kojeg provajdera treba pokrenuti koristeći novo svojstvo qbsModuleProviders i specificirati prioritet za odabir modula generiranih od strane različitih provajdera. Na primjer, možete navesti dva provajdera "Qt" i "qbspkgconfig", od kojih će prvi pokušati koristiti Qt instalaciju korisnika (putem qmake pretrage), a ako takva instalacija nije pronađena, drugi provajder će pokušati koristiti Qt koji pruža sistem (preko poziva pkg-config) : CppApplication { Zavisi { name: "Qt.core" } fajlovi: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Dodan je provajder "qbspkgconfig", koji je zamenio dobavljača "fallback" modula, koji je pokušao da generiše modul koristeći pkg-config ako traženi modul nije generisan od strane drugih dobavljača. Za razliku od “fallback”, “qbspkgconfig” umjesto poziva uslužnog programa pkg-config koristi ugrađenu C++ biblioteku za direktno čitanje “.pc” datoteka, što ubrzava rad i pruža dodatne informacije o zavisnostima paketa koje nisu dostupne prilikom pozivanja pkg-config uslužni program.
  • Dodata podrška za C++23 specifikaciju, koja definiše budući C++ standard.
  • Dodata podrška za Elbrus E2K arhitekturu za GCC alat.
  • Za Android platformu, svojstvo Android.ndk.buildId je dodano da nadjača zadanu vrijednost za "--build-id" oznaku povezivača.
  • Moduli capnproto i protobuf implementiraju mogućnost korištenja vremena izvođenja koje pruža dobavljač qbspkgconfig.
  • Riješeni problemi s praćenjem promjena u izvornim datotekama na FreeBSD-u zbog ispuštanja milisekundi pri procjeni vremena modifikacije datoteke.
  • Dodano svojstvo ConanfileProbe.verbose kako bi se olakšalo otklanjanje grešaka u projektima koji koriste Conan menadžer paketa.

Dodatno, možemo primijetiti početak alfa testiranja Qt 6.3 frameworka, koji implementira novi modul “Qt Language Server” sa podrškom za Language Server i JsonRpc 2.0 protokole, a veliki dio novih funkcija je dodat u Qt Core modul, a QML tip MessageDialog je implementiran u Qt Quick Dialogs modul Za korištenje dijaloških okvira koje pruža platforma, kompozitni Qt Shell server i API za kreiranje vlastitih prilagođenih ekstenzija ljuske su dodani u Qt Wayland Compositor modul .

Qt QML modul nudi implementaciju kompajlera qmltc (QML tip kompajlera), koji vam omogućava da prevedete QML objektne strukture u klase u C++. Za komercijalne korisnike Qt 6.3, počelo je testiranje proizvoda Qt Quick Compiler, koji, pored gore pomenutog QML Type Compiler, uključuje i QML Script Compiler, koji vam omogućava da prevedete QML funkcije i izraze u C++ kod. Napominje se da će upotreba Qt Quick Compiler-a približiti performanse QML-baziranih programa izvornim programima; posebno, kada se kompajliraju ekstenzije, dolazi do smanjenja vremena pokretanja i izvršavanja za približno 30% u odnosu na korištenje interpretirane verzije .

izvor: opennet.ru

Dodajte komentar