C

qul_add_resource

警告:这个 CMake 命令自 2.4 版本以来已弃用,考虑使用 ImageFiles.files 代替。

将图像资源添加到目标。

摘要

qul_add_resource(<target>
                 FILES file1 [file2...]
                 [PREFIX <path>]
                 [BASE <path>]
                 [OUTPUT_DIRECTORY <path>])

描述

列出的文件变为可以从 QML 文件通过资源 URI 进行访问的资源。目前仅支持图像资源。

资源可以具有 CMake 源文件属性。必须在调用 qul_add_resource 之前设置这些属性。有关属性列表,请参阅 CMake 参考文档

内部,资源描述会被收集并作为 JSON 文件传递到资源编译器 qulrccqulrcc 为它们生成 C++ 文件,以及一个将资源名称映射到符号名称的 JSON 文件。C++ 文件被编译进目标,输出 JSON 文件被 qmltocpp 使用以查找资源名称并将符号引用发射到生成的代码中。

注意:qul_add_resource 必须与 qul_add_target 在相同的目录范围内使用。

选项

FILES 参数接受一个空格分隔的文件路径列表,相对于当前源目录。

您可以将 OUTPUT_DIRECTORY 选项设置为控制生成的文件放置的位置。如果路径是相对路径,它是相对于当前构建目录的。

可选的 PREFIX 路径为文件放入的资源 URI 添加一个前缀。例如,如果 PREFIX 是 "images" 并且 FILES 中的一个文件是 "map/small.png",则资源文件系统中的路径将是 "qrc:/images/map/small.png"。默认前缀是 "/"。

可选的 BASE 路径确定计算资源 URI 的锚点。例如,如果 BASE 是 "data" 并且 FILES 中的一个文件是 "data/images/foo.png",则资源文件系统中的路径将是 "qrc:/images/foo.png"。默认基路径是当前源目录。

CMake 源文件属性

注意:这些属性是通过 CMake 函数 set_source_files_properties 为单个资源设置的。要设置默认应用于所有资源的值,请使用 PREFIX_DEFAULT_<property>,其中 PREFIX 为:QULQUL_PLATFORM。在调用 qul_add_resource 之前必须设置源文件属性。

例如

# Store all images in compressed format by default, except for button.png
set(QUL_DEFAULT_RESOURCE_COMPRESSION ON)
set_source_files_properties(button.png PROPERTIES QUL_RESOURCE_COMPRESSION OFF)
qul_add_resource(...)

示例

# Used in QML as "qrc:/button.png" and "qrc:/nav/arrow.png",
# or simply as "button.png" and "nav/arrow.png".
qul_add_resource(example_app FILES button.png nav/arrow.png)
set_source_files_properties(big/button.png PROPERTIES
    QUL_RESOURCE_COMPRESSION ON
    QUL_RESOURCE_OPTIMIZE_FOR_SCALE ON)

# The resource path becomes "qrc:/images/button.png"
qul_add_resource(example_app
    FILES big/button.png
    BASE big
    PREFIX images)
# Setting an image to be cached on demand with a custom memory allocator
set_source_files_properties(
    big/button.png PROPERTIES
    QUL_RESOURCE_CACHE_POLICY "OnDemand"
    QUL_RESOURCE_STORAGE_SECTION "CustomSegment"
    QUL_RESOURCE_RUNTIME_ALLOCATION_TYPE "128"
)

另请参阅 资源管理QUL_RESOURCE_IMAGE_PIXEL_FORMAT

在特定的 Qt 许可下可用。
了解更多。