C

CMake API 更改

以下子部分总结了与 Qt for MCUs v2.0 中的 CMake 相关更改,与 v1.9 的比较。

CMake API 前缀

自 Qt for MCUs v2.0 以来,CMake API 名称遵循命名规则,使其目的更容易理解。根据 API 的预期访问方式,它们具有以下前缀

前缀预期访问
QUL_*公共
QUL_PLATFORM_*公共,针对平台开发人员
QUL_PRIVATE_*私有,内部

查看 CMake 更改日志 以获取所有重命名 API 的列表。

静态字体引擎

现在可以显式使用 QUL_FONT_ENGINE CMake 目标属性来选择字体引擎。默认设置为 "Static",因此如果您正在使用静态字体引擎,则无需进行任何更改。

已删除 QUL_FONTS_DIR 目标属性,因此不再可能提供一个包含字体的目录。将所有此类实例替换为 QUL_FONT_FILES CMake 目标属性,显式列出所有使用的字体文件。默认情况下,QUL_FONT_FILES 包含 Qt for MCUs 交付的所有字体。您可以选择追加现有列表或替换它。

Qt for MCUs v1.9Qt for MCUs v2.0
set_property(TARGET <target> PROPERTY
    QUL_FONTS_DIR <path to fonts directory>
)
# Optional, QUL_FONT_ENGINE is set to "Static" by default
set_property(TARGET <target> PROPERTY QUL_FONT_ENGINE "Static")

set_property(TARGET <target> PROPERTY QUL_FONT_FILES
    <path to font file>
    <path to another font file>
)

Monotype Spark 字体引擎

在 Qt for MCUs 以前的版本中,需要显式设置 QUL_MONOTYPE_SPARK_FONT_FILE CMake 目标属性才能使用 Monotype Spark 字体引擎。自 Qt for MCUs 2.0 以来,您应将 QUL_FONT_ENGINE CMake 目标属性设置为 "Spark",并设置 QUL_FONT_FILES 为字体文件路径。

Qt for MCUs v1.9Qt for MCUs v2.0
set_property(TARGET <target> PROPERTY
    QUL_MONOTYPE_SPARK_FONT_FILE <Monotype Spark font file>
)
set_target_properties(<Executable Target> PROPERTIES
    QUL_FONT_ENGINE "Spark"
    QUL_FONT_FILES <Monotype Spark font file>
)

注意:当使用 Monotype Spark 字体引擎时,QUL_FONT_FILES 必须包含单个条目。

Qt for MCUs v2.0 中对特定于 Monotype Spark 字体引擎的 CMake 目标属性进行了重命名。用以下表格中列出的对应替代品替换已删除属性的实例

Qt for MCUs 1.9Qt for MCUs 2.0
QUL_MONOTYPE_SPARK_CACHE_PRIMINGQUL_FONT_CACHE_PRIMING
QUL_MONOTYPE_SPARK_CACHE_SIZEQUL_FONT_CACHE_SIZE
QUL_MONOTYPE_SPARK_HEAP_SIZEQUL_FONT_HEAP_SIZE
QUL_MONOTYPE_SPARK_VECTOR_OUTLINESQUL_FONT_VECTOR_OUTLINES_DRAWING
QUL_MONOTYPE_SPARK_CACHE_NO_PREALLOCQUL_FONT_CACHE_PREALLOC
QUL_MONOTYPE_SPARK_HEAP_NO_PREALLOCQUL_FONT_HEAP_PREALLOC

QUL_FONT_CACHE_PREALLOCQUL_FONT_HEAP_PREALLOC 与上一个 Qt for MCUs 版本中的对应值相反。以下示例很好地说明了这一变化

Qt for MCUs v1.9Qt for MCUs v2.0
set_target_properties(<Executable Target> PROPERTIES
    QUL_MONOTYPE_SPARK_CACHE_SIZE <size>
    QUL_MONOTYPE_SPARK_CACHE_PRIMING ON
    QUL_MONOTYPE_SPARK_HEAP_SIZE <size>
    QUL_MONOTYPE_SPARK_VECTOR_OUTLINES ON

    QUL_MONOTYPE_SPARK_CACHE_NO_PREALLOC ON
    QUL_MONOTYPE_SPARK_HEAP_NO_PREALLOC ON
)
set_target_properties(<Executable Target> PROPERTIES
    QUL_FONT_CACHE_SIZE <size>
    QUL_FONT_CACHE_PRIMING ON
    QUL_FONT_HEAP_SIZE <size>
    QUL_FONT_VECTOR_OUTLINES_DRAWING ON

    QUL_FONT_CACHE_PREALLOC OFF
    QUL_FONT_HEAP_PREALLOC OFF
)

资源存储配置

自 Qt for MCUs v2.0 以来,已删除目标属性 QUL_COPY_TO_RAMQUL_GLYPHS_COPY_TO_RAMQUL_FONT_FILES_COPY_TO_RAM。请将所有这些属性的实例替换为下表中显示的相应替代品。

Qt for MCUs v1.9Qt for MCUs v2.0
set_target_properties(<Executable Target> PROPERTIES
    QUL__COPY_TO_RAM "OnStartup"
)
set_target_properties(<target> PROPERTIES
    QUL_RESOURCE_CACHE_POLICY "OnStartup"
    QUL_RESOURCE_STORAGE_SECTION "QulResourceData"
    QUL_RESOURCE_RUNTIME_ALLOCATION_TYPE 128
)
set_target_properties(<Executable Target> PROPERTIES
    QUL_GLYPHS_COPY_TO_RAM "OnStartup"
)
set_target_properties(<target> PROPERTIES
    QUL_GLYPHS_RESOURCE_CACHE_POLICY "OnStartup"
    QUL_GLYPHS_RESOURCE_STORAGE_SECTION "QulResourceData"
    QUL_GLYPHS_RESOURCE_RUNTIME_ALLOCATION_TYPE 128
)
set_target_properties(<Executable Target> PROPERTIES
    QUL_FONT_FILES_COPY_TO_RAM "OnStartup"
)
set_target_properties(<target> PROPERTIES
    QUL_FONT_FILES_RESOURCE_CACHE_POLICY "OnStartup"
    QUL_FONT_FILES_RESOURCE_STORAGE_SECTION "QulResourceData"
    QUL_FONT_FILES_RESOURCE_RUNTIME_ALLOCATION_TYPE 128
)

更多信息,请参阅

重命名 CMake 目标

在 Qt for MCUs v2.0 中,所有 CMake 目标均已重命名和简化。请参阅CMake 更新日志,获取所有重命名目标列表。

Qt for MCUs v1.9Qt for MCUs v2.0
target_link_libraries(<target> PRIVATE
    Qul::QuickUltraliteControlsStyleDefault
    Qul::QuickUltraliteTimeline
)
target_link_libraries(<target> PRIVATE
    Qul::Controls
    Qul::Timeline
)

在某些 Qt 许可下可用。
了解更多。