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