Qbs 1.20 comes with support improvements for C, C ++, support for QT 6 and more

The launch of the new version of “Qbs 1.20”, this being the seventh release since Qt Company left development of the project and that is produced by the community with an interest in continuing with the development of Qbs.

It should be remembered that in 2018, Qt Company decided to discontinue the development of Qbs. Qbs evolved as a replacement for qmake, but it was eventually decided to use CMake as the main build system for Qt in the long run. The development of Qbs now continues as an independent project supported by the community and interested developers. For development, the Qt Company infrastructure is still used.

To build Qbs, Qt is required as a dependency, although Qbs itself is designed to organize the build of any project. Qbs uses a simplified version of the QML language to define build scripts for your project, allowing you to define fairly flexible build rules in which external modules can be plugged in, JavaScript functions can be used, and arbitrary build rules can be created.

The scripting language used in Qbs has been adapted to automate the generation and analysis of sequences compilation commands by IDEs. Furthermore, Qbs does not generate makefiles, but itself, without intermediaries such as the make utility, controls the launch of compilers and linkers, optimizing the construction 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 on multiple threads. For large projects with a large number of files and subdirectories, the performance of rebuilding with Qbs can outperform multiple times; rebuilding is almost instantaneous and does not force the developer to waste time waiting.

Main news of Qbs 1.20

In this new version of Qbs 1.20 there have been about 127 contributions that were included in this version since version 1.19.0.

Of the most important changes, it stands out that it has been implemented full Qt 6 support and having support up to Qt 6.2 branch, Besides that the QtScript module was updated and ported to C ++ 17, which is no longer shipped in Qt 6 and is now part of Qbs.

For Android platform, support has been implemented to use the dex d8 compiler instead of dx setting the Android.sdk.dexCompilerName property, while on the other hand support for Minister has been discontinued, a program to secure Qt libraries working on Android system and packaging tool has been updated from aapt to aapt2 (Android asset packaging tool) which was introduced in Build Tools in 26.0.2 and replaced aapt in gradle since version 3.0.0.

Also highlighted in this new version that compatibility with C and C ++ has been improved, besides that sand added support for COSMIC compilers (COLDFIRE / M68K, HCS08, HCS12, STM8 and STM32) and the Digital Mars Toolkit. For the MSVC compiler, it implemented the cpp.enableCxxLanguageMacro property and added support for the value "c ++ 20" in cpp.cxxLanguageVersion.

Of the other changes that stand out from this new version:

  • For an assembly with a different property set, the list of old properties is displayed.
  • A command has been added to qbs-config to add the full profile, which eliminates the need to add separate properties and significantly speeds up launch in the presence of multiple Android SDKs.
  • Fixed issue with incorrect handling of file update times on FreeBSD platform.
  • In macOS Homebrew it has been moved from qmake to CMake.
  • Fixed cpp.linkerWrapper handling with MSVC toolchain
  • Fixed support for QML tools being moved to directory/libexecin Qt 6.2

Finally if you are interested in knowing more about it about this new version, you can check the details In the following link.