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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。