release of the build tool . This is the third release after Qt Company ceased development of the project, prepared by the community interested in continuing Qbs development. Building Qbs requires Qt among its dependencies, although Qbs itself is designed for organizing the build of any projects. Qbs uses a simplified version of the QML language to define project build scripts, allowing for flexible build rules, where external modules can be linked, JavaScript functions can be utilized, and arbitrary build rules can be created.
The scripting language used in Qbs is adapted for automating the generation and parsing of build scripts in integrated development environments. Furthermore, Qbs does not generate makefiles but controls the launch of compilers and linkers directly, optimizing the build process based on a detailed graph of all dependencies. Having original data about the project's structure and dependencies allows for efficiently parallelizing operations across multiple threads. For large projects consisting of a significant number of files and subdirectories, the performance of rebuilding using Qbs can surpass make by several timesārebuilds occur almost instantly and do not cause developers to waste time waiting.
Letās remember that in 2018, the Qt Company made a decision to cease Qbs development. Qbs developed as a replacement for qmake, but ultimately it was decided to use CMake as the primary build system for Qt in the long term. Qbs development is now continued as an independent project supported by the community and interested developers. For development, the infrastructure of Qt Company is still being used.
Key Qbs 1.16:
- Merged list properties in modules with mutual dependencies, which is important when handling flags like cpp.staticLibraries;
- Added automatic detection of GCC and IAR for Renesas microcontrollers;
- Added support for Xcode 11.4 on macOS;
- Enhanced capabilities of the clang-cl support module;
- Provided automatic detection of MSVC, clang-cl, and MinGW in profiles where the toolchain location is not explicitly defined;
- Simplified the inclusion and configuration of separately installed debug information (cpp.separateDebugInformation) through Application and DynamicLibrary sections in project settings;
- Added support for Qt 5.14 for Android and updated the qbs-setup-android tool;
- Added support for JSON files generated by the moc utility in Qt.core.generateMetaTypesFile and Qt.core.metaTypesInstallDir (Qt >= 5.15);
- Added support for the new type declaration mechanism for QML introduced in Qt 5.15;
- Added ConanfileProbe configuration to simplify integration of Qbs with the package manager (for C/C++).
Source: opennet.ru
