QTP0002

指定 Android 特定路径的目标属性可能包含生成器表达式。

此策略自 Qt 6.6 开始引入。它改变了指定 Android 特定路径的目标属性的处理方式

此策略的旧版行为不允许在指定 Android 特定路径的目标属性中使用生成器表达式,但它会隐式地将指定的路径转换为有效的 JSON 字符串。

此策略的新版行为允许在指定 Android 特定路径的目标属性中使用生成器表达式,但它们必须评估为有效的 JSON 字符串。

如果将策略设置为旧版,则以下 QT_ANDROID_EXTRA_PLUGINS 属性的值将转换为有效的 JSON 字符串,但若策略设置为新版,则会导致错误

set_target_properties(
    QT_ANDROID_EXTRA_PLUGINS "\\path\\to\\MyPlugin.so"
)

如果将上述示例的策略设置为新版,则部署设置文件中的结果 JSON 字符串将包含转义符号而不是路径分隔符。

只有当策略设置为新版时才支持生成器表达式,因此旧版行为会生成包含以下代码的格式错误的部署设置文件

set_target_properties(
    QT_ANDROID_EXTRA_PLUGINS "$<TARGET_FILE_DIR:MyPlugin>"
)

此属性值在旧版和新版策略值中都能按预期工作

set_target_properties(
    QT_ANDROID_EXTRA_PLUGINS "/path/to/MyPlugin.so"
)

注意:此策略的旧版行为已过时,未来可能会被删除。

另请参阅:qt_policyQt CMake 策略

© 2024 Qt 公司。本文档的贡献者拥有其各自版权。本文档的提供受 Free Software Foundation 发布的 GNU 自由文档许可证版本 1.3 条款约束。Qt 及相关标志是芬兰的 Qt 公司及其在全球的子公司和分支机构的商标。所有其他商标归其各自所有者所有。