qt_generate_wayland_protocol_client_sources
Waylandプロトコルの.XMLファイルに対するクライアント側のC++バインディングを生成します。
このコマンドは、Qt6 パッケージのWaylandClient コンポーネントで定義されており、次のように読み込むことができます:
find_package(Qt6 REQUIRED COMPONENTS WaylandClient)このコマンドは Qt 6.0 で導入されました。
概要
qt_generate_wayland_protocol_client_sources(target
[PUBLIC_CODE | PRIVATE_CODE]
[NO_INCLUDE_CORE_ONLY]
FILES file1.xml [file2.xml ...])バージョン指定なしのコマンドが無効になっている場合は、代わりに `qt6_generate_wayland_protocol_client_sources() ` を使用してください。このコマンドと同じ引数セットをサポートしています。
説明
qt_generate_wayland_protocol_client_sources() は、1つ以上のWaylandプロトコルファイルに対してwayland-scanner およびqtwaylandscanner を実行するためのビルドステップを作成します。これらのツールは、プロトコルを実装するためのCおよびC++のバインディングコードを生成し、生成されたファイルはtarget の一部としてビルドされます。
オプションPUBLIC_CODE およびPRIVATE_CODE (Qt 6.8 で追加)は、wayland-scanner のpublic-code およびprivate-code オプションに対応しています。PUBLIC_CODE を指定すると、wayland-scanner によって生成されたコード内のシンボルがエクスポートされます。
Qt 6.12以前では、デフォルトはPUBLIC_CODE でした。Qt 6.12以降では、Qtポリシーqt_cmake_policy_qtp0006が NEW に設定されている場合、デフォルトはPRIVATE_CODE になります。一般的には、PRIVATE_CODE の使用を強く推奨します。
デフォルトでは、wayland-scanner は--include-core-only 引数付きで呼び出され、生成されるコードに"wayland-client-core.h" が含まれるように保証されます。この動作は、NO_INCLUDE_CORE_ONLY オプションを使用して無効化することができ、これによりインクルード先が"wayland-client.h" に切り替わります。
注: NO_INCLUDE_CORE_ONLY の使用は 、一般的に推奨されません。"wayland-client.h" には、Waylandコアプロトコルのプリコンパイル済みバージョンが含まれており、新しいプロトコルバージョンや他のヘッダー(古いバージョンのVulkanなど)と競合する可能性があります。このオプションは、コアヘッダーに存在しない型に対する具体的な要件があり、ビルド時の競合の可能性を認識している場合にのみ使用してください。
qt_generate_wayland_protocol_client_sources() は、プロトコルのクライアント側を実装するために必要なファイルの生成をトリガーします。qt_generate_wayland_protocol_server_sources()は、コンポジター用の同等の関数です。
© 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.