wydanie narzędzi do kompilacji . To czwarte wydanie po zakończeniu współpracy z firmą Qt Company nad projektem, przygotowane przez społeczność zainteresowaną kontynuowaniem rozwoju Qbs. Do kompilacji Qbs wymagane są zależności od Qt, chociaż sam Qbs jest zaprojektowany do organizacji kompilacji dowolnych projektów. Qbs używa uproszczonej wersji języka QML do definiowania skryptów kompilacji projektu, co pozwala na określenie wystarczająco elastycznych zasad kompilacji, w których można podłączać zewnętrzne moduły, używać funkcji JavaScript i tworzyć dowolne zasady 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 firma Qt Company podjęła decyzję o zaprzestaniu rozwijania Qbs. Qbs rozwijał się jako zamiennik qmake, ale ostatecznie zdecydowano się na użycie CMake jako głównego systemu kompilacji dla Qt na dłuższą metę. Rozwój Qbs jest teraz kontynuowany w formie niezależnego projektu, wspieranego przez społeczność i zainteresowanych programistów. Na razie nadal korzysta się z infrastruktury Qt Company.
Podstawowe Qbs 1.17:
- Dodano początkowe wsparcie .
- Dodano moduł capnp do użycia protokołu serializacji danych w aplikacjach w C++.
- możliwość określenia zmiennych product i project w prawej części definicji właściwości moduleProvider (np. „moduleProviders.mygenerator.chooseLettersFrom: project.beginning”).
- Dodano wsparcie dla narzędzi do kompilacji projektów C/C++ do pracy na sprzęcie bez systemu operacyjnego (bare-metal, z ustawieniem parametru qbs.targetPlatform na wartość 'none'): KEIL (ARMCLANG, C166, C251), IAR (CR16, AVR32, M68K) oraz
GCC (CR16, M68K, M32C, M32R, Super-H, V850, RISC-V, Xtensa). - Dodano wsparcie dla środowiska programistycznego Xcode 12.0 dla macOS.
- Przeprowadzono porządki w modułach „Qt for Android”.
- Poprawiono wsparcie kompilacji dla platformy Android. Do modułu Android.sdk dodano właściwość packageType do tworzenia pakietów „aab” (Android App Bundles) zamiast „apk”, a także właściwość aaptName do użycia nowego aapt2 (Android Asset Packaging Tool). Zaprzestano wsparcia dla kompilacji aplikacji Android dla architektur ARMv5, MIPS i MIPS64.
Źródło: opennet.ru
