Release van de build-tool Qbs 1.21 en start van de testfase voor Qt 6.3.

De release van de Qbs build toolset 1.21 is gepresenteerd. Dit is de achtste release sinds Qt Company zich uit het project heeft teruggetrokken, die is voorbereid door een gemeenschap die betrokken is bij de voortzetting van de ontwikkeling van Qbs. Voor het bouwen van Qbs zijn afhankelijkheden van Qt vereist, hoewel Qbs zelf is ontworpen om de bouw van elke project te organiseren. Qbs gebruikt een vereenvoudigde versie van de QML-taal voor het definiëren van buildscripts, waardoor flexibele bouwregels kunnen worden gedefinieerd waarin externe modules kunnen worden aangesloten, JavaScript-functies gebruikt kunnen worden en willekeurige buildregels kunnen worden gemaakt.

De in Qbs gebruikte scripts taal is aangepast voor het automatiseren van de generatie en parsing van bouwscripts voor geïntegreerde ontwikkelomgevingen. Bovendien genereert Qbs geen make-bestanden, maar beheert het zelf, zonder tussenpersonen zoals de make-tool, de uitvoering van compilers en linkers, waarbij het bouwproces wordt geoptimaliseerd op basis van een gedetailleerde grafiek van alle afhankelijkheden. De aanwezigheid van oorspronkelijke gegevens over de structuur en afhankelijkheden in het project maakt het mogelijk om de uitvoering van taken effectief te paralelliseren in meerdere threads. Voor grote projecten, bestaande uit een groot aantal bestanden en subdirectory's, kan de prestaties van een herbouw met Qbs vele malen beter zijn dan die van make — de herbouw gebeurt bijna onmiddellijk en voorkomt dat de ontwikkelaar tijd verliest met wachten.

Ter herinnering: in 2018 heeft Qt Company besloten om de ontwikkeling van Qbs stop te zetten. Qbs is ontwikkeld als vervanging voor qmake, maar uiteindelijk is besloten om CMake als de belangrijkste bouwsystem voor Qt op lange termijn te gebruiken. De ontwikkeling van Qbs wordt nu voortgezet in de vorm van een onafhankelijk project, ondersteund door de gemeenschap en geïnteresseerde ontwikkelaars. Voor de ontwikkeling wordt voorlopig de infrastructuur van Qt Company nog steeds gebruikt.

Belangrijkste vernieuwingen in Qbs 1.21:

  • Het mechanisme van moduleproviders (module generators) is herzien. Voor frameworks zoals Qt en Boost kunnen nu meerdere providers worden gebruikt, kan worden gedefinieerd welke provider moet worden gestart met de nieuwe eigenschap qbsModuleProviders en kan een prioriteit voor de selectie van modules die door verschillende providers zijn gegenereerd worden opgegeven. Bijvoorbeeld, je kunt twee providers 'Qt' en 'qbspkgconfig' opgeven, waarbij de eerste probeert een gebruikersinstallatie van Qt te gebruiken (via het zoeken naar qmake), en als een dergelijke installatie niet wordt gevonden, probeert de tweede provider de door het systeem aangeboden Qt te gebruiken (via het aanroepen van pkg-config): CppApplication { Depends { name: 'Qt.core' } files: 'main.cpp' qbsModuleProviders: ['Qt', 'qbspkgconfig'] }
  • Een nieuwe provider 'qbspkgconfig' is toegevoegd, die de module provider 'fallback' vervangt, die probeerde een module te genereren met pkg-config, als de gevraagde module niet door andere providers was gegenereerd. In tegenstelling tot 'fallback', gebruikt 'qbspkgconfig' in plaats van het aanroepen van de pkg-config utility een ingebouwde C++ bibliotheek voor het direct lezen van '.pc' bestanden, wat de snelheid verhoogt en extra informatie over pakketafhankelijkheden biedt die niet beschikbaar was bij het aanroepen van de pkg-config utility.
  • Ondersteuning voor de C++23 specificatie is toegevoegd, die de toekomstige standaard van C++ definieert.
  • Ondersteuning voor de Elbrus E2K architectuur is toegevoegd voor de GCC toolset.
  • Voor het Android-platform is de eigenschap Android.ndk.buildId toegevoegd, waarmee de standaardwaarde voor de linkerflag '—build-id' kan worden overschreven.
  • In de capnproto en protobuf modules is de mogelijkheid geïmplementeerd om runtime te gebruiken, aangeboden door de qbspkgconfig provider.
  • Problemen met het volgen van wijzigingen in bestanden met de broncode op het FreeBSD-platform zijn opgelost, die waren ontstaan door het weggooien van milliseconden bij het inschatten van de wijzigingstijd van het bestand.
  • De eigenschap ConanfileProbe.verbose is toegevoegd, waardoor het debuggen van projecten die de package manager Conan gebruiken, wordt vereenvoudigd.

Daarnaast kan de start van de alfa-test van het Qt 6.3-framework worden opgemerkt, waarin een nieuwe module 'Qt Language Server' is geïmplementeerd met ondersteuning voor de Language Server- en JsonRpc 2.0-protocollen. In de Qt Core-module zijn veel nieuwe functies toegevoegd, en in de Qt Quick Dialogs-module is een QML-type MessageDialog geïmplementeerd voor het gebruik van de door het platform aangeboden dialoogvensters. In de Qt Wayland Compositor-module is een compositor toegevoegd. server Qt Shell en API voor het maken van eigen extensies van de gebruikersshell.

In de Qt QML-module is een implementatie van de qmltc (QML type compiler) compiler voorgesteld, waarmee QML-objectstructuren in klassen in C++ kunnen worden gecompileerd. Voor commerciële gebruikers van Qt 6.3 is de test van het Qt Quick Compiler-product gestart, dat naast de eerder genoemde QML Type Compiler ook de QML Script Compiler bevat, waarmee functies en expressies in QML kunnen worden gecompileerd in C++-code. Het gebruik van de Qt Quick Compiler zal de prestaties van QML-gebaseerde programma's dichter bij die van native programma's brengen. Bij het compileren van uitbreidingen wordt een opstart- en uitvoertijdsvermindering van ongeveer 30% gemeld in vergelijking met het gebruik van de geïnterpreteerde versie.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster