Vydání nástrojů pro tvorbu Qbs 1.21 a zahájení testování Qt 6.3

Byla oznámena verze nástrojů pro sestavení Qbs 1.21. Toto je osmé vydání od doby, kdy společnost Qt opustila vývoj projektu, připraveného komunitou, která má zájem pokračovat ve vývoji Qbs. K sestavení Qbs je mezi závislostmi vyžadováno Qt, ačkoli samotný Qbs je navržen tak, aby organizoval sestavení jakýchkoli projektů. Qbs používá k definování skriptů sestavení projektu zjednodušenou verzi jazyka QML, což umožňuje definovat poměrně flexibilní pravidla sestavování, která mohou připojit externí moduly, používat funkce JavaScriptu a vytvářet vlastní pravidla sestavování.

Skriptovací jazyk používaný v Qbs je přizpůsoben k automatizaci generování a analýzy sestavení skriptů integrovanými vývojovými prostředími. Qbs navíc negeneruje makefile, ale sám bez prostředníků, jako je utilita make, řídí spouštění kompilátorů a linkerů, optimalizuje proces sestavení na základě podrobného grafu všech závislostí. Přítomnost počátečních dat o struktuře a závislostech v projektu umožňuje efektivně paralelizovat provádění operací v několika vláknech. U velkých projektů sestávajících z velkého množství souborů a podadresářů může být výkon přestavby pomocí Qbs několikanásobně rychlejší než make - přestavba je provedena téměř okamžitě a nenutí vývojáře ztrácet čas čekáním.

Připomeňme, že v roce 2018 se společnost Qt rozhodla ukončit vývoj Qbs. Qbs byl vyvinut jako náhrada za qmake, ale nakonec bylo rozhodnuto použít CMake jako hlavní sestavovací systém pro Qt z dlouhodobého hlediska. Vývoj Qbs nyní pokračuje jako nezávislý projekt podporovaný komunitou a zainteresovanými vývojáři. Infrastruktura společnosti Qt je nadále využívána pro vývoj.

Klíčové inovace v Qbs 1.21:

  • Mechanismus poskytovatelů modulů (generátorů modulů) byl přepracován. Pro frameworky, jako je Qt a Boost, je nyní možné použít více než jednoho poskytovatele, určit, kterého poskytovatele spustit, pomocí nové vlastnosti qbsModuleProviders a určit prioritu pro výběr modulů generovaných různými poskytovateli. Můžete například zadat dva poskytovatele „Qt“ a „qbspkgconfig“, z nichž první se pokusí použít uživatelovu instalaci Qt (prostřednictvím vyhledávání qmake), a pokud žádná taková instalace nebude nalezena, druhý poskytovatel se pokusí použít Qt poskytované systémem (prostřednictvím volání pkg-config): CppApplication { Depends { name: "Qt.core" } soubory: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Přidán poskytovatel "qbspkgconfig", který nahradil poskytovatele "záložního" modulu, který se pokusil vygenerovat modul pomocí pkg-config, pokud požadovaný modul nebyl vygenerován jinými poskytovateli. Na rozdíl od „fallback“ používá „qbspkgconfig“ namísto volání obslužného programu pkg-config vestavěnou knihovnu C++ k přímému čtení souborů „.pc“, což urychluje práci a poskytuje další informace o závislostech balíčků, které nejsou dostupné při volání nástroj pkg-config.
  • Přidána podpora specifikace C++23, která definuje budoucí standard C++.
  • Přidána podpora architektury Elbrus E2K pro sadu nástrojů GCC.
  • Pro platformu Android byla přidána vlastnost Android.ndk.buildId, která přepíše výchozí hodnotu pro příznak linkeru „--build-id“.
  • Moduly capnproto a protobuf implementují schopnost používat runtime poskytované poskytovatelem qbspkgconfig.
  • Vyřešeny problémy se sledováním změn ve zdrojových souborech na FreeBSD kvůli úbytku milisekund při odhadování časů úprav souborů.
  • Byla přidána vlastnost ConanfileProbe.verbose, která usnadňuje ladění projektů, které používají správce balíčků Conan.

Dále můžeme zaznamenat začátek alfa testování rámce Qt 6.3, který implementuje nový modul „Qt Language Server“ s podporou protokolů Language Server a JsonRpc 2.0, velká část nových funkcí byla přidána do Qt Core modul a do modulu Qt Quick Dialogs byl implementován typ QML MessageDialog Pro použití dialogových oken poskytovaných platformou byl do modulu Qt Wayland Compositor přidán složený server Qt Shell a API pro vytváření vlastních uživatelských rozšíření shellu. .

Modul Qt QML nabízí implementaci kompilátoru qmltc (překladač typu QML), který umožňuje kompilovat struktury objektů QML do tříd v C++. Pro komerční uživatele Qt 6.3 bylo zahájeno testování produktu Qt Quick Compiler, který kromě výše zmíněného QML Type Compiler obsahuje QML Script Compiler, který umožňuje kompilovat QML funkce a výrazy do kódu C++. Je třeba poznamenat, že použití Qt Quick Compiler přiblíží výkon programů založených na QML nativním programům; zejména při kompilaci rozšíření dochází ke zkrácení doby spouštění a provádění přibližně o 30 % ve srovnání s použitím interpretované verze. .

Zdroj: opennet.ru

Přidat komentář