Qbs Manual

Appendix D: Licenses and Code Attributions

Licenses

GNU Lesser General Public License, Version 3

GNU General Public License Version 3, Annotated with The Qt Company GPL Exception 1.0

GNU Lesser General Public License, Version 2.1

The Qt Company LGPL Exception version 1.1

Third-Party Attibutions

Building Applications

Appendix A: Building Qbs

Supported Platforms

System Requirements

Documentation

Building Qbs with СMake

CMake Configure Options

Using ccache with CMake

Building Qbs with Qbs

Qbs Build Options

Using Docker

Linux Containers

Windows Containers

Building Release Packages

build

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>all<@op>-</@op>products

<@op>-</@op><@op>-</@op>build<@op>-</@op>directory<@op>|</@op><@op>-</@op>d <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>changed<@op>-</@op>files <@op>&lt;</@op>file<@op>&gt;</@op><@op>[</@op><@op>,</@op><@op>&lt;</@op>file<@op>&gt;</@op><@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>check<@op>-</@op>outputs

<@op>-</@op><@op>-</@op>check<@op>-</@op>timestamps

<@op>-</@op><@op>-</@op>clean<@op>-</@op>install<@op>-</@op>root

<@op>-</@op><@op>-</@op>command<@op>-</@op>echo<@op>-</@op>mode <@op>&lt;</@op>mode<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>dry<@op>-</@op>run<@op>|</@op><@op>-</@op>n

<@op>[</@op><@op>-</@op><@op>-</@op>file<@op>|</@op><@op>-</@op>f <@op>&lt;</@op>file<@op>&gt;</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>force<@op>-</@op>probe<@op>-</@op>execution

<@op>-</@op><@op>-</@op>jobs<@op>|</@op><@op>-</@op>j <@op>&lt;</@op>n<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>job<@op>-</@op>limits <@op>&lt;</@op>pool1<@op>&gt;</@op>:<@op>&lt;</@op>limit1<@op>&gt;</@op><@op>[</@op><@op>,</@op><@op>&lt;</@op>pool2<@op>&gt;</@op>:<@op>&lt;</@op>limit2<@op>&gt;</@op><@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>enforce<@op>-</@op>project<@op>-</@op>job<@op>-</@op>limits

<@op>-</@op><@op>-</@op>keep<@op>-</@op>going<@op>|</@op><@op>-</@op>k

<@op>-</@op><@op>-</@op>less<@op>-</@op>verbose<@op>|</@op><@op>-</@op>q

<@op>-</@op><@op>-</@op>log<@op>-</@op>level <@op>&lt;</@op>level<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>log<@op>-</@op>time

<@op>-</@op><@op>-</@op>more<@op>-</@op>verbose<@op>|</@op><@op>-</@op>v

<@op>-</@op><@op>-</@op>no<@op>-</@op>install

<@op>-</@op><@op>-</@op>products<@op>|</@op><@op>-</@op>p <@op>&lt;</@op>name<@op>&gt;</@op><@op>[</@op><@op>,</@op><@op>&lt;</@op>name<@op>&gt;</@op><@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>show<@op>-</@op>progress

<@op>-</@op><@op>-</@op>wait<@op>-</@op>lock

Parameters

config:configuration<@op>-</@op>name

property:value

Examples

clean

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>build<@op>-</@op>directory<@op>|</@op><@op>-</@op>d <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>dry<@op>-</@op>run<@op>|</@op><@op>-</@op>n

<@op>-</@op><@op>-</@op>keep<@op>-</@op>going<@op>|</@op><@op>-</@op>k

<@op>-</@op><@op>-</@op>less<@op>-</@op>verbose<@op>|</@op><@op>-</@op>q

<@op>-</@op><@op>-</@op>log<@op>-</@op>level <@op>&lt;</@op>level<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>log<@op>-</@op>time

<@op>-</@op><@op>-</@op>more<@op>-</@op>verbose<@op>|</@op><@op>-</@op>v

<@op>-</@op><@op>-</@op>products<@op>|</@op><@op>-</@op>p <@op>&lt;</@op>name<@op>&gt;</@op><@op>[</@op><@op>,</@op><@op>&lt;</@op>name<@op>&gt;</@op><@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>show<@op>-</@op>progress

Parameters

config:configuration<@op>-</@op>name

Examples

config-ui

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>system

<@op>-</@op><@op>-</@op>help<@op>|</@op><@op>-</@op>h<@op>|</@op><@op>-</@op><@op>?</@op>

Examples

config

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>list <@op>[</@op><@op>&lt;</@op>root<@op>&gt;</@op> <@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>unset <@op>&lt;</@op>key<@op>&gt;</@op>

<@op>-</@op><@op>-</@op><@keyword>export</@keyword> <@op>&lt;</@op>file<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>import <@op>&lt;</@op>file<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>user

<@op>-</@op><@op>-</@op>system

<@op>-</@op><@op>-</@op>help<@op>|</@op><@op>-</@op>h<@op>|</@op><@op>-</@op><@op>?</@op>

Parameters

<@op>&lt;</@op>key<@op>&gt;</@op>

Examples

create-project

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>blacklist <@op>&lt;</@op>blacklist<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>whitelist <@op>&lt;</@op>whitelist<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>flat

<@op>-</@op><@op>-</@op>help<@op>|</@op><@op>-</@op>h<@op>|</@op><@op>-</@op><@op>?</@op>

Examples

dump-nodes-tree

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>build<@op>-</@op>directory<@op>|</@op><@op>-</@op>d <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>products<@op>|</@op><@op>-</@op>p <@op>&lt;</@op>name<@op>&gt;</@op><@op>[</@op><@op>,</@op><@op>&lt;</@op>name<@op>&gt;</@op><@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

Parameters

config:configuration<@op>-</@op>name

Examples

generate

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>generator<@op>|</@op><@op>-</@op>g <@op>&lt;</@op>generator<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>build<@op>-</@op>directory<@op>|</@op><@op>-</@op>d <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>[</@op><@op>-</@op><@op>-</@op>file<@op>|</@op><@op>-</@op>f <@op>&lt;</@op>file<@op>&gt;</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>install<@op>-</@op>root <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>less<@op>-</@op>verbose<@op>|</@op><@op>-</@op>q

<@op>-</@op><@op>-</@op>log<@op>-</@op>level <@op>&lt;</@op>level<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>log<@op>-</@op>time

<@op>-</@op><@op>-</@op>more<@op>-</@op>verbose<@op>|</@op><@op>-</@op>v

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>show<@op>-</@op>progress

Parameters

config:configuration<@op>-</@op>name

property:value

Examples

help

Synopsis

Description

Options

Examples

install

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>all<@op>-</@op>products

<@op>-</@op><@op>-</@op>build<@op>-</@op>directory<@op>|</@op><@op>-</@op>d <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>changed<@op>-</@op>files <@op>&lt;</@op>file<@op>&gt;</@op><@op>[</@op><@op>,</@op><@op>&lt;</@op>file<@op>&gt;</@op><@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>check<@op>-</@op>outputs

<@op>-</@op><@op>-</@op>check<@op>-</@op>timestamps

<@op>-</@op><@op>-</@op>clean<@op>-</@op>install<@op>-</@op>root

<@op>-</@op><@op>-</@op>command<@op>-</@op>echo<@op>-</@op>mode <@op>&lt;</@op>mode<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>dry<@op>-</@op>run<@op>|</@op><@op>-</@op>n

<@op>[</@op><@op>-</@op><@op>-</@op>file<@op>|</@op><@op>-</@op>f <@op>&lt;</@op>file<@op>&gt;</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>force<@op>-</@op>probe<@op>-</@op>execution

<@op>-</@op><@op>-</@op>install<@op>-</@op>root <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>jobs<@op>|</@op><@op>-</@op>j <@op>&lt;</@op>n<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>keep<@op>-</@op>going<@op>|</@op><@op>-</@op>k

<@op>-</@op><@op>-</@op>less<@op>-</@op>verbose<@op>|</@op><@op>-</@op>q

<@op>-</@op><@op>-</@op>log<@op>-</@op>level <@op>&lt;</@op>level<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>log<@op>-</@op>time

<@op>-</@op><@op>-</@op>more<@op>-</@op>verbose<@op>|</@op><@op>-</@op>v

<@op>-</@op><@op>-</@op>no<@op>-</@op>build

<@op>-</@op><@op>-</@op>products<@op>|</@op><@op>-</@op>p <@op>&lt;</@op>name<@op>&gt;</@op><@op>[</@op><@op>,</@op><@op>&lt;</@op>name<@op>&gt;</@op><@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>wait<@op>-</@op>lock

Parameters

config:configuration<@op>-</@op>name

property:value

Examples

list-products

Synopsis

Description

Options

<@op>[</@op><@op>-</@op><@op>-</@op>file<@op>|</@op><@op>-</@op>f <@op>&lt;</@op>file<@op>&gt;</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>build<@op>-</@op>directory<@op>|</@op><@op>-</@op>d <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

Parameters

config:configuration<@op>-</@op>name

Examples

resolve

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>build<@op>-</@op>directory<@op>|</@op><@op>-</@op>d <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>dry<@op>-</@op>run<@op>|</@op><@op>-</@op>n

<@op>[</@op><@op>-</@op><@op>-</@op>file<@op>|</@op><@op>-</@op>f <@op>&lt;</@op>file<@op>&gt;</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>force<@op>-</@op>probe<@op>-</@op>execution

<@op>-</@op><@op>-</@op>less<@op>-</@op>verbose<@op>|</@op><@op>-</@op>q

<@op>-</@op><@op>-</@op>log<@op>-</@op>level <@op>&lt;</@op>level<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>log<@op>-</@op>time

<@op>-</@op><@op>-</@op>more<@op>-</@op>verbose<@op>|</@op><@op>-</@op>v

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>show<@op>-</@op>progress

<@op>-</@op><@op>-</@op>deprecation<@op>-</@op>warnings <@op>&lt;</@op>mode<@op>&gt;</@op>

Parameters

config:configuration<@op>-</@op>name

property:value

Examples

run

--setup-run-env-config

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>all<@op>-</@op>products

<@op>-</@op><@op>-</@op>build<@op>-</@op>directory<@op>|</@op><@op>-</@op>d <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>changed<@op>-</@op>files <@op>&lt;</@op>file<@op>&gt;</@op><@op>[</@op><@op>,</@op><@op>&lt;</@op>file<@op>&gt;</@op><@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>check<@op>-</@op>outputs

<@op>-</@op><@op>-</@op>check<@op>-</@op>timestamps

<@op>-</@op><@op>-</@op>clean<@op>-</@op>install<@op>-</@op>root

<@op>-</@op><@op>-</@op>command<@op>-</@op>echo<@op>-</@op>mode <@op>&lt;</@op>mode<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>dry<@op>-</@op>run<@op>|</@op><@op>-</@op>n

<@op>[</@op><@op>-</@op><@op>-</@op>file<@op>|</@op><@op>-</@op>f <@op>&lt;</@op>file<@op>&gt;</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>force<@op>-</@op>probe<@op>-</@op>execution

<@op>-</@op><@op>-</@op>install<@op>-</@op>root <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>jobs<@op>|</@op><@op>-</@op>j <@op>&lt;</@op>n<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>keep<@op>-</@op>going<@op>|</@op><@op>-</@op>k

<@op>-</@op><@op>-</@op>less<@op>-</@op>verbose<@op>|</@op><@op>-</@op>q

<@op>-</@op><@op>-</@op>log<@op>-</@op>level <@op>&lt;</@op>level<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>log<@op>-</@op>time

<@op>-</@op><@op>-</@op>more<@op>-</@op>verbose<@op>|</@op><@op>-</@op>v

<@op>-</@op><@op>-</@op>no<@op>-</@op>build

<@op>-</@op><@op>-</@op>products<@op>|</@op><@op>-</@op>p <@op>&lt;</@op>name<@op>&gt;</@op><@op>[</@op><@op>,</@op><@op>&lt;</@op>name<@op>&gt;</@op><@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>setup<@op>-</@op>run<@op>-</@op>env<@op>-</@op>config

<@op>-</@op><@op>-</@op>wait<@op>-</@op>lock

Parameters

config:configuration<@op>-</@op>name

property:value

Arguments

<@op>-</@op><@op>-</@op> <arguments>

Examples

session

Synopsis

Description

setup-android

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>ndk<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>sdk<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>qt<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>help<@op>|</@op><@op>-</@op>h<@op>|</@op><@op>-</@op><@op>?</@op>

Examples

setup-qt

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>detect

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>system

<@op>-</@op><@op>-</@op>help<@op>|</@op><@op>-</@op>h<@op>|</@op><@op>-</@op><@op>?</@op>

Examples

setup-toolchains

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>system

<@op>-</@op><@op>-</@op>detect

<@op>-</@op><@op>-</@op>type <@op>&lt;</@op>toolchain type<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>help<@op>|</@op><@op>-</@op>h<@op>|</@op><@op>-</@op><@op>?</@op>

Examples

shell

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>build<@op>-</@op>directory<@op>|</@op><@op>-</@op>d <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>[</@op><@op>-</@op><@op>-</@op>file<@op>|</@op><@op>-</@op>f <@op>&lt;</@op>file<@op>&gt;</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>products<@op>|</@op><@op>-</@op>p <@op>&lt;</@op>name<@op>&gt;</@op><@op>[</@op><@op>,</@op><@op>&lt;</@op>name<@op>&gt;</@op><@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

Parameters

config:configuration<@op>-</@op>name

property:value

Examples

status

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>build<@op>-</@op>directory<@op>|</@op><@op>-</@op>d <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>settings<@op>-</@op>dir <@op>&lt;</@op>directory<@op>&gt;</@op>

Parameters

config:configuration<@op>-</@op>name

Examples

update-timestamps

Synopsis

Description

Options

<@op>-</@op><@op>-</@op>build<@op>-</@op>directory<@op>|</@op><@op>-</@op>d <@op>&lt;</@op>directory<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>less<@op>-</@op>verbose<@op>|</@op><@op>-</@op>q

<@op>-</@op><@op>-</@op>log<@op>-</@op>level <@op>&lt;</@op>level<@op>&gt;</@op>

<@op>-</@op><@op>-</@op>more<@op>-</@op>verbose<@op>|</@op><@op>-</@op>v

<@op>-</@op><@op>-</@op>products<@op>|</@op><@op>-</@op>p <@op>&lt;</@op>name<@op>&gt;</@op><@op>[</@op><@op>,</@op><@op>&lt;</@op>name<@op>&gt;</@op><@op>.</@op><@op>.</@op><@op>.</@op><@op>]</@op>

Parameters

config:configuration<@op>-</@op>name

property:value

Examples

show-version

Synopsis

Description

Options

Command and JavaScriptCommand

Command

JavaScriptCommand

Properties

Common Properties

Command Properties

JavaScriptCommand Properties

Configuring Profiles and Preferences

Setting Up Toolchain Profiles

Global Preferences

Managing Profiles and Preferences

Custom Modules and Items

File System Layout

Custom Modules

Custom Items

Making Qbs Aware of Custom Modules and Items

Project-specific Modules and Items

Making Custom Modules and Items Available Across Projects

Generators

Generating Microsoft Visual Studio Projects

Generating IAR Embedded Workbench Projects

KEIL uVision Projects

Generating Clang Compilation Databases

Generating Makefiles

Targets

Pre-defined Variables

Spaces in Directory Names

Platform-specific Differences in Format

Limitations

How-tos

How do I build a Qt-based project?

How do I make my app build against my library?

Choosing Between Dynamic and Statically-built Qt Projects

How do I build release with debug information?

How do I separate and install debugging symbols?

How do I use precompiled headers?

How do I make use of rpaths?

How do I make sure my generated sources are getting compiled?

How do I run my autotests?

How do I use ccache?

How do I create a module for a third-party library?

How do I create application bundles and frameworks on iOS, macOS, tvOS, and watchOS?

How do I build against libraries that provide pkg-config files?

How do I apply C/C++ preprocessor macros to only a subset of the files in my product?

How do I disable a compiler warning?

How do I make the state of my Git repository available to my source files?

How do I limit the number of concurrent jobs for the linker only?

How do I add QML files to a project?

How do I define a reusable Group of files that can be included in other Qbs files?

How do I access properties of a base type?

How do I print the value of a property?

How do I debug Qbs scripts?

How do I sign an application for an Apple platform?

Qbs Manual

Version 3.3.1

Installing Files

Installing

Windows

macOS

Linux and FreeBSD

BinaryFile Service

Related Declarations

BinaryFile.OpenMode

Available operations

Constructor

atEof

close

filePath

size

resize

pos

seek

read

write

Environment Service

Available Operations

currentEnv

getEnv

putEnv

unsetEnv

File Service

Available Operations

copy

exists

directoryEntries

lastModified

makePath

move

remove

FileInfo Service

Available Operations

baseName

canonicalPath

cleanPath

completeBaseName

completeSuffix

fileName

fromNativeSeparators

fromWindowsSeparators

isAbsolutePath

joinPaths

path

relativePath

suffix

toNativeSeparators

toWindowsSeparators

pathListSeparator

pathSeparator

executableSuffix

Host Service

Available Operations

architecture

os

platform

osVersion

osBuildVersion

osVersionParts

osVersionMajor

osVersionMinor

osVersionPatch

nullDevice

Process Service

Available Operations

Constructor

close

closeWriteChannel

errorString

exec

exitCode

getEnv

kill

readLine

atEnd

readStdErr

readStdOut

setCodec

setEnv

setWorkingDirectory

start

terminate

waitForFinished

workingDirectory

write

writeLine

PropertyList Service

Available operations

Constructor

clear

isEmpty

format

readFromFile

readFromObject

readFromString

toObject

toJSON

toString

toXMLString

writeToFile

TemporaryDir Service

Available Operations

Constructor

isValid

path

remove

TextFile Service

Related Declarations

TextFile.OpenMode

Available operations

Constructor

atEof

close

filePath

readAll

readLine

setCodec

truncate

write

writeLine

Utilities Service

Available Operations

cStringQuote

getHash

rfc1034Identifier

versionCompare

Xml Service

XML DOM Document Node Operations

Constructor

createCDATASection

createElement

createTextNode

documentElement

load

save

setContent

toString

XML DOM Node Operations

Constructor

appendChild

attribute

clear

data

firstChild

hasAttribute

hasAttributes

hasChildNodes

insertAfter

insertBefore

isCDATASection

isElement

isText

lastChild

nextSibling

parentNode

previousSibling

removeChild

replaceChild

setAttribute

setData

setTagName

tagName

text

General Services

Available Operations

require

Extensions to JavaScript Built-in Objects

Array.containsAll

Array.containsAny

Array.uniqueConcat

Console API

console.debug

console.error

console.info

console.log

console.warn

Appendix C: The JSON API

Packet Format

Messages

The hello Message

Resolving a Project

Building a Project

Cleaning a Project

Installing a Project

Canceling an Operation

Adding, Removing and Renaming Source Files

Adding Dependencies

The get<@op>-</@op>run<@op>-</@op>environment Message

The get<@op>-</@op>generated<@op>-</@op>files<@op>-</@op><@keyword>for</@keyword><@op>-</@op>sources Message

Closing a Project

Closing the Session

Progress Messages

The task<@op>-</@op>started Message

The task<@op>-</@op>progress Message

The <@keyword>new</@keyword><@op>-</@op>max<@op>-</@op>progress Message

Messages for Users

The log<@op>-</@op>data Message

The warning Message

The protocol<@op>-</@op>error Message

Project Data

TopLevelProjectData

PlainProjectData

ProductData

GroupData

ArtifactData

ModulePropertiesData

Other Custom Data Types

FilePath

Location

ErrorInfo

DataMode

LogLevel

Environment

Language Introduction

The Obligatory Hello World Example

Reusing Project File Code

Modules

Different Properties for a Single File

Selecting Files by Properties

Property Types

Overriding Property Values from the Command Line

File Tags and Taggers

Rules

Module Providers

Lookup Based on Module Name

Provider Eagerness

Selecting Module Providers

Parameterizing Module Providers

How Qbs Uses Module Providers

Multiplexing

Introduction

Features

Declarative Paradigm

Well-Defined Language

Platform and Programming Language Independence

Correct and Fast Incremental Builds

Extensible Architecture

IDE Integration

Qt Creator

Visual Studio Code

Build Process

Appendix B: Migrating from Other Build Systems

Migrating from qmake

CONFIG

console

ordered

qt

DEFINES

DESTDIR

HEADERS, SOURCES, FORMS, RESOURCES, OTHER_FILES

ICON

INCLUDEPATH

LIBS

OUT_PWD

PWD

_PRO_FILE_

_PRO_FILE_PWD_

QMAKE_ASSET_CATALOGS

QMAKE_BUNDLE_DATA

QMAKE_BUNDLE_EXTENSION

QMAKE_{C,CXX,OBJECTIVE}_CFLAGS{_DEBUG,_RELEASE}

QMAKE_FRAMEWORK_BUNDLE_NAME

QMAKE_FRAMEWORK_VERSION

QMAKE_INFO_PLIST

QMAKE_LFLAGS

QMAKE_{MACOSX,IOS,TVOS,WATCHOS}_DEPLOYMENT_TARGET

QMAKE_RPATHDIR

QMAKE_SONAME_PREFIX

QML_IMPORT_PATH

QT

QTPLUGIN

RC_FILE

TARGET

TEMPLATE

app

lib

subdirs

message(), warning(), error(), log()

biplist

cppscanner

dmgbuild

ds_store

ds_store

mac_alias

mac_alias

QuickJS

Building for Android

Creating Android Application Packages

Building for INTEGRITY

Building for iOS

Building User Interfaces

Creating App Bundles

Multiple Architectures and Build Variants

Building for Linux

Building for macOS

Building User Interfaces

Creating App Bundles

Multiple Architectures and Build Variants

Building macOS Disk Images

Building for QNX

Building for tvOS

Building User Interfaces

Creating App Bundles

Multiple Architectures and Build Variants

Building for VxWorks

Building for watchOS

Building User Interfaces

Creating App Bundles

Multiple Architectures and Build Variants

Building for Windows

Windows Resources

Universal Windows Platform

Building Windows Installers

Qt Modules

Creating Dependencies to Qt Modules

List of Submodules

Managing Qt Versions

Introduction

Multiple Qt Builds

Reference

Running Applications

Setup

Using the Shell

Special Property Values

base

exportingProduct

filePath

importingProduct

module

original

outer

path

product

project

Console Application

C++20 Modules

Named Modules

Module Partitions

Modules and Libraries

Import std module

Static Library

Dynamic Library

Convenience Items

Autotest

Project Properties

Config Module

Configurable Library

Version Header

Tutorial

Usage

Node.js

Windows Installer XML Toolset

Inno Setup

BSD

TypeScript

Compiler Options

Homebrew

ccache

ccache documentation about precompiled headers

Chocolatey

JSON Compilation Database Format Specification

Adopt the @2x Naming Convention

DYLD documentation

dmgbuild - Settings

Qt Licensing

nanopb

protoc

Qt Account

GNU General Public License, version 2

MacPorts

Qt SDK

Qt Creator

Relevant File Tags

Relevant File Tags

QML.AppleApplicationDiskImage

QML.AppleDiskImage

QML.Application

QML.ApplicationExtension

QML.Artifact

QML.AutotestRunner

Setting Properties for individual Tests

Relevant Job Pools

QML.BinaryProbe

QML.ConanfileProbe

Examples

Using ConanfileProbe with Conan Module Provider

Including Files Generated by Conan

Setting Module Properties in Products

Setting Up a Profile

QML.CppApplication

QML.CppLibrary

QML.CppStd

QML.Depends

Dependency Parameters

QML.DynamicLibrary

QML.Export

Relevant File Tags

Relevant File Tags

Relevant File Tags

QML.FileTagger

QML.FrameworkProbe

QML.Group

Typical Uses of Groups by Example

Wildcards

Attaching Module Properties to Source Files

Attaching Module Properties to Generated Files

Groups in Modules

Grouping Related Items

QML.IncludeProbe

QML.InnoSetup

QML.InstallPackage

QML.JavaClassCollection

QML.JavaJarFile

QML.JobLimit

QML.NativeBinary

QML.IncludeProbe

QML.LoadableModule

QML.Module

Accessing Product and Module Properties

Accessing Properties of the Current Module

Properties of the Dependent Modules

Accessing Properties of the Dependent Product

Special Property Values

Dependency Parameters

QML.ModuleProvider

QML.ObjectLibrary

QML.Parameter

QML.Parameters

QML.PathProbe

QML.PkgConfigProbe

QML.Plugin

QML.Probe

QML.Product

Multiplexing Properties

Read-Only Properties

QML.Profile

QML.Project

QML.Properties

QML.PropertyOptions

Relevant File Tags

Relevant File Tags

Relevant File Tags

Relevant File Tags

Relevant File Tags

Relevant File Tags

Relevant File Tags

Example

QML.QtApplication

QML.QtGuiApplication

QML.QtLupdateRunner

Relevant File Tags

inputs and outputs

QML.Rule

A Simple Example

The inputs and outputs Variables

Rules and Product Types

A Complete Example

QML.Scanner

QML.StaticLibrary

QML.SubProject

QML.XPCService

Dependency Parameters

Relevant File Tags

Main bundles

Relevant File Tags

Dependencies

Relevant File Tags

Prerequisites

Example

Setting Up the Run Environment

Dependency Parameters

Relevant File Tags

Relevant Job Pools

Appearance Properties

License Properties

Relevant File Tags

Relevant File Tags

Dependencies

Relevant File Tags

Dependencies

Example usage

Relevant File Tags

Relevant File Tags

Relevant File Tags

Relevant File Tags

Relevant File Tags

Relevant File Tags

Relevant File Tags

Relevant File Tags

Dependencies

Relevant File Tags

Relevant File Tags

Installation Properties

Multiplexing Properties

Example

Placeholder Syntax

Relevant File Tags

Relevant File Tags

Command-Line Interface

List of Built-in Services

List of All Items

Target Platforms

List of Convenience Items

List of Language Items

List of Module Providers

List of Modules

List of Probes