Compiles binary resources into source code.
The command is defined in the Core
component of the Qt6
package, which can be loaded like so:
find_package(Qt6 REQUIRED COMPONENTS Core)
qt_add_resources(<VAR> file1.qrc [file2.qrc ...] [OPTIONS ...])
If versionless commands are disabled, use qt6_add_resources()
instead. It supports the same set of arguments as this command.
Since 6.0:
qt_add_resources(<TARGET> <RESOURCE_NAME> [PREFIX <PATH>] [LANG <LANGUAGE>] [BASE <PATH>] [OUTPUT_TARGETS <VARIABLE_NAME>] [FILES ...] [OPTIONS ...])
If versionless commands are disabled, use qt6_add_resources()
instead. It supports the same set of arguments as this command.
To add resources, you can pass either a variable name or a target as the first argument of the command.
When passing a variable name as first argument, qt_add_resources
creates source code from Qt resource files using the Resource Compiler (rcc). Paths to the generated source files are
added to <VAR>
.
When passing a target as first argument, the function creates a resource with the name RESOURCE_NAME
, containing the specified FILES
. The resource is automatically linked into
TARGET
.
For embedding bigger resources, see qt_add_big_resources.
See The Qt Resource System for a general description of Qt resources.
PREFIX
specifies a path prefix under which all files of this resource are accessible from C++ code. This corresponds to the XML attribute prefix
of the .qrc
file format. If
PREFIX
is not given, the target property QT_RESOURCE_PREFIX is used.
LANG
specifies the locale of this resource. This corresponds to the XML attribute lang
of the .qrc
file format.
BASE
is a path prefix that denotes the root point of the file's alias. For example, if BASE
is "assets"
and FILES
is "assets/images/logo.png"
, then the alias
of that file is "images/logo.png"
.
Alias settings for files need to be set via the QT_RESOURCE_ALIAS
source file property.
When using this command with static libraries, one or more special targets will be generated. Should you wish to perform additional processing on these targets, pass a variable name to the OUTPUT_TARGETS
parameter. The qt_add_resources
function stores the names of the special targets in the specified variable.
You can set additional OPTIONS
that should be added to the rcc
calls. You can find possible options in the rcc documentation.
Variable variant, using a .qrc file:
set(SOURCES main.cpp) qt_add_resources(SOURCES example.qrc) add_executable(myapp ${SOURCES})
Target variant, using immediate resources:
add_executable(myapp main.cpp) qt_add_resources(myapp "images" PREFIX "/images" FILES image1.png image2.png)
When adding multiple resources, RESOURCE_NAME
must be unique across all resources linked into the final target.
This especially affects static builds. There, the same resource name in different static libraries conflict in the consuming target.
As part of the free Business evaluation, we offer a free welcome call for companies, to talk about your requirements, and how the Felgo SDK & Services can help you. Just sign up and schedule your call.
Sign up now to start your free Business evaluation: