Objavljeno je konačno izdanje Qbs alata za izgradnju

Qt Company objavljeno alati za montažu Qbs 1.13 (Qt Build Suite). Ovo je najnovije izdanje Qbs-a koje je proizvela kompanija Qt. Prisjetimo se šta se dogodilo ranije uzeti odluka da se zaustavi razvoj Qbs. Qbs je razvijen kao zamena za qmake, ali je na kraju odlučeno da se koristi CMake kao glavni sistem izgradnje za Qt na dugi rok.

U bliskoj budućnosti se očekuje kreiranje nezavisnog projekta za nastavak razvoja Qbs-a od strane zajednice, čija će sudbina zavisiti od interesovanja nezavisnih programera za dotični sistem sastavljanja. Kompanija Qt prestaje da radi na Qbs-u zbog potrebe za dodatnim ulaganjem i visokih troškova za promociju Qbs-a.

Podsjetimo se da je za izgradnju Qbs-a potreban Qt kao ovisnost, iako je sam Qbs dizajniran da organizira sklapanje bilo kojeg projekta. Qbs koristi pojednostavljenu verziju QML jezika za definiranje skripti izgradnje projekta, što vam omogućava da definirate prilično fleksibilna pravila izgradnje koja mogu povezati vanjske module, koristiti JavaScript funkcije i kreirati prilagođena pravila izgradnje.
Qbs ne generiše makefile i nezavisno kontroliše pokretanje kompajlera i linkera, optimizujući proces izgradnje na osnovu detaljnog grafikona svih zavisnosti. Prisustvo početnih podataka o strukturi i zavisnostima u projektu omogućava vam da efikasno paralelizujete izvođenje operacija u nekoliko niti.

Ključne inovacije u Qbs 1.13:

  • Dodata je mogućnost korištenja pkg-config modula u projektima koji koriste isti mehanizam obrade ovisnosti koji se koristi za Qbs module. Na primjer, ako vaš sistem ima paket za izgradnju OpenSSL-a zasnovan na pkg-config, da biste ga koristili u Qbs projektu, samo dodajte 'Zavisi { name: "openssl" }';
  • Implementirano automatsko otkrivanje dostupnih Qt modula. Programeri više ne moraju da kreiraju profil sa putanjama modula koristeći naredbu setup-qt; svi Qt moduli navedeni u zavisnostima biće automatski konfigurisani;
  • Dodati alati za kontrolu broja zadataka montaže koji se pokreću paralelno na nivou pojedinačnih komandi. Na primjer, povezivanje stvara veliko I/O opterećenje i troši značajnu količinu RAM-a, tako da linker zahtijeva drugačije postavke pokretanja od kompajlera. Odvojene postavke sada mogu da se podese pomoću naredbe “qbs —ograničenja posla linker:2, kompajler:8”;
  • Izvršene su promjene 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;
  • Dodata podrška za rekurzivno skeniranje linker skripti
    GNU linker;

  • Za C++, svojstvo cpp.linkerVariant je implementirano kako bi se nametnulo korištenje ld.gold, ld.bfd ili lld linkera;
  • Qt uvodi svojstvo Qt.core.enableBigResources za kreiranje velikih Qt resursa
  • Umjesto zastarjelog AndroidApk elementa, predlaže se korištenje generičkog tipa aplikacije;
  • Dodan modul za kreiranje testova baziranih na autotestu;
  • Dodan modul texttemplate sa mogućnostima sličnim QMAKE_SUBSTITUTES u qmakeu;
  • Dodata inicijalna podrška za format Protocol Buffers za C++ i Objective-C.

izvor: opennet.ru

Dodajte komentar