Ang Qbs 2.0 build toolkit ay inilabas na. Ang Qbs ay nangangailangan ng Qt bilang isang dependency, bagama't ang Qbs mismo ay idinisenyo upang hawakan ang pagbuo ng anumang proyekto. Gumagamit ang Qbs ng pinasimpleng bersyon ng wikang QML upang tukuyin ang mga script ng pagbuo ng proyekto, na nagbibigay-daan para sa pagtukoy ng mga flexible na panuntunan sa pagbuo na maaaring magsama ng mga panlabas na module, gumamit ng mga function ng JavaScript, at lumikha ng mga custom na panuntunan sa pagbuo.
Ang scripting language na ginamit sa Qbs ay inangkop para i-automate ang pagbuo at pag-parse ng mga build script ng mga IDE. Bilang karagdagan, ang Qbs ay hindi bumubuo ng mga makefile, at mismo, nang walang mga tagapamagitan tulad ng make utility, ay kumokontrol sa paglulunsad ng mga compiler at linker, na nag-o-optimize sa proseso ng pagbuo batay sa isang detalyadong graph ng lahat ng mga dependency. Ang pagkakaroon ng paunang data sa istraktura at mga dependency sa proyekto ay nagbibigay-daan sa iyo upang epektibong iparallelize ang pagpapatupad ng mga operasyon sa ilang mga thread. Para sa malalaking proyekto na binubuo ng malaking bilang ng mga file at subdirectory, ang muling pagtatayo ng pagganap gamit ang Qbs ay maaaring higit na gumanap ng maraming beses - ang muling pagtatayo ay halos madalian at hindi nagpapalipas ng oras sa paghihintay ang developer.
Alalahanin na noong 2018, nagpasya ang Qt Company na ihinto ang pagbuo ng Qbs. Ang Qbs ay binuo bilang kapalit ng qmake, ngunit sa huli ay napagpasyahan na gamitin ang CMake bilang pangunahing build system para sa Qt sa katagalan. Ang pagbuo ng Qbs ay nagpatuloy na ngayon bilang isang independiyenteng proyekto na sinusuportahan ng mga pwersa ng komunidad at mga interesadong developer. Ang imprastraktura ng Qt Company ay patuloy na ginagamit para sa pagpapaunlad.
Ang makabuluhang pagbabago sa numero ng bersyon ay dahil sa pagpapatupad ng isang bagong backend ng JavaScript, na pumapalit sa QtScript, na hindi na ginagamit sa Qt 6. Itinuring na hindi makatotohanan ang patuloy na pagpapanatili ng QtScript sa loob dahil sa mga kumplikadong pag-binding ng JavaScriptCore nito. Samakatuwid, ang bagong backend ay batay sa self-contained at compact na QuickJS JavaScript engine, na nilikha ni Fabrice Bellard, ang tagapagtatag ng QEMU at FFmpeg. Sinusuportahan ng engine na ito ang detalye ng ES2019 at higit na nahihigitan ng performance ang mga kasalukuyang kakumpitensya sa performance (XS ng 35%, DukTape ng higit sa dalawang beses, JerryScript ng tatlong beses, at MuJS ng pitong beses).
Sa mga tuntunin ng pagbuo ng mga script ng build, ang paglipat sa bagong engine ay hindi dapat magresulta sa anumang makabuluhang pagbabago. Ang pagganap ay mananatiling halos pareho. Ang isang kapansin-pansing pagkakaiba ay ang mas mahigpit na mga kinakailangan ng bagong engine para sa paggamit ng mga hindi natukoy na halaga, na maaaring magbunyag ng mga isyu sa mga kasalukuyang proyekto na hindi napapansin kapag gumagamit ng QtScript.
Pinagmulan: opennet.ru
