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 qt-add-protobuf CMake macros. The macros implicitly call Protobuf code generation for qt-project.

The macros usage examples:

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. We use 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/imports in the specified directories.

We then 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

© 2024 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.