Opublikowano ostateczną wersję narzędzi do budowania Qbs

Firma Qt опубликовала narzędzia montażowe Qbs 1.13 (Pakiet Qt Build). Jest to najnowsza wersja Qbs wyprodukowana przez firmę Qt. Przypomnijmy sobie, co wydarzyło się wcześniej zrobione decyzja o zaprzestaniu rozwoju Qbs. Qbs został opracowany jako zamiennik qmake, ale ostatecznie zdecydowano się używać CMake jako głównego systemu kompilacji Qt w dłuższej perspektywie.

W najbliższej przyszłości należy spodziewać się powstania niezależnego projektu mającego na celu kontynuację rozwoju Qbs przez społeczność, którego losy będą zależeć od zainteresowania omawianym systemem montażu ze strony niezależnych deweloperów. Firma Qt przestaje pracować nad Qbs ze względu na konieczność dodatkowych inwestycji i wysokie koszty promocji Qbs.

Przypomnijmy, że do zbudowania Qbs, Qt jest wymagane jako zależność, chociaż sam Qbs jest przeznaczony do organizowania montażu dowolnych projektów. Qbs używa uproszczonej wersji języka QML do definiowania skryptów kompilacji projektów, co pozwala na zdefiniowanie dość elastycznych reguł kompilacji, które mogą łączyć moduły zewnętrzne, korzystać z funkcji JavaScript i tworzyć niestandardowe reguły kompilacji.
Qbs nie generuje plików makefile i samodzielnie steruje uruchamianiem kompilatorów i linkerów, optymalizując proces kompilacji w oparciu o szczegółowy wykres wszystkich zależności. Obecność początkowych danych o strukturze i zależnościach w projekcie pozwala efektywnie zrównoleglić wykonywanie operacji w kilku wątkach.

Kluczowe innowacje w Qbs 1.13:

  • Dodano możliwość używania modułów pkg-config w projektach korzystających z tego samego mechanizmu przetwarzania zależności, który jest używany w modułach Qbs. Na przykład, jeśli twój system ma pakiet do budowania OpenSSL oparty na pkg-config, aby użyć go w projekcie Qbs, po prostu dodaj 'Depends { name: "openssl" }';
  • Zaimplementowano automatyczne wykrywanie dostępnych modułów Qt. Programiści nie muszą już tworzyć profilu ze ścieżkami modułów za pomocą polecenia setup-qt; wszystkie moduły Qt określone w zależnościach zostaną skonfigurowane automatycznie;
  • Dodano narzędzia umożliwiające kontrolę ilości zadań montażowych przebiegających równolegle na poziomie poszczególnych poleceń. Na przykład łączenie powoduje duże obciążenie we/wy i zużywa znaczną ilość pamięci RAM, więc linker wymaga innych ustawień startowych niż kompilator. Oddzielne ustawienia można teraz ustawić za pomocą polecenia „qbs —job-limits linker:2,compiler:8”;
  • Wprowadzono zmiany w języku skryptowym. Reguły można teraz definiować bez określania pliku pośredniczącego jako wyjścia i nie jest konieczne używanie dyrektywy „import qbs” na początku plików projektu. Do elementów Application, DynamicLibrary i StaticLibrary dodano nowe właściwości install i installDir w celu wygodniejszej instalacji plików wykonywalnych;
  • Dodano obsługę rekurencyjnego skanowania skryptów linkera
    linker GNU;

  • W języku C++ zaimplementowano właściwość cpp.linkerVariant, aby wymusić użycie linkerów ld.gold, ld.bfd lub lld;
  • Qt wprowadza właściwość Qt.core.enableBigResources do tworzenia dużych zasobów Qt
  • Zamiast przestarzałego elementu AndroidApk proponuje się użycie ogólnego typu aplikacji;
  • Dodano moduł do tworzenia testów na podstawie autotestu;
  • Dodano moduł szablonu tekstowego o możliwościach podobnych do QMAKE_SUBSTIUTES w qmake;
  • Dodano początkową obsługę formatu buforów protokołu dla języków C++ i Objective-C.

Źródło: opennet.ru

Dodaj komentarz