qbs reached mile stone 0.3

Qbs, our alternative build tool, has reached a new mile stone. Since the last one in December, qbs has had the following improvements:

The whole codebase has seen a major overhaul. Experiments from the prototype phase have been removed. The API for the Qt Creator plugin has been stabilized. The test suite has been extended to cover most features. On our internal test farm - the same that is used for Qt Creator - qbs is tested on Linux, OS X and Windows every time the testing infrastructure detects a new change in the repository.

Support for installing your built products has been added. To install your project to ~/foo/bar use

qbs install --install-root ~/foo/bar

The project loading phase got faster. On my machine, the times to generate the makefiles respectively create the build graph for Qt Creator 2.7 look like this:

Linux Windows
qmake -r 26.284 s 99.581 s
qbs resolve 13.813 s 5.510 s

The running time of incremental null builds, that is determining that nothing of your project has changed, look currently like this for Qt Creator 2.7 (same machine with Windows/Linux dual boot):

Linux Windows
(n)make 3.228s 45.199 s
jom n/a 25.098 s
qbs 1.884s 1.630 s

The performance gain stems from the fact that qbs only has to check the timestamps of the project's source files. It already knows the timestamps of generated files from the previous build.
On Windows this approach gains us much more than on Linux because retrieving the file timestamps is so unbelievably slow.

Support for detecting changes of project settings has been improved. Changing properties like cpp.defines will now get noticed and result in a rebuild of the affected products.

Last but not least, Qt Creator 2.7 comes with an experimental Qbs project manager plugin. It provides support for loading and building qbs projects.

Blog Topics: