Thursday April 18, 2019 by Christian Kandeler | Comments
We are happy to announce version 1.13.0 of the Qbs build tool. This is the last version to be released under the auspices of the Qt Company, but certainly not the least.
Qbs projects can now make use of pkg-config modules. Syntax-wise, the same dependency mechanism as for Qbs' own modules is used. For instance, on a typical Linux machine with an OpenSSL development package installed, the following is enough to let a Qbs project build against it:
Depends { name: "openssl" }
Internally, this functionality is implemented on top of module providers, a powerful new feature that allows creating Qbs modules on demand.
Projects with a Qt dependency now set up the required Qt-specific modules (such as Qt.core
) automatically at build time, using either the PATH
environment variable or the moduleProviders.Qt.qmakeFilePaths
property. It is therefore no longer strictly necessary to create a profile using the setup-qt
command. Behind the scenes, this feature is also implemented using module providers.
The global limit for the number of concurrently running jobs does not make sense for all types of commands. For instance, linkers are typically I/O-bound and take up a lot of memory, so it often makes sense not to parallelize them as much as compilers. Here's how job-specific limits are set on the command line:
$ qbs --job-limits linker:2,compiler:8
These limits can also be provided via preferences and in project files. The details are explained here.
Rules are no longer required to specify output artifacts. As a result, rules whose main purpose is in their "side effect" will look more natural now, as they don't need to declare a dummy output file anymore.
It is no longer necessary to start each project file with an "import qbs" line.
The Application
, DynamicLibrary
and StaticLibrary
items have new properties install and installDir for more convenient installation of target binaries.
We introduced Process.atEnd() and FileInfo.canonicalPath().
GNU linker scripts are now scanned recursively to catch changes to included linker scripts. Thanks to Ola Røer Thorsen for this contribution!
The new cpp.linkerVariant property allows to force the use of ld.gold
, ld.bfd
or lld
for linking.
We introduced the new property Qt.core.enableBigResources for the creation of "big" Qt resources.
Static builds now pull in the default set of plugins as specified by Qt, and the user can specify the set of plugins by type.
The AndroidApk
item has been deprecated. Instead, a normal Application
item can and should be used now.
Building Qt apps is properly supported now. Some small changes to Qt's androiddeployqt
tool were necessary to achieve this, so you need at least Qt 5.12.
There is an autotest module now, which you can use to specify arguments and working directory per test.
We introduced the texttemplate module, a facility similar to qmake's QMAKE_SUBSTITUTES
feature.
We added basic support for Google Protocol Buffers (for C++ and Objective-C). Thanks to Ivan Komissarov for this contribution!
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 in #qbs on chat.freenode.net, and on the mailing list. The documentation and wiki are also good places to get started.
Qbs is also available on a number of 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, Fedora, and Arch Linux.
Qbs 1.13.0 is also included in Qt Creator 4.9.0, which was released earlier this week.
Preparations for handing over the project to the community are ongoing. Stay tuned for further announcements.
Download the latest release here: www.qt.io/download.
Qt 6 was created to be the productivity platform for the future, with next-gen 2D & 3D UX and limitless scalability.
Find webinars, use cases, tutorials, videos & more at resources.qt.io
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
Näytä tämä julkaisu Instagramissa.Henkilön Qt (@theqtcompany) jakama julkaisu