Udgivelse af Qbs 1.21 byggeværktøjer og start af Qt 6.3 test

Udgivelsen af ​​Qbs 1.21 byggeværktøjer er blevet annonceret. Dette er den ottende udgivelse, siden Qt Company forlod udviklingen af ​​projektet, udarbejdet af samfundet, der er interesseret i at fortsætte udviklingen af ​​Qbs. For at bygge Qbs kræves Qt blandt afhængighederne, selvom Qbs selv er designet til at organisere samlingen af ​​alle projekter. Qbs bruger en forenklet version af QML-sproget til at definere projektbyggescripts, som giver dig mulighed for at definere ret fleksible byggeregler, der kan forbinde eksterne moduler, bruge JavaScript-funktioner og oprette brugerdefinerede byggeregler.

Det scriptsprog, der bruges i Qbs, er tilpasset til at automatisere generering og parsing af build-scripts af integrerede udviklingsmiljøer. Derudover genererer Qbs ikke make-filer, men selv, uden mellemled såsom make-værktøjet, kontrollerer lanceringen af ​​compilere og linkere, og optimerer byggeprocessen baseret på en detaljeret graf over alle afhængigheder. Tilstedeværelsen af ​​indledende data om strukturen og afhængighederne i projektet giver dig mulighed for effektivt at parallelisere udførelsen af ​​operationer i flere tråde. For store projekter, der består af et stort antal filer og undermapper, kan udførelsen af ​​genopbygning ved hjælp af Qbs være flere gange hurtigere end make - genopbygning udføres næsten øjeblikkeligt og tvinger ikke udvikleren til at spilde tid på at vente.

Lad os huske på, at Qt Company i 2018 besluttede at stoppe med at udvikle Qbs. Qbs blev udviklet som en erstatning for qmake, men i sidste ende blev det besluttet at bruge CMake som hovedbyggesystemet til Qt på lang sigt. Udvikling af Qbs er nu fortsat som et selvstændigt projekt støttet af fællesskabet og interesserede udviklere. Qt Company-infrastrukturen bliver fortsat brugt til udvikling.

Vigtigste innovationer i Qbs 1.21:

  • Mekanismen for moduludbydere (modulgeneratorer) er blevet omdesignet. For rammer som Qt og Boost er det nu muligt at bruge mere end én udbyder, specificere hvilken udbyder der skal køres ved hjælp af den nye qbsModuleProviders egenskab og angive en prioritet for valg af moduler genereret af forskellige udbydere. For eksempel kan du angive to udbydere "Qt" og "qbspkgconfig", hvoraf den første vil forsøge at bruge brugerens Qt-installation (via en qmake-søgning), og hvis der ikke findes en sådan installation, vil den anden udbyder forsøge at bruge den Qt, der leveres af systemet (via et kald til pkg-config): CppApplication { Depends { name: "Qt.core" } filer: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Tilføjede "qbspkgconfig"-udbyderen, som erstattede "fallback"-moduludbyderen, som forsøgte at generere et modul ved hjælp af pkg-config, hvis det anmodede modul ikke blev genereret af andre udbydere. I modsætning til "fallback" bruger "qbspkgconfig" i stedet for at kalde pkg-config-værktøjet et indbygget C++-bibliotek til direkte at læse ".pc"-filer, hvilket gør det muligt at fremskynde arbejdet og få yderligere oplysninger om pakkeafhængigheder, som ikke er tilgængelige, når du ringer værktøjet pkg-config.
  • Tilføjet understøttelse af C++23-specifikationen, som definerer den fremtidige C++-standard.
  • Tilføjet understøttelse af Elbrus E2K-arkitekturen til GCC-værktøjssættet.
  • For Android-platformen er egenskaben Android.ndk.buildId blevet tilføjet for at tilsidesætte standardværdien for "--build-id" linkerflaget.
  • Capnproto- og protobuf-modulerne implementerer muligheden for at bruge kørselstider leveret af qbspkgconfig-udbyderen.
  • Løste problemer med ændringssporing i kildefiler på FreeBSD på grund af, at millisekunder blev droppet ved estimering af filændringstider.
  • Tilføjet egenskaben ConanfileProbe.verbose for at gøre det nemmere at fejlsøge projekter, der bruger Conan-pakkehåndteringen.

Derudover kan vi notere begyndelsen af ​​alfa-testning af Qt 6.3 frameworket, som implementerer et nyt modul "Qt Language Server" med understøttelse af Language Server og JsonRpc 2.0 protokollerne, en stor del af nye funktioner er blevet tilføjet til Qt Core modul, og QML-typen MessageDialog er blevet implementeret i Qt Quick Dialogs-modulet For at bruge dialogboksene fra platformen, er en sammensat Qt Shell-server og en API til at oprette dine egne brugerdefinerede shell-udvidelser blevet tilføjet til Qt Wayland Compositor-modulet .

Qt QML modulet tilbyder en implementering af qmltc (QML type compiler) compiler, som giver dig mulighed for at kompilere QML objektstrukturer i klasser i C++. For kommercielle brugere af Qt 6.3 er test af Qt Quick Compiler-produktet begyndt, som udover den ovennævnte QML Type Compiler inkluderer QML Script Compiler, som giver dig mulighed for at kompilere QML funktioner og udtryk til C++ kode. Det bemærkes, at brugen af ​​Qt Quick Compiler vil bringe ydeevnen af ​​QML-baserede programmer tættere på native programmer; især når der kompileres udvidelser, er der en reduktion i opstarts- og eksekveringstiden med ca. 30 % sammenlignet med at bruge den fortolkede version .

Kilde: opennet.ru

Tilføj en kommentar