### Navigation

- index
- next |
- previous |
- CMake »
- 3.0.1 Documentation »
- cmake-modules(7) »

# FindProtobuf

Locate and configure the Google Protocol Buffers library.

The following variables can be set and are optional:

    PROTOBUF_SRC_ROOT_FOLDER - When compiling with MSVC, if this cache variable is set
                               the protobuf-default VS project build locations
                               (vsprojects/Debug & vsprojects/Release) will be searched
                               for libraries and binaries.

    PROTOBUF_IMPORT_DIRS     - List of additional directories to be searched for
                               imported .proto files. (New in CMake 2.8.8)

Defines the following variables:

    PROTOBUF_FOUND - Found the Google Protocol Buffers library (libprotobuf & header files)
    PROTOBUF_INCLUDE_DIRS - Include directories for Google Protocol Buffers
    PROTOBUF_LIBRARIES - The protobuf libraries

[New in CMake 2.8.5]

    PROTOBUF_PROTOC_LIBRARIES - The protoc libraries
    PROTOBUF_LITE_LIBRARIES - The protobuf-lite libraries

The following cache variables are also available to set or use:

    PROTOBUF_LIBRARY - The protobuf library
    PROTOBUF_PROTOC_LIBRARY   - The protoc library
    PROTOBUF_INCLUDE_DIR - The include directory for protocol buffers
    PROTOBUF_PROTOC_EXECUTABLE - The protoc compiler

[New in CMake 2.8.5]

    PROTOBUF_LIBRARY_DEBUG - The protobuf library (debug)
    PROTOBUF_PROTOC_LIBRARY_DEBUG   - The protoc library (debug)
    PROTOBUF_LITE_LIBRARY - The protobuf lite library
    PROTOBUF_LITE_LIBRARY_DEBUG - The protobuf lite library (debug)

    ====================================================================
    Example:

    find_package(Protobuf REQUIRED)
    include_directories(${PROTOBUF_INCLUDE_DIRS})

    include_directories(${CMAKE_CURRENT_BINARY_DIR})
    PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS foo.proto)
    add_executable(bar bar.cc ${PROTO_SRCS} ${PROTO_HDRS})
    target_link_libraries(bar ${PROTOBUF_LIBRARIES})

NOTE: You may need to link against pthreads, depending

    on the platform.

NOTE: The PROTOBUF_GENERATE_CPP macro & add_executable() or add_library()

    calls only work properly within the same directory.

    ====================================================================

PROTOBUF_GENERATE_CPP (public function)

    SRCS = Variable to define with autogenerated
           source files
    HDRS = Variable to define with autogenerated
           header files
    ARGN = proto files

    ====================================================================

### Navigation

- index
- next |
- previous |
- CMake »
- 3.0.1 Documentation »
- cmake-modules(7) »