Izdanje alata za izradu Qbs 1.21 i početak testiranja Qt 6.3

Najavljeno je izdanje Qbs 1.21 alata za izgradnju. Ovo je osmo izdanje otkako je tvrtka Qt napustila razvoj projekta, a pripremila ga je zajednica zainteresirana za nastavak razvoja Qbs-a. Za izgradnju Qbs-a, Qt je potreban među ovisnostima, iako je sam Qbs dizajniran za organiziranje sklapanja bilo kojeg projekta. Qbs koristi pojednostavljenu verziju QML jezika za definiranje skripti za izgradnju projekta, što vam omogućuje da definirate prilično fleksibilna pravila za izgradnju u kojima se mogu povezivati ​​vanjski moduli, koristiti JavaScript funkcije i kreirati proizvoljna pravila za izgradnju.

Skriptni jezik koji se koristi u Qbs-u prilagođen je za automatizaciju generiranja i raščlanjivanja skripti za izgradnju u integriranim razvojnim okruženjima. Osim toga, Qbs ne generira makefileove, već sam, bez posrednika poput uslužnog programa make, kontrolira pokretanje prevoditelja i povezivača, optimizirajući proces izgradnje na temelju detaljnog grafa svih ovisnosti. Prisutnost početnih podataka o strukturi i ovisnostima u projektu omogućuje vam učinkovito paraleliziranje izvođenja operacija u nekoliko niti. Za velike projekte koji se sastoje od velikog broja datoteka i poddirektorija, izvedba ponovne izgradnje pomoću Qbs-a može biti nekoliko puta brža od make - ponovna izgradnja se izvodi gotovo trenutno i ne tjera programera da gubi vrijeme na čekanje.

Podsjetimo, tvrtka Qt je 2018. odlučila prestati razvijati Qbs. Qbs je razvijen kao zamjena za qmake, ali na kraju je odlučeno koristiti CMake kao glavni sustav za izgradnju za Qt dugoročno. Razvoj Qbs-a sada je nastavljen kao neovisni projekt podržan od strane zajednice i zainteresiranih programera. Infrastruktura Qt Company i dalje se koristi za razvoj.

Ključne inovacije u Qbs 1.21:

  • Redizajniran je mehanizam pružatelja modula (generatora modula). Za okvire kao što su Qt i Boost, sada je moguće koristiti više od jednog pružatelja usluga, navesti koji će se pružatelj pokrenuti pomoću novog svojstva qbsModuleProviders i odrediti prioritet za odabir modula generiranih od strane različitih pružatelja usluga. Na primjer, možete navesti dva pružatelja "Qt" i "qbspkgconfig", od kojih će prvi pokušati koristiti korisničku Qt instalaciju (putem qmake pretraživanja), a ako takva instalacija nije pronađena, drugi pružatelj će pokušati koristiti Qt koji osigurava sustav (putem poziva na pkg-config) : CppApplication { Ovisi { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Dodan pružatelj "qbspkgconfig", koji je zamijenio pružatelja "rezervnog" modula, koji je pokušavao generirati modul koristeći pkg-config ako traženi modul nisu generirali drugi pružatelji. Za razliku od “fallbacka”, “qbspkgconfig” umjesto pozivanja uslužnog programa pkg-config koristi ugrađenu C++ biblioteku za izravno čitanje “.pc” datoteka, što omogućuje ubrzanje rada i dobivanje dodatnih informacija o ovisnostima paketa koje nisu dostupne prilikom pozivanja uslužni program pkg-config.
  • Dodana podrška za C++23 specifikaciju, koja definira budući C++ standard.
  • Dodana podrška za Elbrus E2K arhitekturu za GCC toolkit.
  • Za platformu Android dodano je svojstvo Android.ndk.buildId da nadjača zadanu vrijednost za oznaku povezivača "--build-id".
  • Moduli capnproto i protobuf implementiraju mogućnost korištenja vremena izvođenja koje pruža pružatelj qbspkgconfig.
  • Riješeni problemi s praćenjem promjena u izvornim datotekama na FreeBSD-u zbog ispuštanja milisekundi prilikom procjene vremena izmjene datoteke.
  • Dodano je svojstvo ConanfileProbe.verbose kako bi se olakšalo otklanjanje pogrešaka u projektima koji koriste upravitelj paketa Conan.

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

Qt QML modul nudi implementaciju qmltc (QML type compiler) prevoditelja, koji vam omogućuje prevođenje struktura QML objekata u klase u C++. Za komercijalne korisnike Qt 6.3 započelo je testiranje proizvoda Qt Quick Compiler koji uz gore spomenuti QML Type Compiler uključuje i QML Script Compiler koji omogućuje prevođenje QML funkcija i izraza u C++ kod. Napominje se da će korištenje Qt Quick Compilera približiti izvedbu programa temeljenih na QML-u nativnim programima; posebice, kod kompajliranja proširenja dolazi do smanjenja vremena pokretanja i izvođenja za približno 30% u usporedbi s korištenjem interpretirane verzije .

Izvor: opennet.ru

Dodajte komentar