De definitieve release van de Qbs-buildtools is gepubliceerd

Qt bedrijf опубликовала montage gereedschap Qbs 1.13 (Qt Build-suite). Dit is de nieuwste release van Qbs geproduceerd door Qt Company. Laten we niet vergeten wat er eerder is gebeurd ontvangen besluit om te stoppen met de ontwikkeling van Qbs. Qbs is ontwikkeld als vervanging voor qmake, maar uiteindelijk werd besloten om CMake op de lange termijn te gebruiken als het belangrijkste bouwsysteem voor Qt.

In de nabije toekomst wordt verwacht dat er een onafhankelijk project zal worden opgezet om de ontwikkeling van Qbs door de gemeenschap voort te zetten, waarvan het lot zal afhangen van de belangstelling van onafhankelijke ontwikkelaars voor het betreffende assemblagesysteem. Qt Company stopt met werken aan Qbs vanwege de noodzaak van extra investeringen en hoge kosten voor het promoten van Qbs.

Laten we niet vergeten dat Qt als afhankelijkheid vereist is om Qbs te bouwen, hoewel Qbs zelf ontworpen is om de assemblage van projecten te organiseren. Qbs gebruikt een vereenvoudigde versie van de QML-taal om projectbouwscripts te definiëren, waarmee u redelijk flexibele bouwregels kunt definiëren die externe modules kunnen verbinden, JavaScript-functies kunnen gebruiken en aangepaste bouwregels kunnen maken.
Qbs genereert geen makefiles en regelt onafhankelijk de lancering van compilers en linkers, waardoor het bouwproces wordt geoptimaliseerd op basis van een gedetailleerde grafiek van alle afhankelijkheden. Door de aanwezigheid van initiële gegevens over de structuur en afhankelijkheden in het project kunt u de uitvoering van bewerkingen in verschillende threads effectief parallelliseren.

Belangrijkste innovaties in Qbs 1.13:

  • De mogelijkheid toegevoegd om pkg-config-modules in projecten te gebruiken met behulp van hetzelfde afhankelijkheidsverwerkingsmechanisme dat wordt gebruikt voor Qbs-modules. Als uw systeem bijvoorbeeld een pakket heeft voor het bouwen van OpenSSL op basis van pkg-config, voegt u, om het in een Qbs-project te gebruiken, gewoon 'Depends { name: "openssl" }' toe;
  • Automatische detectie van beschikbare Qt-modules geïmplementeerd. Ontwikkelaars hoeven niet langer een profiel met modulepaden aan te maken met behulp van het setup-qt commando; alle Qt-modules gespecificeerd in afhankelijkheden zullen automatisch worden geconfigureerd;
  • Tools toegevoegd om het aantal parallel lopende assemblagetaken te controleren op het niveau van individuele opdrachten. Het koppelen zorgt bijvoorbeeld voor een grote I/O-belasting en verbruikt een aanzienlijke hoeveelheid RAM, zodat de linker andere opstartinstellingen vereist dan de compiler. Afzonderlijke instellingen kunnen nu worden ingesteld met behulp van het commando “qbs —job-limits linker:2,compiler:8”;
  • Er zijn wijzigingen aangebracht in de scripttaal. Regels kunnen nu worden gedefinieerd zonder een stubbestand voor uitvoer te specificeren, en het is niet nodig om de “import qbs” -richtlijn aan het begin van projectbestanden te gebruiken. Nieuwe install- en installDir-eigenschappen zijn toegevoegd aan de Application-, DynamicLibrary- en StaticLibrary-elementen voor een gemakkelijkere installatie van uitvoerbare bestanden;
  • Ondersteuning toegevoegd voor recursief scannen van linkerscripts
    GNU-linker;

  • Voor C++ is de eigenschap cpp.linkerVariant geïmplementeerd om het gebruik van de ld.gold-, ld.bfd- of lld-linkers te forceren;
  • Qt introduceert de eigenschap Qt.core.enableBigResources voor het maken van grote Qt-bronnen
  • In plaats van het verouderde AndroidApk-element wordt voorgesteld om het generieke Applicatietype te gebruiken;
  • Een module toegevoegd voor het maken van tests op basis van autotest;
  • Tekstsjabloonmodule toegevoegd met mogelijkheden vergelijkbaar met QMAKE_SUBSTITUTES in qmake;
  • Initiële ondersteuning toegevoegd voor het Protocol Buffers-formaat voor C++ en Objective-C.

Bron: opennet.ru

Voeg een reactie