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()
。
© 2025 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.