Den endelige udgivelse af Qbs byggeværktøjer er blevet offentliggjort

Qt Company опубликовала samleværktøj Qbs 1.13 (Qt Build Suite). Dette er den seneste udgivelse af Qbs produceret af Qt Company. Lad os huske, hvad der skete tidligere modtaget beslutning om at stoppe udviklingen af ​​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.

I den nærmeste fremtid forventes det, at der vil blive skabt et selvstændigt projekt for at fortsætte udviklingen af ​​Qbs af fællesskabet, hvis skæbne vil afhænge af interessen for det pågældende montagesystem fra uafhængige udviklere. Qt Company holder op med at arbejde på Qbs på grund af behovet for yderligere investeringer og høje omkostninger til at promovere Qbs.

Lad os huske på, at for at bygge Qbs kræves Qt som en afhængighed, 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.
Qbs genererer ikke make-filer og styrer uafhængigt lanceringen af ​​compilere og linkere, hvilket 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.

Vigtigste innovationer i Qbs 1.13:

  • Tilføjet muligheden for at bruge pkg-config-moduler i projekter, der bruger den samme afhængighedsbehandlingsmekanisme, som bruges til Qbs-moduler. For eksempel, hvis dit system har en pakke til at bygge OpenSSL baseret på pkg-config, for at bruge den i et Qbs-projekt, skal du blot tilføje 'Depends { name: "openssl" }';
  • Implementeret automatisk detektering af tilgængelige Qt-moduler. Udviklere behøver ikke længere at oprette en profil med modulstier ved hjælp af kommandoen setup-qt; alle Qt-moduler, der er angivet i afhængigheder, vil blive konfigureret automatisk;
  • Tilføjet værktøjer til at kontrollere antallet af montageopgaver, der kører parallelt på niveauet for individuelle kommandoer. For eksempel skaber linkning en stor I/O-belastning og bruger en betydelig mængde RAM, så linkeren kræver andre opstartsindstillinger end compileren. Separate indstillinger kan nu indstilles ved hjælp af kommandoen “qbs —job-limits linker:2,compiler:8”;
  • Der er foretaget ændringer i scriptsproget. Regler kan nu defineres uden at angive en stubfil til output, og det er ikke nødvendigt at bruge "import qbs"-direktivet i begyndelsen af ​​projektfiler. Nye installations- og installDir-egenskaber er blevet tilføjet til Application, DynamicLibrary og StaticLibrary-elementerne for mere bekvem installation af eksekverbare filer;
  • Tilføjet understøttelse af rekursiv scanning af linker-scripts
    GNU linker;

  • For C++ er egenskaben cpp.linkerVariant blevet implementeret for at fremtvinge brugen af ​​ld.gold-, ld.bfd- eller lld-linkerne;
  • Qt introducerer Qt.core.enableBigResources-egenskaben til at skabe store Qt-ressourcer
  • I stedet for det forældede AndroidApk-element foreslås det at bruge den generiske applikationstype;
  • Tilføjet et modul til oprettelse af test baseret på autotest;
  • Tilføjet tekstskabelonmodul med funktioner svarende til QMAKE_SUBSTITUTES i qmake;
  • Tilføjet indledende understøttelse af Protocol Buffers-formatet til C++ og Objective-C.

Kilde: opennet.ru

Tilføj en kommentar