We are delighted to announce the release of Qbs 1.7 “Technical Ecstasy”!
While Qbs 1.7.0 was actually released back in mid-December, we decided to postpone the announcement until after last week’s 1.7.1 patch release in order to get in a few more bug fixes.
In addition to lots of bugfixes and smaller improvements, as well as some significant performance enhancements, this release also brings a number of new features. Let’s start with the largest and most interesting:
Generators are a major new feature in Qbs 1.7 that enables deep integration with your favorite third-party development tools.
The Generators API is designed to be very generic. It provides a means for developers to create “plugins” that perform arbitrary processing on the build graph. So, far we’ve used this to create several generators which output Xcode* and Visual Studio project files. This allows you to develop your projects in your favorite IDE, while still retaining the full power and expressibility of the Qbs build engine.
We’ve also received a community contribution that outputs a Clang compilation database file. This allows Clang-based tools to scan the sources exactly like the compiler, independently of the build system. We’re excited to see what other generators the community might come up with.
To get started with generators, try the
qbs generate command on your project. The generators documentation will be available in the manual in a future release.
Note that the generators features are still very experimental. We will greatly appreciate your feedback in this area.
* the Xcode generator is scheduled for release in Qbs 1.8
Other new features
- Group items can now be nested. This allows Groups to be structured more naturally, as a Group’s condition property is logically ANDed with its parent’s. It also makes Groups more useful when placed into dedicated files as the inherited QML-like syntax requires a root element.
- qrc files can be automatically generated from your project file, obviating the need to manually maintain multiple identical file lists. This functionality is part of the Qt.core module and introduces a couple of new properties which allow you to control how files in your project should be automatically added to a generated qrc file.
- There is now much more complete documentation on Rule authoring. This has been one of our biggest requests in the documentation area.
- Stricter type checking for properties in Qbs project files, which should help make certain syntax errors much clearer.
- Microsoft Visual Studio 2017 support in the C/C++ module.
- QtScxml support in the Qt modules.
- Support for building Inno Setup installers.
One last thing worth mentioning is that the Open Source C++ package manager Conan has added support for Qbs. We believe integrations like this which make it easier to integrate third-party content with your projects are a great ecosystem boon.
The Open Source version is available on the download page, and you can find commercially licensed packages on the Qt Account Portal. Please post issues in our bug tracker. You can also find us on IRC on #qt-qbs on chat.freenode.net, and on the mailing list. The documentation and wiki are also great places to get started.
Qbs is also available on most major packaging systems (Chocolatey, MacPorts, Homebrew) and updated on each release by the Qbs development team. It can also be installed through the native package management system on a number of Linux distributions including but not limited to Debian, Ubuntu, and Arch Linux.
Qbs 1.7.1 is also included in Qt Creator 4.2.1, which was released last week.