qt_extract_metatypes
Qt ターゲットから metatypes を抽出し、関連する metatypes.json ファイルを生成します。
このコマンドは Qt 6.0 で導入されました。
注意: このコマンドはテクノロジープレビューであり、将来のリリースで変更される可能性があります。
概要
qt_extract_metatypes(target [MANUAL_MOC_JSON_FILES json_files...] [OUTPUT_FILES variable_name] )
バージョンレスコマンドが無効になっている場合は、代わりにqt6_extract_metatypes()
を使用してください。このコマンドと同じ引数セットをサポートしています。
説明
特定の操作は、ターゲット上で生成・収集されるメタタイプ情報に依存しています。これは通常Qtコマンドによって内部的に処理されますが、そうでないシナリオでは、qt_extract_metatypes()
を呼び出すことで、特定のtarget
に対してこの情報を強制的に収集することができます。
メタタイプ情報は、以下のいずれかの方法でターゲットのソースファイルに対して生成されます:
- AUTOMOC による自動生成。
qt_extract_metatypes()
コマンドは、target
で AUTOMOC が有効になっていることを検出し、必要な情報を自動的に抽出する。 --output-json
オプションをつけてmoc
を起動し、手動で行う。プロジェクトは、このメソッドを使用して生成されたすべてのJSONファイルを追跡し、MANUAL_MOC_JSON_FILES
オプションを付けてqt_extract_metatypes()
に渡す責任を負う。
qt_extract_metatypes()
は、AUTOMOCとmanual mocの入力からすべてのメタタイプの詳細を集めたターゲット固有のメタタイプJSONファイルを生成する。これは オプションをつけて を呼び出すことで実行される。結果のmetatypes JSONファイルがどこにあるかを知る必要がある場合(たとえば、別のコマンドに渡したり、インストールしたりするため)、 オプションを使用して、その絶対パスを格納する変数名を指定します。--collect-json
moc
OUTPUT_FILES
メタタイプの自動抽出
Qt 6.8 以降、AUTOMOC
を無効にしておらず、CMake 3.19 以降を使用しているか、qt_finalize_target() を手動で呼び出している場合、qt_extract_metatypes()
がqt_add_library の最終化ステップの一部として自動的に呼び出されます。これは、最終化の前に手動でqt_extract_metatypes()
を、おそらくはカスタム引数で呼び出した場合には影響しません。しかし、メタタイプも生成されるようになります。これはライブラリの型が将来QMLの型の一部として使われる場合に重要であり、デメリットはありません。
さらに、qt_add_qml_moduleは自動的にqt_extract_metatypes()
。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。