// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
\page qt_add_grpc.html
\ingroup cmake-commands-qtgrpc

\title qt_add_grpc
\target qt_add_grpc
\summary {Generates Qt-based C++ services using a protobuf schema}
\preliminarycmakecommand
\cmakecommandsince 6.5

Usually \c qtgrpcgen is invoked through the \c qt_add_grpc CMake macro.

\badcode
    qt_add_grpc(<target> <TARGET_TYPE>
        PROTO_FILES <file> ...
        [COPY_COMMENTS]
        [GENERATE_PACKAGE_SUBFOLDERS]
        [EXTRA_NAMESPACE <namespace>]
        [EXPORT_MACRO <infix>]
        [PROTO_INCLUDES <path> ...]
        [OUTPUT_DIRECTORY <dir>]
        [OUTPUT_HEADERS <var>]
        [OUTPUT_TARGETS <var>]
    )
\endcode

The source files are created by \c qtgrpcgen and added to the target.
If the target already exists, the files are \e added to the target source
list. If the target doesn't exist, it is created as a library which you must
link to.

\section1 Arguments
\list
    \li \c TARGET_TYPE is the type of gRPC code to be generated.
        Since gRPC supports a client-server architecture, \c CLIENT or
        \c SERVER source code may be generated.
        \note for Qt 6.5 only \c CLIENT source code generation is supported.
    \include qtprotogen-options.qdocinc
    \include qtprotogen-cmake-options.qdocinc
\endlist

\sa{The qtgrpcgen Tool}
*/
