Është njoftuar lëshimi i veglave të ndërtimit të Qbs 1.21. Ky është publikimi i tetë që nga largimi i kompanisë Qt nga zhvillimi i projektit, i përgatitur nga komuniteti i interesuar për të vazhduar zhvillimin e Qbs. Për të ndërtuar Qbs, Qt kërkohet midis varësive, megjithëse vetë Qbs është krijuar për të organizuar montimin e çdo projekti. Qbs përdor një version të thjeshtuar të gjuhës QML për të përcaktuar skriptet e ndërtimit të projektit, i cili ju lejon të përcaktoni rregulla ndërtimi mjaft fleksibël që mund të lidhin module të jashtme, të përdorin funksione JavaScript dhe të krijojnë rregulla ndërtimi me porosi.
Gjuha e skriptimit e përdorur në Qbs është përshtatur për të automatizuar gjenerimin dhe analizimin e skripteve të ndërtimit nga mjediset e integruara të zhvillimit. Për më tepër, Qbs nuk gjeneron skedarë make-files, por vetë, pa ndërmjetës të tillë si mjeti make, kontrollon nisjen e përpiluesve dhe lidhësve, duke optimizuar procesin e ndërtimit bazuar në një grafik të detajuar të të gjitha varësive. Prania e të dhënave fillestare në lidhje me strukturën dhe varësitë në projekt ju lejon të paralelizoni në mënyrë efektive ekzekutimin e operacioneve në disa fije. Për projekte të mëdha që përbëhen nga një numër i madh skedarësh dhe nëndrejtorish, performanca e rindërtimit duke përdorur Qbs mund të jetë disa herë më e shpejtë se ajo e prodhimit - rindërtimi kryhet pothuajse menjëherë dhe nuk e detyron zhvilluesin të humbasë kohë duke pritur.
Kujtojmë se në vitin 2018 kompania Qt vendosi të ndalojë zhvillimin e Qbs. Qbs u zhvillua si një zëvendësim për qmake, por në fund u vendos që të përdoret CMake si sistemi kryesor i ndërtimit për Qt në afat të gjatë. Zhvillimi i Qbs ka vazhduar tani si një projekt i pavarur i mbështetur nga komuniteti dhe zhvilluesit e interesuar. Infrastruktura e kompanisë Qt vazhdon të përdoret për zhvillim.
Risitë kryesore të Qbs 1.21:
- Mekanizmi i ofruesve të moduleve (gjeneruesit e moduleve) është ridizajnuar. Për korniza të tilla si Qt dhe Boost, tani është e mundur të përdoren më shumë se një ofrues, të specifikoni se cilin ofrues të ekzekutohet duke përdorur veçorinë e re qbsModuleProviders dhe të specifikoni një përparësi për zgjedhjen e moduleve të krijuara nga ofrues të ndryshëm. Për shembull, mund të specifikoni 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 një kërkimi qmake), dhe nëse nuk gjendet një instalim i tillë, ofruesi i dytë do të përpiqet të përdorni Qt-në e ofruar nga sistemi (përmes një thirrjeje në pkg-config) : CppApplication { Varet { emri: "Qt.core" } skedarët: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
- U shtua ofruesi "qbspkgconfig", i cili zëvendësoi ofruesin e modulit "fallback", i cili u përpoq të gjeneronte një modul duke përdorur pkg-config nëse moduli i kërkuar nuk ishte krijuar nga ofrues të tjerë. Ndryshe nga "fallback", "qbspkgconfig" në vend që të thërrasë programin pkg-config përdor një bibliotekë të integruar C++ për të lexuar drejtpërdrejt skedarët ".pc", e cila lejon përshpejtimin e punës dhe marrjen e informacionit shtesë rreth varësive të paketës që nuk disponohet kur telefononi mjeti pkg-config.
- Mbështetje e shtuar për specifikimin C++23, i cili përcakton standardin e ardhshëm C++.
- Mbështetje e shtuar për arkitekturën Elbrus E2K për paketën e veglave GCC.
- Për platformën Android, veçoria Android.ndk.buildId është shtuar për të anashkaluar vlerën e paracaktuar për flamurin lidhës "--build-id".
- Modulet capnproto dhe protobuf zbatojnë aftësinë për të përdorur kohëzgjatjen e ofruar nga ofruesi qbspkgconfig.
- Zgjidhen çështjet me gjurmimin e ndryshimeve në skedarët burim në FreeBSD për shkak të milisekondave që humben kur vlerësohen kohët e modifikimit të skedarëve.
- U shtua veçoria ConanfileProbe.verbose për ta bërë më të lehtë korrigjimin e projekteve që përdorin menaxherin e paketave Conan.
Për më tepër, mund të vërejmë fillimin e testimit alfa të kornizës Qt 6.3, i cili zbaton një modul të ri "Qt Language Server" me mbështetje për Serverin e gjuhës dhe protokollet JsonRpc 2.0, një pjesë e madhe e funksioneve të reja është shtuar në Qt Core moduli, dhe MessageDialog i tipit QML është implementuar në modulin Qt Quick Dialogs Për të përdorur kutitë e dialogut të ofruara nga platforma, një server i përbërë Qt Shell dhe një API për krijimin e shtesave tuaja të guaskës së përdoruesit janë shtuar në modulin Qt Wayland Compositor. .
Moduli Qt QML ofron një implementim të përpiluesit qmltc (përpilues i tipit QML), i cili ju lejon të përpiloni strukturat e objekteve QML në klasa në C++. Për përdoruesit komercialë të Qt 6.3, ka filluar testimi i produktit Qt Quick Compiler, i cili, përveç përpiluesit të tipit QML të lartpërmendur, përfshin përpiluesin e skriptit QML, i cili ju lejon të përpiloni funksionet dhe shprehjet QML në kodin C++. Vihet re se përdorimi i Qt Quick Compiler do të afrojë performancën e programeve të bazuara në QML me programet vendase; në veçanti, gjatë përpilimit të shtesave, ka një reduktim në kohën e fillimit dhe ekzekutimit me afërsisht 30% në krahasim me përdorimin e versionit të interpretuar. .
Burimi: opennet.ru