Qt Company
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