Kutolewa kwa zana za ujenzi za Qbs 1.21 na kuanza kwa majaribio ya Qt 6.3

Toleo la zana za ujenzi za Qbs 1.21 limetangazwa. Hii ni mara ya nane kutolewa tangu Kampuni ya Qt ilipoacha uendelezaji wa mradi huo, uliotayarishwa na jamii inayopenda kuendeleza uendelezaji wa Qbs. Ili kuunda Qbs, Qt inahitajika kati ya vitegemezi, ingawa Qbs yenyewe imeundwa kuandaa mkusanyiko wa miradi yoyote. Qbs hutumia toleo lililorahisishwa la lugha ya QML kufafanua hati za muundo wa mradi, ambayo hukuruhusu kufafanua sheria za muundo zinazonyumbulika kiasi ambazo zinaweza kuunganisha moduli za nje, kutumia vitendaji vya JavaScript, na kuunda sheria maalum za uundaji.

Lugha ya uandishi inayotumiwa katika Qbs inarekebishwa ili kufanya uzalishaji na uchanganuzi wa hati za muundo kiotomatiki kwa IDE. Kwa kuongezea, Qbs haitoi faili, na yenyewe, bila wapatanishi kama vile shirika la kutengeneza, inadhibiti uzinduzi wa vikusanyaji na viunganishi, kuboresha mchakato wa ujenzi kulingana na grafu ya kina ya vitegemezi vyote. Uwepo wa data ya awali juu ya muundo na utegemezi katika mradi hukuruhusu kusawazisha kwa ufanisi utekelezaji wa shughuli katika nyuzi kadhaa. Kwa miradi mikubwa inayojumuisha idadi kubwa ya faili na subdirectories, utendakazi wa ujenzi kwa kutumia Qbs unaweza kufanya vizuri zaidi kwa mara kadhaa - uundaji upya ni karibu mara moja na haufanyi msanidi programu kutumia muda kusubiri.

Kumbuka kwamba mnamo 2018, Kampuni ya Qt iliamua kuacha kuunda Qbs. Qbs ilitengenezwa kama mbadala wa qmake, lakini mwishowe iliamuliwa kutumia CMake kama mfumo mkuu wa ujenzi wa Qt kwa muda mrefu. Ukuzaji wa Qbs sasa umeendelea kama mradi huru unaoungwa mkono na vikosi vya jamii na wasanidi wanaovutiwa. Miundombinu ya Kampuni ya Qt inaendelea kutumika kwa maendeleo.

Ubunifu muhimu katika Qbs 1.21:

  • Utaratibu wa watoa moduli (jenereta za moduli) umeundwa upya. Kwa mifumo kama vile Qt na Boost, sasa inawezekana kutumia zaidi ya mtoa huduma mmoja, bainisha ni mtoaji gani wa kuendesha kwa kutumia kipengele kipya cha qbsModuleProviders, na ubainishe kipaumbele cha kuchagua moduli zinazozalishwa na watoa huduma tofauti. Kwa mfano, unaweza kutaja watoa huduma wawili "Qt" na "qbspkgconfig", ya kwanza ambayo itajaribu kutumia usakinishaji wa Qt wa mtumiaji (kupitia utafutaji wa qmake), na ikiwa hakuna usakinishaji huo unaopatikana, mtoa huduma wa pili atajaribu kutumia. Qt iliyotolewa na mfumo (kupitia wito kwa pkg-config) : CppApplication { Inategemea {name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Imeongeza mtoa huduma wa "qbspkgconfig", ambaye alichukua nafasi ya mtoaji wa sehemu ya "fallback", ambayo ilijaribu kutengeneza moduli kwa kutumia pkg-config ikiwa moduli iliyoombwa haikutolewa na watoa huduma wengine. Tofauti na "fallback", "qbspkgconfig" badala ya kuita pkg-config shirika hutumia maktaba ya C++ iliyojengewa ndani kusoma faili za ".pc" moja kwa moja, ambayo huharakisha kazi na kutoa maelezo ya ziada kuhusu utegemezi wa kifurushi ambao haupatikani wakati wa kupiga simu. pkg-config shirika.
  • Usaidizi ulioongezwa kwa vipimo vya C++23, ambavyo hufafanua kiwango cha C++ cha siku zijazo.
  • Usaidizi ulioongezwa kwa usanifu wa Elbrus E2K kwa zana ya zana ya GCC.
  • Kwa mfumo wa Android, kipengele cha Android.ndk.buildId kimeongezwa ili kubatilisha thamani chaguomsingi ya alamisho ya kiunganishi cha "--build-id".
  • Moduli za capnproto na protobuf hutekeleza uwezo wa kutumia saa za utekelezaji zinazotolewa na mtoa huduma wa qbspkgconfig.
  • Matatizo yaliyotatuliwa kwa ufuatiliaji wa mabadiliko katika faili chanzo kwenye FreeBSD kutokana na milisekunde kudondoshwa wakati wa kukadiria nyakati za kurekebisha faili.
  • Imeongeza kipengele cha ConanfileProbe.verbose ili kurahisisha utatuzi wa miradi inayotumia kidhibiti kifurushi cha Conan.

Zaidi ya hayo, tunaweza kutambua mwanzo wa majaribio ya alpha ya mfumo wa Qt 6.3, ambayo inatekeleza moduli mpya ya "Qt Language Server" yenye usaidizi wa Seva ya Lugha na itifaki za JsonRpc 2.0, sehemu kubwa ya vitendaji vipya imeongezwa kwenye Msingi wa Qt. moduli, na MessageDialog ya aina ya QML imetekelezwa katika moduli ya Mazungumzo ya Haraka ya Qt Ili kutumia visanduku vya mazungumzo vilivyotolewa na jukwaa, seva ya Qt Shell iliyojumuishwa na API ya kuunda viendelezi vya ganda lako maalum vimeongezwa kwenye moduli ya Mtunzi wa Qt Wayland. .

Moduli ya Qt QML inatoa utekelezaji wa mkusanyaji wa qmltc (aina ya QML), ambayo inakuruhusu kukusanya miundo ya kitu cha QML katika madarasa katika C++. Kwa watumiaji wa kibiashara wa Qt 6.3, majaribio ya bidhaa ya Qt Quick Compiler imeanza, ambayo, pamoja na Kikusanyaji cha Aina ya QML kilichotajwa hapo juu, kinajumuisha Kikusanya Hati cha QML, ambacho kinakuruhusu kukusanya vitendaji na vielezi vya QML katika msimbo wa C++. Imebainika kuwa matumizi ya Qt Quick Compiler yataleta utendakazi wa programu zinazotegemea QML karibu na programu asili; haswa, wakati wa kuandaa viendelezi, kuna kupungua kwa muda wa kuanza na utekelezaji kwa takriban 30% ikilinganishwa na kutumia toleo lililotafsiriwa. .

Chanzo: opennet.ru

Kuongeza maoni