Compania Qt instrumentele de compilare (Qt Build Suite). Aceasta este ultima versiune a Qbs, dezvoltată de compania Qt Company. Amintim că anterior a existat decizia de a opri dezvoltarea Qbs. Qbs a evoluat ca o alternativă la qmake, dar în cele din urmă s-a decis utilizarea CMake ca principal sistem de compilare pentru Qt pe termen lung.
În curând se așteaptă crearea unui proiect independent pentru continuarea dezvoltării Qbs de către comunitate, a cărei soartă va depinde de interesul pentru acest sistem de compilare din partea dezvoltatorilor independenți. Qt Company oprește lucrul la Qbs din cauza necesității unor investiții suplimentare și a costurilor mari de promovare a Qbs.
Amintim că pentru a compila Qbs ca dependență este necesar Qt, deși Qbs este conceput pentru a organiza compilarea oricăror proiecte. Qbs folosește o variantă simplificată a limbajului QML pentru a defini scripturile de compilare ale proiectului, permițând definirea unor reguli de compilare suficient de flexibile, în care pot fi integrate module externe, folosite funcții JavaScript și create reguli arbitrare de compilare.
Qbs nu generează fișiere make și controlează singur lansarea compilatoarelor și conectorilor, optimizând procesul de compilare pe baza unui grafic detaliat al tuturor dependențelor. Disponibilitatea datelor inițiale despre structură și dependențe în proiect permite desfășurarea eficientă a operațiunilor în mai multe fire.
Noutățile principale ale Qbs 1.13:
- A fost adăugată posibilitatea utilizării modulelor pkg-config în proiecte, folosind aceeași mecanism de gestionare a dependențelor care este aplicat pentru modulele Qbs. De exemplu, dacă în sistem există un pachet pentru compilarea OpenSSL bazat pe pkg-config, pentru a-l folosi în proiectul Qbs este suficient să adăugați ‘Depends { name: «openssl» }’;
- A fost implementată identificarea automată a modulelor Qt disponibile. Dezvoltatorii nu mai trebuie să creeze un profil cu căile către module prin comanda setup-qt, toate modulele Qt specificate în dependențe vor fi configurate automat;
- Au fost adăugate instrumente pentru controlul numărului de sarcini de construire care pot fi executate simultan la nivelul echipelor individuale. De exemplu, în timpul legării se generează o sarcină mare pe I/O și se consumă o cantitate semnificativă de RAM, așa că linker-ul necesită alte setări de lansare, diferite de cele ale compilatorului. Setările separate pot fi acum stabilite folosind comanda „qbs --job-limits linker:2,compiler:8”;
- Au fost aduse modificări în limbajul scriptului. Regulile pot fi acum definite fără a specifica un fișier stub pentru ieșire, iar la începutul fișierelor proiectului nu este obligatorie utilizarea directivei „import qbs”. În elementele Application, DynamicLibrary și StaticLibrary au fost adăugate noi proprietăți install și installDir pentru o instalare mai convenabilă a fișierelor executabile;
- A fost adăugat suport pentru scanarea recursivă a scripturilor linker-ului
GNU linker; - Pentru limbajul C++ a fost implementată proprietatea cpp.linkerVariant pentru utilizarea forțată a link-urilor ld.gold, ld.bfd sau lld;
- Pentru Qt a fost prezentată proprietatea Qt.core.enableBigResources pentru crearea resurselor mari Qt
- În locul elementului învechit AndroidApk, se recomandă utilizarea tipului comun Application;
- A fost adăugat un modul pentru crearea testelor pe baza autotest;
- A fost adăugat modulul texttemplate cu funcționalități asemănătoare cu QMAKE_SUBSTITUTES din qmake;
- A fost adăugat suport inițial pentru formatul Protocol Buffers pentru C++ și Objective-C.
Sursa: opennet.ro
