Ang huling paglabas ng mga tool sa pagbuo ng Qbs ay nai-publish na

Kumpanya ng Qt ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° mga kasangkapan sa pagpupulong Qbs 1.13 (Qt Build Suite). Ito ang pinakabagong release ng Qbs na ginawa ng Qt Company. Alalahanin natin ang nangyari kanina kinuha desisyon na huminto sa 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 mahabang panahon.

Sa malapit na hinaharap, inaasahan na ang isang independiyenteng proyekto ay malilikha upang ipagpatuloy ang pagpapaunlad ng Qbs ng komunidad, na ang kapalaran ay nakasalalay sa interes sa sistema ng pagpupulong na pinag-uusapan mula sa mga independiyenteng developer. Ang Qt Company ay huminto sa pagtatrabaho sa Qbs dahil sa pangangailangan para sa karagdagang pamumuhunan at mataas na gastos para sa pag-promote ng Qbs.

Alalahanin natin na para bumuo ng Qbs, kinakailangan ang Qt bilang 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 Qbs ay hindi bumubuo ng mga makefile at independiyenteng kinokontrol ang paglulunsad ng mga compiler at linker, na nag-o-optimize sa proseso ng pagbuo batay sa isang detalyadong graph ng lahat ng dependencies. Ang pagkakaroon ng paunang data tungkol sa istraktura at mga dependency sa proyekto ay nagbibigay-daan sa iyo upang epektibong iparallelize ang pagpapatupad ng mga operasyon sa ilang mga thread.

Mga pangunahing inobasyon sa Qbs 1.13:

  • Nagdagdag ng kakayahang gumamit ng mga module ng pkg-config sa mga proyekto gamit ang parehong mekanismo sa pagproseso ng dependency na ginagamit para sa mga module ng Qbs. Halimbawa, kung ang iyong system ay may package para sa pagbuo ng OpenSSL batay sa pkg-config, upang magamit ito sa isang proyekto ng Qbs, idagdag lamang ang 'Depends { name: "openssl" }';
  • Ipinatupad ang awtomatikong pagtuklas ng mga magagamit na Qt module. Hindi na kailangan ng mga developer na gumawa ng profile na may mga module path gamit ang setup-qt command; lahat ng Qt modules na tinukoy sa mga dependency ay awtomatikong mai-configure;
  • Nagdagdag ng mga tool upang kontrolin ang bilang ng mga gawain sa pagpupulong na tumatakbo nang magkatulad sa antas ng mga indibidwal na utos. Halimbawa, ang pag-link ay lumilikha ng malaking I/O load at kumokonsumo ng malaking halaga ng RAM, kaya ang linker ay nangangailangan ng ibang mga setting ng startup kaysa sa compiler. Maaari na ngayong itakda ang mga hiwalay na setting gamit ang command na β€œqbs β€”job-limits linker:2,compiler:8”;
  • Ang mga pagbabago ay ginawa sa scripting language. Ang mga panuntunan ay maaari na ngayong tukuyin nang hindi tinukoy ang isang stub file para sa output, at hindi kinakailangang gamitin ang "import qbs" na direktiba sa simula ng mga file ng proyekto. Ang mga bagong katangian ng pag-install at pag-installDir ay naidagdag sa mga elemento ng Application, DynamicLibrary at StaticLibrary para sa mas maginhawang pag-install ng mga executable na file;
  • Nagdagdag ng suporta para sa recursive scan ng linker script
    GNU linker;

  • Para sa C++, ang cpp.linkerVariant property ay ipinatupad upang pilitin ang paggamit ng ld.gold, ld.bfd o lld linker;
  • Ipinakilala ng Qt ang property ng Qt.core.enableBigResources para sa paggawa ng malalaking mapagkukunan ng Qt
  • Sa halip na ang hindi na ginagamit na elemento ng AndroidApk, iminungkahi na gamitin ang generic na uri ng Application;
  • Nagdagdag ng module para sa paglikha ng mga pagsubok batay sa autotest;
  • Nagdagdag ng texttemplate module na may mga kakayahan na katulad ng QMAKE_SUBSTITUTES sa qmake;
  • Nagdagdag ng paunang suporta para sa format ng Protocol Buffers para sa C++ at Objective-C.

Pinagmulan: opennet.ru

Magdagdag ng komento