Paglabas ng Qbs 1.21 build tools at pagsisimula ng Qt 6.3 testing

Ang Qbs 1.21 build tools release ay inihayag. Ito ang ikawalong pagpapalabas mula noong iniwan ng Qt Company ang pagbuo ng proyekto, na inihanda ng komunidad na interesadong ipagpatuloy ang pagbuo ng Qbs. Upang bumuo ng Qbs, kinakailangan ang Qt sa mga dependency, bagama't ang Qbs mismo ay idinisenyo upang ayusin ang pagpupulong ng anumang mga proyekto. Gumagamit ang Qbs ng pinasimpleng bersyon ng wikang QML upang tukuyin ang mga script ng pagbuo ng proyekto, na nagbibigay-daan sa iyong tukuyin ang mga medyo nababaluktot na panuntunan sa pagbuo na maaaring kumonekta sa 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.

Mga pangunahing inobasyon sa Qbs 1.21:

  • Ang mekanismo ng mga tagapagbigay ng module (mga generator ng module) ay muling idinisenyo. Para sa mga framework gaya ng Qt at Boost, posible na ngayong gumamit ng higit sa isang provider, tukuyin kung aling provider ang tatakbo gamit ang bagong property ng qbsModuleProviders, at tumukoy ng priyoridad para sa pagpili ng mga module na binuo ng iba't ibang provider. Halimbawa, maaari mong tukuyin ang dalawang provider na "Qt" at "qbspkgconfig", ang una ay susubukan na gamitin ang pag-install ng Qt ng user (sa pamamagitan ng qmake search), at kung walang nakitang ganoong pag-install, susubukan ng pangalawang provider na gamitin. ang Qt na ibinigay ng system (sa pamamagitan ng isang tawag sa pkg-config): CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Idinagdag ang provider na "qbspkgconfig", na pumalit sa provider ng "fallback" na module, na nagtangkang bumuo ng module gamit ang pkg-config kung ang hiniling na module ay hindi nabuo ng ibang mga provider. Hindi tulad ng "fallback", "qbspkgconfig" sa halip na tawagan ang pkg-config utility ay gumagamit ng built-in na C++ library para direktang basahin ang ".pc" na mga file, na nagpapabilis sa trabaho at nagbibigay ng karagdagang impormasyon tungkol sa mga dependency ng package na hindi available kapag tumatawag sa pkg-config utility.
  • Nagdagdag ng suporta para sa detalye ng C++23, na tumutukoy sa hinaharap na pamantayan ng C++.
  • Nagdagdag ng suporta para sa arkitektura ng Elbrus E2K para sa toolkit ng GCC.
  • Para sa Android platform, ang Android.ndk.buildId property ay idinagdag upang i-override ang default na value para sa "--build-id" linker flag.
  • Ang capnproto at protobuf module ay nagpapatupad ng kakayahang gumamit ng mga runtime na ibinigay ng qbspkgconfig provider.
  • Nalutas ang mga isyu sa pagsubaybay sa pagbabago sa mga source file sa FreeBSD dahil sa mga millisecond na bumababa kapag tinatantya ang mga oras ng pagbabago ng file.
  • Idinagdag ang ConanfileProbe.verbose property upang gawing mas madali ang pag-debug ng mga proyekto na gumagamit ng Conan package manager.

Bukod pa rito, mapapansin natin ang simula ng alpha testing ng Qt 6.3 framework, na nagpapatupad ng bagong module na β€œQt Language Server” na may suporta para sa Language Server at JsonRpc 2.0 protocols, malaking bahagi ng mga bagong function ang naidagdag sa Qt Core. module, at ang uri ng QML na MessageDialog ay ipinatupad sa Qt Quick Dialogs module Upang magamit ang mga dialog box na ibinigay ng platform, isang composite Qt Shell server at isang API para sa paggawa ng sarili mong mga custom na shell extension ay naidagdag sa Qt Wayland Compositor module .

Ang Qt QML module ay nag-aalok ng pagpapatupad ng qmltc (QML type compiler) compiler, na nagbibigay-daan sa iyong i-compile ang QML object structures sa mga klase sa C++. Para sa mga komersyal na gumagamit ng Qt 6.3, nagsimula na ang pagsubok sa produkto ng Qt Quick Compiler, na, bilang karagdagan sa nabanggit sa itaas na QML Type Compiler, kasama ang QML Script Compiler, na nagbibigay-daan sa iyong i-compile ang mga function at expression ng QML sa C++ code. Napansin na ang paggamit ng Qt Quick Compiler ay magdadala sa pagganap ng mga programang nakabase sa QML na mas malapit sa mga katutubong programa; lalo na, kapag nagko-compile ng mga extension, mayroong pagbawas sa oras ng pagsisimula at pagpapatupad ng humigit-kumulang 30% kumpara sa paggamit ng na-interpret na bersyon. .

Pinagmulan: opennet.ru

Magdagdag ng komento