Kompania Qt mjetet e përbërjes (Qt Build Suite). Ky është lëshimi më i fundit i Qbs, i formuar nga kompania Qt Company. Kujtojmë se më parë ishte e marrë një vendim për të ndalur zhvillimin e Qbs. Qbs u zhvillua si një zëvendësim për qmake, por në fund u vendos të përdoret CMake si sistemi kryesor i ndërtimit për Qt në një periudhë afatgjatë.
Në një të ardhme të afërt pritet krijimi i një projekti të pavarur për vazhdimin e zhvillimit të Qbs nga ana e komunitetit, fatin e të cilit do ta përcaktojë interesi për sistemin e ndërtimit të shqyrtuar nga zhvilluesit e pavarur. Qt Company po ndalon punën mbi Qbs për shkak të nevojës për investime të mëtejshme dhe kostove të larta për promovimin e Qbs.
Kujtojmë se për të ndërtuar Qbs si një varësi kërkohet Qt, megjithëse vetë Qbs është i destinuar për organizimin e ndërtimit të çdo projekti. Qbs përdor një version të thjeshtuar të gjuhës QML për të përcaktuar skenarët e ndërtimit të projektit, që lejon përcaktimin e rregullave mjaft fleksibël të ndërtimit, ku mund të lidhen module të jashtme, të përdoren funksione në JavaScript dhe të krijohen rregulla të zakonshme ndërtimi.
Qbs nuk gjeneron skedat make dhe kontrollon vetë ekzekutimin e kompilatorëve dhe linker-ave, duke optimizuar procesin e ndërtimit në bazë të një grafi të detajuar të të gjitha varësive. Prania e të dhënave fillestare për strukturën dhe varësitë në projekt lejon këtë të bëhet me efikasitet duke e përshpejtuar ekzekutimin e operacioneve në disa thesare.
Novitetet kryesore të Qbs 1.13:
- Shtohet mundësia e përdorimit në projekte të moduleve pkg-config duke përdorur të njëjtin mekanizëm përpunimi të varësive siç aplikohet për modulet Qbs. Për shembull, nëse një paketë është e disponueshme në sistem për ndërtimin e OpenSSL me bazë pkg-config, për ta përdorur në projektin Qbs është e mjaftueshme të shtohet 'Depends { name: «openssl» }';
- Realizohet përcaktimi automatik i moduleve të disponueshme Qt. Zhvilluesit nuk kanë nevojë më të krijojnë një profil me rrugët e moduleve përmes komandës setup-qt, të gjitha modulet Qt të listuara në varësi do të konfigurohen automatikisht;
- Shtohen mjetet pĂ«r kontrollin e numrit tĂ« detyrave tĂ« ndarĂ« qĂ« ekzekutohen paralelisht nĂ« nivelin e ekipeve tĂ« veçanta. PĂ«r shembull, gjatĂ« lidhjes krijohet njĂ« ngarkesĂ« e madhe nĂ« I/O dhe konsumon njĂ« sasi tĂ« konsiderueshme tĂ« RAM-it, prandaj lidhĂ«si kĂ«rkon cilĂ«sime tĂ« tjera nisjeje, ndryshe nga kompajleri. CilĂ«simet ndarĂ«se tani mund tĂ« pĂ«rcaktohen me komandĂ«n «qbs âjob-limits linker:2,compiler:8»;
- Janë bërë ndryshime në gjuhën e skenarëve. Rregullat tani mund të përcaktohen pa treguar një skedar zëvendësues për daljen, dhe në fillim të skedarëve të projekteve nuk është e nevojshme të përdoret direktiva «import qbs». Në elementët Application, DynamicLibrary dhe StaticLibrary janë shtuar pronësi të reja install dhe installDir për një instalim më të lehtë të skedarëve ekzekutivë;
- Shtuar mbështetje për skanimin rekurziv të skenarëve të lidhësit
GNU linker; - Për gjuhën C++ është realizuar prona cpp.linkerVariant për të detyruar përdorimin e lidhësve ld.gold, ld.bfd ose lld;
- Për Qt është paraqitur prona Qt.core.enableBigResources për krijimin e burimeve të mëdha Qt
- Në vend të elementit të vjetruar AndroidApk, rekomandohet përdorimi i tipit të përgjithshëm Application;
- Shtuar modul për krijimin e testeve mbi bazën e autotest;
- Shtuar modul texttemplate me mundësi të ngjashme me QMAKE_SUBSTITUTES në qmake;
- Shtuar mbështetje fillestare për formatin Protocol Buffers për C++ dhe Objective-C.
Burimi: opennet.ru
