Qbs 1.11 released
March 28, 2018 by Christian Kandeler | Comments
We are happy to announce version 1.11.0 of the Qbs build tool.
What's new?
Language Improvements
The long-existing list properties qbs.targetOS and qbs.toolchain have been complemented by their scalar counterparts qbs.targetPlatform and qbs.toolchainType, respectively. The new properties make it easier to specify the target platform on the command line and in profiles, while you should still use the existing ones in your project files for purposes such as conditional compilation.
Modules can now declare their own target artifacts using the new filesAreTargets property of the Group item. The next version of Qbs will add the ability to auto-generate such modules from your products. These modules can then be distributed along with the binaries so that other Qbs projects can make use of them by simply declaring a dependency on the module.
In addition to TextFile, we now also have BinaryFile for reading and writing binary files.
C/C++ Support
We have added the property cpp.rpathOrigin, which evaluates to @loader_path
on Darwin and $ORIGIN
on other Unix-like platforms.
You can now specify flags to be passed to the compiler frontend only when linking via the cpp.driverLinkerFlags property.
The value "c++17"
is now properly supported for cpp.cxxLanguageVersion, emitting the /std:c++17
flag when using an MSVC compiler that supports it.
The auto-detection mechanism for GCC-like compilers now considers typical MinGW prefixes, that is, file names such as i686-w64-mingw32-gcc
are picked up from the search path.
Command-line Interface
The syntax for specifying configuration names has always been rather confusing, which is why they are now passed using the new config
key. For instance, to build your project for two independent configurations called debug
and release
, you now write:
$ qbs config:debug config:release
As a result, all command-line parameters are now either options, option arguments or key-value pairs.
We have also dropped the requirement that property assignments have to appear after all options. This comes in particularly handy when amending earlier inputs using the shell history.
Documentation
The item and module references were re-designed, resulting in much-improved readability.
Furthermore, we have added a how-to on the topic of pre-compiled headers, and provided missing documentation for our XML support and the Utilities functions.
Other New Features
The "run" functionality as used by the command of the same name now considers an executable's library dependencies, that is, it adds the paths they are located in to the respective environment variable (PATH on Windows, DYLD_LIBRARY_PATH/DYLD_FRAMEWORK_PATH on macOS and LD_LIBRARY_PATH on other Unix-like systems). This also works when running from Qt Creator.
Try It!
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.11.0 is also included in Qt Creator 4.6.0, which was released this week as well.
Blog Topics:
Comments
Subscribe to our newsletter
Subscribe Newsletter
Try Qt 6.8 Now!
Download the latest release here: www.qt.io/download.
Qt 6.8 release focuses on technology trends like spatial computing & XR, complex data visualization in 2D & 3D, and ARM-based development for desktop.
We're Hiring
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.