Den slutliga versionen av Qbs byggverktyg har publicerats

Qt Company опубликовала monteringsverktyg Qbs 1.13 (Qt Build Suite). Detta är den senaste versionen av Qbs producerad av Qt Company. Låt oss komma ihåg vad som hände tidigare mottagna beslut att sluta utveckla Qbs. Qbs utvecklades som en ersättning för qmake, men i slutändan beslutades det att använda CMake som huvudbyggsystem för Qt på lång sikt.

Inom en snar framtid förväntas det skapas ett oberoende projekt för att fortsätta utvecklingen av Qbs av samhället, vars öde kommer att bero på intresset för monteringssystemet i fråga från oberoende utvecklare. Qt Company slutar arbeta med Qbs på grund av behovet av ytterligare investeringar och höga kostnader för att marknadsföra Qbs.

Låt oss komma ihåg att för att bygga Qbs krävs Qt som ett beroende, även om Qbs i sig är designat för att organisera monteringen av alla projekt. Qbs använder en förenklad version av QML-språket för att definiera projektbyggningsskript, vilket gör att du kan definiera ganska flexibla byggregler som kan ansluta externa moduler, använda JavaScript-funktioner och skapa anpassade byggregler.
Qbs genererar inte make-filer och kontrollerar självständigt lanseringen av kompilatorer och länkar, vilket optimerar byggprocessen baserat på en detaljerad graf över alla beroenden. Närvaron av initiala data om strukturen och beroenden i projektet gör att du effektivt kan parallellisera utförandet av operationer i flera trådar.

Viktiga innovationer i Qbs 1.13:

  • Lade till möjligheten att använda pkg-config-moduler i projekt med samma beroendebearbetningsmekanism som används för Qbs-moduler. Till exempel, om ditt system har ett paket för att bygga OpenSSL baserat på pkg-config, för att använda det i ett Qbs-projekt, lägg bara till 'Depends { name: "openssl" }';
  • Implementerad automatisk detektering av tillgängliga Qt-moduler. Utvecklare behöver inte längre skapa en profil med modulsökvägar med kommandot setup-qt, alla Qt-moduler som anges i beroenden kommer att konfigureras automatiskt;
  • Lade till verktyg för att kontrollera antalet monteringsuppgifter som körs parallellt på nivån för individuella kommandon. Till exempel skapar länkning en stor I/O-belastning och förbrukar en betydande mängd RAM, så länken kräver andra startinställningar än kompilatorn. Separata inställningar kan nu göras med kommandot “qbs —job-limits linker:2,kompilator:8”;
  • Ändringar har gjorts i skriptspråket. Regler kan nu definieras utan att ange en stubfil för utdata, och det är inte nödvändigt att använda "import qbs"-direktivet i början av projektfiler. Nya installations- och installDir-egenskaper har lagts till i Application, DynamicLibrary och StaticLibrary-elementen för en mer bekväm installation av körbara filer;
  • Tillagt stöd för rekursiv skanning av länkskript
    GNU-linker;

  • För C++ har egenskapen cpp.linkerVariant implementerats för att tvinga fram användningen av länkarna ld.gold, ld.bfd eller lld;
  • Qt introducerar egenskapen Qt.core.enableBigResources för att skapa stora Qt-resurser
  • Istället för det föråldrade AndroidApk-elementet föreslås att den generiska applikationstypen används;
  • Lade till en modul för att skapa tester baserade på autotest;
  • Lade till textmallmodul med möjligheter som liknar QMAKE_SUBSTITUTES i qmake;
  • Lade till initialt stöd för Protocol Buffers-formatet för C++ och Objective-C.

Källa: opennet.ru

Lägg en kommentar