Den endelige utgivelsen av Qbs byggeverktøy har blitt publisert

Qt Company опубликовала monteringsverktøy Qbs 1.13 (Qt Build Suite). Dette er den siste utgivelsen av Qbs produsert av Qt Company. La oss huske hva som skjedde tidligere mottatt beslutning om å slutte å utvikle Qbs. Qbs ble utviklet som en erstatning for qmake, men til slutt ble det besluttet å bruke CMake som hovedbyggesystemet for Qt på lang sikt.

I nær fremtid forventes det at et uavhengig prosjekt vil bli opprettet for å fortsette utviklingen av Qbs av fellesskapet, hvis skjebne vil avhenge av interessen for det aktuelle monteringssystemet fra uavhengige utviklere. Qt Company slutter å jobbe med Qbs på grunn av behovet for ytterligere investeringer og høye kostnader for å promotere Qbs.

La oss huske at for å bygge Qbs, kreves Qt som en avhengighet, selv om Qbs i seg selv er designet for å organisere sammenstillingen av alle prosjekter. Qbs bruker en forenklet versjon av QML-språket for å definere prosjektbyggingsskript, som lar deg definere ganske fleksible byggeregler som kan koble til eksterne moduler, bruke JavaScript-funksjoner og lage tilpassede byggeregler.
Qbs genererer ikke make-filer og kontrollerer uavhengig lanseringen av kompilatorer og linkere, og optimaliserer byggeprosessen basert på en detaljert graf over alle avhengigheter. Tilstedeværelsen av innledende data om strukturen og avhengighetene i prosjektet lar deg effektivt parallellisere utførelsen av operasjoner i flere tråder.

Viktige innovasjoner i Qbs 1.13:

  • Lagt til muligheten til å bruke pkg-config-moduler i prosjekter som bruker den samme avhengighetsbehandlingsmekanismen som brukes for Qbs-moduler. For eksempel, hvis systemet ditt har en pakke for å bygge OpenSSL basert på pkg-config, for å bruke den i et Qbs-prosjekt, legg til 'Depends { name: "openssl" }';
  • Implementert automatisk deteksjon av tilgjengelige Qt-moduler. Utviklere trenger ikke lenger å opprette en profil med modulstier ved å bruke kommandoen setup-qt; alle Qt-moduler spesifisert i avhengigheter vil bli konfigurert automatisk;
  • Lagt til verktøy for å kontrollere antall monteringsoppgaver som kjører parallelt på nivå med individuelle kommandoer. For eksempel skaper kobling en stor I/O-belastning og bruker en betydelig mengde RAM, så linkeren krever andre oppstartsinnstillinger enn kompilatoren. Separate innstillinger kan nå settes ved å bruke kommandoen “qbs —job-limits linker:2,compiler:8”;
  • Det er gjort endringer i skriptspråket. Regler kan nå defineres uten å spesifisere en stubfil for utdata, og det er ikke nødvendig å bruke "import qbs"-direktivet i begynnelsen av prosjektfiler. Nye install- og installDir-egenskaper er lagt til Application, DynamicLibrary og StaticLibrary-elementene for mer praktisk installasjon av kjørbare filer;
  • Lagt til støtte for rekursiv skanning av linkerskript
    GNU linker;

  • For C++ er egenskapen cpp.linkerVariant implementert for å tvinge frem bruken av ld.gold-, ld.bfd- eller lld-linkerne;
  • Qt introduserer Qt.core.enableBigResources-egenskapen for å lage store Qt-ressurser
  • I stedet for det foreldede AndroidApk-elementet, foreslås det å bruke den generiske applikasjonstypen;
  • Lagt til en modul for å lage tester basert på autotest;
  • Lagt til tekstmalmodul med muligheter som ligner på QMAKE_SUBSTITUTES i qmake;
  • Lagt til innledende støtte for Protocol Buffers-formatet for C++ og Objective-C.

Kilde: opennet.ru

Legg til en kommentar