Qbs 1.17 assembly tool release

Submitted by production of assembly tools Qbs 1.17. This is the fourth release since the Qt Company left the development of the project, prepared by the community interested in continuing the development of Qbs. To build Qbs, Qt is required among the dependencies, although Qbs itself is designed to organize the assembly of any projects. Qbs uses a simplified version of the QML language to define project build scripts, which allows you to define fairly flexible build rules that can connect external modules, use JavaScript functions, and create custom build rules.

The scripting language used in Qbs is adapted to automate the generation and parsing of build scripts by IDEs. In addition, Qbs does not generate makefiles, and 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 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 consisting of a large number of files and subdirectories, the performance of rebuilds using Qbs can outperform make by several times - the rebuild is almost instantaneous and does not make the developer spend time waiting.

Recall that in 2018 the Qt Company was received decision to stop development of Qbs. Qbs was developed as a replacement for qmake, but ultimately it was decided to use CMake as the main build system for Qt in the long run. The development of Qbs has now continued as an independent project supported by community forces and interested developers. The Qt Company infrastructure continues to be used for development.

All innovations Qbs 1.17:

  • Added initial support Qt 6.
  • Added capnp module to use data serialization protocol Cap'n Proto in C++ applications.
  • Added by ability to specify product and project variables on the right side of moduleProvider property definitions (for example, "moduleProviders.mygenerator.chooseLettersFrom: project.beginning").
  • Added support for tools for building C/C++ projects to work on top of hardware without an OS (bare-metal, with the qbs.targetPlatform parameter set to 'none'): KEIL (ARMCLANG, C166, C251), IAR (CR16, AVR32, M68K) And
    GCC (CR16, M68K, M32C, M32R, Super-H, V850, RISC-V, Xtensa).

  • Added support for the Xcode 12.0 development environment for macOS.
  • The Qt for Android modules have been cleaned.
  • Improved build support for the Android platform. Added a packageType property to the Android.sdk module to create “aab” (Android App Bundles) packages instead of “apk”, as well as an aaptName property to use the new aapt2 (Android Asset Packaging Tool). Support for building Android applications for the ARMv5, MIPS and MIPS64 platforms has been discontinued.

Source: opennet.ru

Add a comment