qt_add_resources
Компилирует двоичные ресурсы в исходный код.
Команда определена в компоненте Core пакета Qt6. Загрузите пакет с помощью:
find_package(Qt6 COMPONENTS Core REQUIRED)
Краткое описание
qt_add_resources(<VAR> file1.qrc [file2.qrc ...]
[OPTIONS ...]) Если команды без версии отключены, используйте qt6_add_resources() вместо. Она поддерживает тот же набор аргументов, что и данная команда.
С версии 6.0:
qt_add_resources(<TARGET> <RESOURCE_NAME>
[PREFIX <PATH>]
[LANG <LANGUAGE>]
[BASE <PATH>]
[FILES ...] [OPTIONS ...]) Если команды без версии отключены, используйте qt6_add_resources() вместо. Она поддерживает тот же набор аргументов, что и данная команда.
Описание
Для добавления ресурсов вы можете передать имя переменной или целевой объект в качестве первого аргумента команды.
При передаче имени переменной в качестве первого аргумента, qt_add_resources создает исходный код из файлов ресурсов Qt с помощью компилятора ресурсов (rcc). Пути к сгенерированным исходным файлам добавляются в <VAR>.
При передаче целевого объекта в качестве первого аргумента, функция создаёт ресурс с именем RESOURCE_NAME, содержащий указанные FILES. Ресурс автоматически подключается к TARGET.
Для встраивания больших ресурсов см. qt_add_big_resources.
См. Систему ресурсов Qt для общего описания ресурсов Qt.
Аргументы варианта, основанного на целевом объекте
PREFIX указывает префикс пути, под которым все файлы данного ресурса доступны из кода C++. Это соответствует атрибуту XML prefix в формате файла .qrc. Если PREFIX не указан, используется свойство целевого объекта QT_RESOURCE_PREFIX.
LANG указывает язык данного ресурса. Это соответствует атрибуту XML lang в формате файла .qrc.
BASE - это префикс пути, обозначающий корневую точку псевдонима файла. Например, если BASE равно "assets", а FILES равно "assets/images/logo.png", то псевдоним этого файла "images/logo.png".
Настройки псевдонимов для файлов необходимо задать через свойство файла источника QT_RESOURCE_ALIAS.
Аргументы обоих вариантов
Вы можете установить дополнительные OPTIONS, которые должны быть добавлены к вызовам rcc. Возможные варианты можно найти в документации rcc.
Примеры
Вариант с переменной, используя файл .qrc:
set(SOURCES main.cpp)
qt_add_resources(SOURCES example.qrc)
add_executable(myapp ${SOURCES}) Вариант с целевым объектом, используя непосредственные ресурсы:
add_executable(myapp main.cpp)
qt_add_resources(myapp "images"
PREFIX "/images"
FILES image1.png image2.png) Особенности
При добавлении нескольких ресурсов, RESOURCE_NAME должно быть уникальным для всех ресурсов, связанных с целевым объектом.
Это особенно важно для статических сборок. В этом случае одно и то же имя ресурса в разных статических библиотеках вызывает конфликт в целевом объекте, который их использует.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt-add-resources.html