qt_add_grpc
protobuf スキーマを使用して Qt ベースの C++ サービスを生成する
注: このコマンドはテクノロジー・プレビューであり、将来のリリースで変更される可能性があります。
このコマンドは Qt 6.5 で導入されました。
通常、qtgrpcgen
はqt_add_grpc
CMake マクロを通して呼び出されます。
qt_add_grpc(<target> <CLIENT|SERVER> PROTO_FILES <file> ... [PROTO_INCLUDES <path> ...] [QML] [OUTPUT_DIRECTORY <dir>] [GENERATE_PACKAGE_SUBFOLDERS] [COPY_COMMENTS] [EXPORT_MACRO <infix>] [OUTPUT_HEADERS <var>] [OUTPUT_TARGETS <var>] )
注: 現在、CLIENT
コード生成のみがサポートされています。
ソース・ファイルはqtgrpcgen
によって作成され、ターゲットに追加されます。ターゲットがすでに存在する場合、ファイルはターゲット・ソース・リストに追加されます。ターゲットが存在しない場合は、ライブラリとして作成され、リンクする必要があります。
qt_add_grpc
コマンドを使用して生成される gRPC ライブラリは、サービス呼び出しで使用される protobuf シンボルを参照します。つまり、qt_add_protobufと qt_add_grpcの両方の呼び出しで共通のターゲットを使用するか、生成されたprotobufライブラリをgRPCライブラリにリンクする必要があります。
上記の記述を考慮すると、protobufとgRPCの両方のクライアントコードでターゲットを再利用することができます:
# Generate the protobuf types first qt_add_protobuf(test_service_client PROTO_FILES test_service.protobuf ) ... # Reuse the protobuf target and extend it with gRPC client # functionality qt_add_grpc(test_service_client CLIENT PROTO_FILES test_service.protobuf )
ターゲットを別々にしたい場合は、gRPCクライアントのターゲットをprotobufのターゲットにリンクする必要があります:
# Generate the protobuf types first qt_add_protobuf(test_service_protobuf PROTO_FILES test_service.protobuf ) ... # Add separate target with the generated code of the gRPC client. qt_add_grpc(test_service_client CLIENT PROTO_FILES test_service.protobuf ) target_link_libraries(test_service_client PRIVATE test_service_protobuf)
引数
PROTO_FILES
はコード生成手順で使用する.protoファイルのリストを指定します。PROTO_INCLUDES
protobufの依存関係を検索するディレクトリのリストを指定します。注:
PROTO_FILES
の場所は、暗黙的に protobuf のインクルードパスの一部と見なされます。QML
gRPCサービス用のQMLクライアントを生成します。OUTPUT_DIRECTORY
生成されたファイルを置くディレクトリを定義します。デフォルトでは、現在のビルドディレクトリが使用されます。GENERATE_PACKAGE_SUBFOLDERS
は、 ファイルのパッケージ名指定子を使用して、生成されるファイルのフォルダ構造を作成します。たとえば、パッケージがと定義されている場合、生成されたファイルは.proto
package io.qt.test
OUTPUT_DIRECTORY/io/qt/test/ に置かれます。COPY_COMMENTS
.proto
ファイルのコメントを生成コードにコピーします。EXPORT_MACRO
<target> から新しい共有ライブラリを作成する場合にのみ適用されます。このオプションは、生成されるコードで使用されるエクスポート・マクロのベース名を指定します。最終的なマクロ名は のように構成されます。このオプションが設定されていない場合、ターゲット名は として使用されます。QPB_<EXPORT_MACRO>_EXPORT
EXPORT_MACRO
さらに詳しい情報については、共有ライブラリの作成をお読みください。
OUTPUT_HEADERS
は、生成されたヘッダーのリストを格納する変数を指定します。このリストは、カスタム・プロジェクトのインストール・ルールを定義するのに便利です。OUTPUT_TARGETS
は、生成されたターゲットのリストを格納する変数を指定します。このリストは、カスタム・プロジェクトのインストール・ルールを定義するのに便利です。
qtgrpcgen Toolも参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。