Skip to main content

QtWS17 - Qbs – Build Systems State of the Union, Jake Petroules, The Qt Company

The build system is one of the most important aspects of a streamlined software development pipeline. A build tool is something that developers use throughout the day, every day, and should be lightning fast, easy to use, and produce instantaneous and correct incremental builds. Build systems that are slow, hard to maintain, or underspecify dependencies (leading to broken or malfunctioning builds) significantly impact your team’s workflow and waste countless hours of time. Qbs aims to be the perfect high level cross platform build system — and intended replacement for qmake within Qt. It started as a research project at Nokia in 2010 and has been ongoing since, with the initial Qt port planned for completion this year in 2017. Qbs aims to support any toolkit, any language, and any OS, with excellent support for cross compilation, IDE integration, embedded device deployment & packaging, speed, flexibility, expressiveness, and ease of use. This talk is a continuation of “Qbs – the Next Generation of Build Automation” from Qt World Summit 2016 in San Francisco. It provides an introduction to Qbs and how it compares to other build systems like CMake and qmake. It will cover the general design of Qbs, illustrate the power of its dependency management system, and show off some of its unique features like ABI-based linking optimization, building for multiple platforms in parallel, and library-based design. We will also cover some of the powerful new features added over the past year, such as multiplexing and parameterized dependencies, as well as some examples and performance benchmarks comparing Qbs to the competition. The talk will also briefly touch on the progress made and lessons learned porting Qt to use Qbs as its build system.