QTP0002
指定 Android 特定路径的目标属性可能包含生成器表达式。
此策略自 Qt 6.6 开始引入。它改变了指定 Android 特定路径的目标属性的处理方式
- QT_QML_IMPORT_PATH
- QT_QML_ROOT_PATH
- QT_ANDROID_PACKAGE_SOURCE_DIR
- QT_ANDROID_EXTRA_PLUGINS
- QT_ANDROID_EXTRA_LIBS
此策略的旧版行为不允许在指定 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_policy 和 Qt CMake 策略。
© 2024 Qt 公司。本文档的贡献者拥有其各自版权。本文档的提供受 Free Software Foundation 发布的 GNU 自由文档许可证版本 1.3 条款约束。Qt 及相关标志是芬兰的 Qt 公司及其在全球的子公司和分支机构的商标。所有其他商标归其各自所有者所有。