The scripting language used in Qbs has been adapted to automate the generation and parsing of build scripts by IDEs. In addition, Qbs does not generate makefiles, but itself, without intermediaries such as the make utility, controls the launch of compilers and linkers, optimizing the build process based on a detailed graph of all dependencies. The presence of the initial data on the structure and dependencies in the project allows you to effectively parallelize the execution of operations in several threads. For large projects with a large number of files and subdirectories, the performance of rebuilding using Qbs can outpace make by several times – rebuilding is almost instantaneous and does not force the developer to waste time waiting.
Recall that in 2018, the Qt Company decided to discontinue the development of Qbs. Qbs evolved as a replacement for qmake, but ultimately it was decided to use CMake as the main build system for Qt in the long run. Development of Qbs has now continued as an independent project supported by the community and interested developers. For development, the Qt Company infrastructure continues to be used.
The main innovations Qbs 1.20:
- Full support for the Qt 6 framework has been implemented, including the Qt 6.2 branch.
- Updated and ported to C ++ 17 the QtScript module, which is no longer shipped in Qt 6 and is now part of Qbs.
- In the case of an assembly with a different set of properties, the list of old properties is displayed.
- A command has been added to qbs-config to add the entire profile, which eliminates the need for separate addition of properties and significantly speeds up the launch in the presence of multiple Android SDKs.
- Fixed problem with incorrect handling of file update times on FreeBSD platform.
- Improved C / C ++ support. Added compiler support COSMIC (COLDFIRE / M68K, HCS08, HCS12, STM8 and STM32) and Digital Mars toolkit. For the MSVC compiler, implemented the cpp.enableCxxLanguageMacro property and added support for the “c ++ 20” value in cpp.cxxLanguageVersion.
- For the Android platform, support has been implemented for using the d8 dex compiler instead of dx by setting the Android.sdk.dexCompilerName property. Discontinued support Minister, programs for ensuring the work of Qt-libraries in the Android system. The packaging tool has been updated from aapt to aapt2 (Android Asset Packaging Tool).