Udgivelse af Qbs 1.21 byggesæt og begyndelsen af testen af Qt 6.3

Udgivelsen af Qbs 1.21 byggesæt er blevet præsenteret. Dette er den ottende udgave efter Qt Company trak sig fra udviklingen af projektet, forberedt af et fællesskab, der er interesseret i at fortsætte udviklingen af Qbs. For at bygge Qbs kræves Qt blandt afhængighederne, selvom Qbs er designet til at organisere opbygningen af enhver projekttype. Qbs bruger en forenklet version af QML til at definere bygge-script, hvilket muliggør fastsættelse af tilstrækkeligt fleksible bygge-regler, hvor eksterne moduler kan tilsluttes, JavaScript-funktioner kan bruges og tilpassede bygge-regler kan oprettes.

Det script-sprog, der bruges i Qbs, er tilpasset til at automatisere generation og parsing af bygge-scripts i integrerede udviklingsmiljøer. Desuden genererer Qbs ikke make-filer, men kontrollerer selv, uden mellemmænd som make-nytteprogrammet, udførelsen af compilere og linker, hvilket optimerer byggeprocessen baseret på en detaljeret graf over alle afhængigheder. Tilgængeligheden af originale data om strukturen og afhængighederne i projektet tillader effektiv paralleldeling af operationer i flere tråde. For store projekter, der består af mange filer og undermapper, kan ydeevnen ved genopbygning ved hjælp af Qbs overgå make mange gange—genopbygningen udføres næsten øjeblikkeligt og tvinger udvikleren ikke til at bruge tid på at vente.

Det skal bemærkes, at Qt Company i 2018 traf beslutning om at stoppe udviklingen af Qbs. Qbs blev udviklet som en erstatning for qmake, men det blev i sidste ende besluttet at bruge CMake som det primære bygesystem for Qt på lang sigt. Udviklingen af Qbs fortsættes nu i form af et uafhængigt projekt støttet af fællesskabet og interesserede udviklere. Infrastruktur fra Qt Company bruges stadig til udvikling.

Hovednyhederne i Qbs 1.21:

  • Modul-udbydernes (modul-generatorernes) mekanisme er blevet redesignede. For rammer som Qt og Boost kan der nu anvendes mere end én udbyder, der kan bestemmes hvilken udbyder der skal køres ved hjælp af den nye egenskab qbsModuleProviders, og prioriteter kan angives for valg af moduler genereret af forskellige udbydere. For eksempel kan to udbydere «Qt» og «qbspkgconfig» angives, hvor den første vil forsøge at bruge brugerens installation af Qt (gennem søgning af qmake), og hvis en sådan installation ikke findes, vil den anden udbyder forsøge at bruge system-Qt (gennem kald af pkg-config): CppApplication { Depends { name: «Qt.core» } files: «main.cpp» qbsModuleProviders: [«Qt», «qbspkgconfig»] }
  • Udbyderen «qbspkgconfig» er blevet tilføjet, som erstattede modul-udbyderen «fallback», der forsøgte at generere et modul ved hjælp af pkg-config, hvis det ønskede modul ikke var blevet genereret af andre udbydere. I modsætning til «fallback» bruger «qbspkgconfig» i stedet for at anropa pkg-config værktøjet et indbygget C++ bibliotek til direkte at læse «.pc» filer, hvilket tillader hurtigere drift og giver yderligere oplysninger om pakkeafhængigheder, der ikke er tilgængelige ved kald til pkg-config værktøjet.
  • Support for C++23 specifikationen, der definerer den fremtidige C++ standard, er blevet tilføjet.
  • For GCC værktøjskittet er support for Elbrus E2K arkitekturen blevet tilføjet.
  • For Android platformen er egenskaben Android.ndk.buildId blevet tilføjet, som muliggør overskrivning af standardværdien for linkerflaget «—build-id».
  • I capnproto og protobuf modulerne er muligheden for at bruge runtime leveret af qbspkgconfig udbyderen blevet implementeret.
  • Løst problemer med sporing af ændringer i kildefiler på FreeBSD-platformen, der opstod på grund af, at millisekunder blev afskrevet ved vurdering af ændringstidspunktet for filen.
  • Tilføjet egenskaben ConanfileProbe.verbose, som letter debugningen af projekter, der bruger pakkehåndtereren Conan.

Desuden kan man bemærke begyndelsen på alfa-testningen af Qt 6.3-rammeværket, som implementerer den nye 'Qt Language Server'-modul med support for Language Server- og JsonRpc 2.0-protokoller; Qt Core-modulet har fået en stor opdatering med nye funktioner, og der er implementeret QML-typen MessageDialog i Qt Quick Dialogs-modulet til brug af de dialogvinduer, der leveres af platformen. Der er tilføjet en compositor i Qt Wayland Compositor-modulet. server Qt Shell og API til oprettelse af egne udvidelser til brugerfladen.

I Qt QML-modulet er der blevet foreslået en implementering af qmltc-kompilatoren (QML type compiler), som muliggør kompilering af QML-objektstrukturer til klasser i C++. For kommercielle brugere er testningen af Qt Quick Compiler blevet startet med Qt 6.3, som udover QML Type Compiler også inkluderer QML Script Compiler, der kan kompilere funktioner og udtryk skrevet i QML til C++-kode. Det bemærkes, at brugen af Qt Quick Compiler vil bringe ydeevnen af QML-baserede applikationer tættere på native applikationer, da kompileringen af udvidelser vil reducere opstarts- og udførelsestiden med cirka 30% sammenlignet med den fortolkede version.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster