Wydanie narzędzia do kompilacji Qbs 1.20 zostało zaprezentowane. To siódme wydanie po zakończeniu współpracy z firmą Qt Company nad projektem, przygotowane przez społeczność zainteresowaną kontynuowaniem rozwoju Qbs. Do kompilacji Qbs wymagany jest Qt, chociaż sam Qbs jest przeznaczony do organizacji budowy wszelkich projektów. Qbs wykorzystuje uproszczoną wersję języka QML do definiowania skryptów kompilacji projektu, co pozwala na określenie wystarczająco elastycznych zasad budowy, w których można podłączać zewnętrzne moduły, używać funkcji w JavaScript i tworzyć dowolne reguły kompilacji.
Język skryptowy używany w Qbs jest dostosowany do automatyzacji generowania i analizowania scenariuszy budowy w zintegrowanych środowiskach programistycznych. Ponadto, Qbs nie generuje plików make, a sam, bez pośredników, takich jak narzędzie make, kontroluje uruchamianie kompilatorów i linkerów, optymalizując proces budowy na podstawie szczegółowego grafu wszystkich zależności. Posiadanie początkowych danych o strukturze i zależnościach w projekcie pozwala na efektywne równoległe wykonanie operacji w kilku wątkach. Dla dużych projektów, składających się z dużej liczby plików i podkatalogów, wydajność ponownej kompilacji przy użyciu Qbs może znacznie przewyższać make — ponowna kompilacja odbywa się niemal natychmiastowo i nie zmusza programisty do marnowania czasu na oczekiwanie.
Przypomnijmy, że w 2018 roku decyzją firmy Qt Company zaprzestano rozwoju Qbs. Qbs rozwijał się jako zamiennik qmake, ale ostatecznie zdecydowano się na użycie CMake jako głównego systemu budowy dla Qt w dłuższej perspektywie. Rozwój Qbs trwa teraz w formie niezależnego projektu, wspieranego przez społeczność i zainteresowanych programistów. Do rozwoju nadal wykorzystywana jest infrastruktura Qt Company.
Główne nowości Qbs 1.20:
- Pełne wsparcie dla frameworka Qt 6, w tym gałąź Qt 6.2, zostało zrealizowane.
- Moduł QtScript został zaktualizowany i przeniesiony na C++17, który nie jest już dostarczany w Qt 6 i teraz wchodzi w skład Qbs.
- W przypadku kompilacji z innym zestawem właściwości zapewniono wyjście listy starych właściwości.
- Dodano polecenie do qbs-config do dodawania całego profilu, co pozwala na zrezygnowanie z oddzielnego dodawania właściwości i znacznie przyspiesza uruchamianie w przypadku posiadania wielu SDK Androida.
- Rozwiązano problem z nieprawidłowym przetwarzaniem czasu aktualizacji plików na platformie FreeBSD.
- Poprawiono wsparcie dla C/C++. Dodano wsparcie dla kompilatorów COSMIC (COLDFIRE/M68K, HCS08, HCS12, STM8 i STM32) oraz narzędzi Digital Mars. Dla kompilatora MSVC wprowadzono właściwość cpp.enableCxxLanguageMacro i dodano wsparcie dla wartości „c++20” w cpp.cxxLanguageVersion.
- Na platformie Android wprowadzono wsparcie dla użycia dekompilatora dex d8 zamiast dx poprzez ustawienie właściwości Android.sdk.dexCompilerName. Zaprzestano wsparcia dla Ministro, programu umożliwiającego działanie bibliotek Qt w systemie Android. Narzędzia do tworzenia pakietów zaktualizowano z aapt do aapt2 (Android Asset Packaging Tool).
Źródło: opennet.ru
