QTP0002

Android固有のパスを指定するターゲットプロパティには、ジェネレータ式が含まれる場合があります。

このポリシーは Qt 6.6 で導入されました。これにより、Android 固有のパスを指定するターゲットプロパティの処理が変更されます:

このポリシーの `OLD ` 動作では、Android 固有のパスを指定するターゲットプロパティでのジェネレータ式は許可されませんが、指定されたパスは暗黙的に有効な JSON 文字列に変換されます。

このポリシーの「NEW 」の挙動では、Android 固有のパスを指定するターゲットプロパティでジェネレータ式を使用できますが、その式は有効な JSON 文字列として評価される必要があります。

QT_ANDROID_EXTRA_PLUGINSプロパティの以下の値は、ポリシーを OLD に設定した場合は有効な JSON 文字列に変換されますが、ポリシーを NEW に設定した場合はエラーとなります:

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

上記の例でポリシーを「NEW」に設定した場合、デプロイ設定ファイル内の結果となる JSON 文字列には、パス区切り文字の代わりにエスケープされた記号が含まれます。

ジェネレータ式は、ポリシーが「NEW」に設定されている場合にのみサポートされるため、「OLD」の動作では、以下のコードを含む不正な形式のデプロイ設定ファイルが生成されます:

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

このプロパティ値は、ポリシーが OLD または NEW のいずれの場合でも期待通りに動作します:

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

注: ポリシーのOLD 動作は 非推奨となっており、将来的に削除される可能性があります。

qt_policy()およびQt CMake ポリシーも参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.