- Qt 6.9
- Qt Protobuf
- CMake Commands in Qt6 Protobuf
- Qt 6.9.2 Reference Documentation

The qtprotobufgen Tool ◦ qt_add_protobuf

# CMake Commands in Qt6 Protobuf

You should call the following CMake commands to use the Qt6::Protobuf module in your project:

     find_package(Qt6 REQUIRED COMPONENTS Protobuf)

     target_link_libraries(mytarget PRIVATE Qt6::Protobuf)

You can use the qt_add_protobuf CMake command to implicitly call Qt Protobuf code generation for your project.

### Using qt_add_protobuf

     cmake_minimum_required(VERSION 3.16...3.22)
     project(MyThings)

     find_package(Qt6 REQUIRED COMPONENTS Protobuf)
     qt_standard_project_setup()

     qt_add_protobuf(MyMessages
         GENERATE_PACKAGE_SUBFOLDERS
         PROTO_FILES
             path/to/message.proto
             path/to/other_message.proto
         PROTO_INCLUDES
             /path/to/proto/include
     )

     qt_add_executable(MyApp main.cpp)

     target_link_libraries(MyApp PRIVATE MyMessages)

In the example above, we generate a library called `MyMessages`, which contains the message types defined in the paths passed to the `PROTO_FILES` option. The `GENERATE_PACKAGE_SUBFOLDERS` option to generate a folder structure for the generated files. And the `PROTO_INCLUDES` option tells protoc to look for dependencies or imports in the specified directories. We create a target for an executable called `MyApp`, which we link to the `MyMessages` library.

See also CMake Command Reference.

qt_add_protobuf | Generates Qt-based C++ source code using a protobuf schema