Objavljeno je konačno izdanje Qbs alata za izgradnju

Tvrtka Qt опубликовала alati za montažu Qbs 1.13 (Qt Build Suite). Ovo je najnovije izdanje Qbs-a koje proizvodi Qt Company. Prisjetimo se što se dogodilo ranije primljen odluku o prestanku razvoja Qbs-a. Qbs je razvijen kao zamjena za qmake, ali na kraju je odlučeno koristiti CMake kao glavni sustav za izgradnju za Qt dugoročno.

U bliskoj budućnosti očekuje se stvaranje neovisnog projekta za nastavak razvoja Qbs-a od strane zajednice, čija će sudbina ovisiti o interesu neovisnih programera za predmetni sustav montaže. Qt Company prestaje raditi na Qbs-u zbog potrebe za dodatnim ulaganjem i visokim troškovima promocije Qbs-a.

Prisjetimo se da je za izgradnju Qbs-a potreban Qt kao ovisnost, iako je sam Qbs dizajniran za organiziranje sklapanja bilo kojeg projekta. Qbs koristi pojednostavljenu verziju QML jezika za definiranje skripti za izgradnju projekta, što vam omogućuje da definirate prilično fleksibilna pravila za izgradnju koja mogu povezati vanjske module, koristiti JavaScript funkcije i stvoriti prilagođena pravila za izgradnju.
Qbs ne generira makefileove i neovisno kontrolira pokretanje prevoditelja i povezivača, optimizirajući proces izgradnje na temelju detaljnog grafikona svih ovisnosti. Prisutnost početnih podataka o strukturi i ovisnostima u projektu omogućuje vam učinkovito paraleliziranje izvođenja operacija u nekoliko niti.

Ključne inovacije u Qbs 1.13:

  • Dodana je mogućnost korištenja pkg-config modula u projektima koji koriste isti mehanizam za obradu ovisnosti koji se koristi za Qbs module. Na primjer, ako vaš sustav ima paket za izgradnju OpenSSL-a temeljen na pkg-config, da biste ga koristili u Qbs projektu, samo dodajte 'Ovisi { name: "openssl" }';
  • Implementirana automatska detekcija dostupnih Qt modula. Programeri više ne moraju stvarati profil sa stazama modula pomoću naredbe setup-qt; svi Qt moduli navedeni u zavisnostima bit će automatski konfigurirani;
  • Dodani su alati za kontrolu broja zadataka sklapanja koji se izvode paralelno na razini pojedinačnih naredbi. Na primjer, povezivanje stvara veliko I/O opterećenje i troši značajnu količinu RAM-a, tako da povezivač zahtijeva različite postavke pokretanja od kompajlera. Odvojene postavke sada se mogu postaviti pomoću naredbe “qbs —job-limits linker:2,compiler:8”;
  • Promjene su napravljene u skriptnom jeziku. Pravila se sada mogu definirati bez specificiranja stub datoteke za izlaz, i nije potrebno koristiti "import qbs" direktivu na početku projektnih datoteka. Nova svojstva install i installDir dodana su elementima Application, DynamicLibrary i StaticLibrary za praktičniju instalaciju izvršnih datoteka;
  • Dodana podrška za rekurzivno skeniranje skripti povezivača
    GNU povezivač;

  • Za C++, svojstvo cpp.linkerVariant je implementirano da prisili upotrebu povezivača ld.gold, ld.bfd ili lld;
  • Qt uvodi svojstvo Qt.core.enableBigResources za stvaranje velikih Qt resursa
  • Umjesto zastarjelog elementa AndroidApk, predlaže se korištenje generičke vrste aplikacije;
  • Dodan modul za izradu testova na temelju autotesta;
  • Dodan modul tekstualnog predloška sa mogućnostima sličnim QMAKE_SUBSTITUTES u qmakeu;
  • Dodana početna podrška za format međuspremnika protokola za C++ i Objective-C.

Izvor: opennet.ru

Dodajte komentar