Versioni e instrumenteve të montimit Qbs 1.21 është paraqitur. Kjo është emisioni i tetë pas largimit të kompanisë Qt Company nga zhvillimi i projektit, e përgatitur nga një komunitet i interesuar për vazhdimin e zhvillimit të Qbs. Për ndërtimin e Qbs, është e nevojshme Qt, megjithatë Qbs vetë është projektuar për të organizuar ndërtimin e ç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, duke lejuar përcaktimin e rregullave të mjaftueshme fleksibile për ndërtimin, në të cilat mund të përfshihen module të jashtme, të përdoren funksione në JavaScript dhe të krijohen rregulla ndërtimi të rastësishme.
Gjuha e skenarëve e përdorur në Qbs është adaptuar për automatizimin e gjenerimit dhe analizës së skenarëve të ndërtimit nga mjediset e integruara të zhvillimit. Për më tepër, Qbs nuk gjeneron skedarë make, por vetë, pa ndërmjetës, siç është utilitarja make, kontrollon ekzekutimin e kompilatorëve dhe lidhësve, duke optimizuar procesin e ndërtimit mbi një grafik të detajuar të të gjitha varësive. Prania e të dhënave fillestare mbi strukturën dhe varësitë në projekt lejon ekzekutimin efektiv të operacioneve në disa mënyra. Për projektet e mëdha, të cilat përbëhen nga një numër të madh skedash dhe nën direktorish, performanca e ripërtëritjes së përdorimit të Qbs mund të përmbushë me shumë më tepër se make - ripërtëritja realizohet pothuajse menjëherë dhe nuk e bën zhvilluesin të kalojë kohë duke pritur.
Kujtojmë se në vitin 2018, kompania Qt Company mori vendimin për të ndaluar 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ë perspektivën e gjatë. Zhvillimi i Qbs tani është vazhduar në formën e një projekti të pavarur, të mbështetur nga forcat e komunitetit dhe zhvilluesve të interesuar. Zhvillimi vazhdon të përdorë infrastrukturën e Qt Company.
Novitetet kryesore në Qbs 1.21:
- Mekanizmi i ofruesve të moduleve (gjeneratorëve të moduleve) është rishikuar. Për framework-e si Qt dhe Boost, tani mund të përdoren më shumë se një ofrues, të përcaktohet se cili ofrues do të aktivizohet duke përdorur pronën e re qbsModuleProviders dhe të caktohet prioriteti për zgjedhjen e moduleve të gjeneruara nga ofrues të ndryshëm. Për shembull, mund të përcaktohen dy ofrues 'Qt' dhe 'qbspkgconfig', i pari prej të cilëve do të përpiqet të përdorë instalimin e përdoruesit të Qt (nëpërmjet kërkimit qmake), dhe nëse një instalim i tillë nuk është gjetur, ofruesi i dytë do të përpiqet të angazhojë Qt, i ofruar nga sistemi (nëpërmjet thirrjes pkg-config): CppApplication { Varet { emri: 'Qt.core' } skedarët: 'main.cpp' qbsModuleProviders: ['Qt', 'qbspkgconfig'] }
- Ofruesi 'qbspkgconfig' është shtuar, i cili erdhi në vend të ofruesit të moduleve 'fallback', i cili përpiqej të gjeneronte një modul duke përdorur pkg-config, nëse moduli i kërkuar nuk ishte gjeneruar nga ofrues të tjerë. Ndryshe nga 'fallback', në 'qbspkgconfig' në vend të thirrjes së utilitarit pkg-config, përdoret biblioteka e brendshme C++ për të lexuar direkt skedarët '.pc', gjë që lejon të përshpejtohet puna dhe të merret informacion shtesë mbi varësitë e pakove, informacion që nuk është i disponueshëm gjatë thirrjes së utilitarit pkg-config.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r specifikimin C++23, qĂ« pĂ«rcakton standardin e ardhshĂ«m C++.
- Për toolkit-in GCC është shtuar mbështetje për arkitekturën Elbrus E2K.
- Për platformën Android është shtuar pronë Android.ndk.buildId, e cila lejon që të rishkruhet vlera e parazgjedhur për flamurin e montimit '--build-id'.
- Në modulet capnproto dhe protobuf është realizuar mundësia e përdorimit të runtime, të ofruar nga ofruesi qbspkgconfig.
- Problemet e ndjekjes së ndryshimeve në skedat me kod burimi në platformën FreeBSD janë zgjidhur, pas heqjes së milisekondave gjatë vlerësimit të kohës së ndryshimit të skedës.
- Shtuar pronësia ConanfileProbe.verbose, që lehtëson debugging-un e projekteve që përdorin menaxherin e paketave Conan.
Përveç kësaj, mund të vërehet fillimi i testimit alfa të kornizës Qt 6.3, në të cilën është implementuar moduli i ri "Qt Language Server" me mbështetje për protokollet Language Server dhe JsonRpc 2.0, moduli Qt Core ka marrë një sasi të madhe funksionesh të reja, në modulin Qt Quick Dialogs është implementuar tipi QML MessageDialog për të përdorur dritaret dialoguese të ofruara nga platforma, në modulin Qt Wayland Compositor është shtuar kompozitori. server Qt Shell dhe API për krijimin e zgjerimeve të veta të mjegullës përdoruese.
Në modulit Qt QML është propozuar implementimi i kompajlerit qmltc (QML type compiler), që lejon kompaktimin e strukturave të objekteve QML në klasa në gjuhën C++. Për përdoruesit komercialë, Qt 6.3 ka filluar testimin e produktit Qt Quick Compiler, i cili përveç QML Type Compiler të përmendur më lart, përfshin edhe QML Script Compiler, që lejon kompaktimin e funksioneve dhe shprehjeve QML në kod në gjuhën C++. Vëren se përdorimi i Qt Quick Compiler do të afrojë performancën e programeve të bazuara në QML me programet natyrore, veçanërisht gjatë kompaktimit të zgjatimit vihet re një reduktim të kohës së nisjes dhe ekzekutimit për rreth 30% në krahasim me përdorimin e versionit interpretuar.
Burimi: opennet.ru
