cpp

RuleDescription
cpp_proto_compileGenerates .h,.cc protobuf artifacts
cpp_grpc_compileGenerates .h,.cc protobuf+gRPC artifacts
cpp_proto_libraryGenerates .h,.cc protobuf library
cpp_grpc_libraryGenerates .h,.cc protobuf+gRPC library

cpp_proto_compile

Generates .h,.cc protobuf artifacts

WORKSPACE

load("@build_stack_rules_proto//cpp:deps.bzl", "cpp_proto_compile")

cpp_proto_compile()

BUILD.bazel

load("@build_stack_rules_proto//cpp:cpp_proto_compile.bzl", "cpp_proto_compile")

cpp_proto_compile(
    name = "person_cpp_proto",
    deps = ["@build_stack_rules_proto//example/proto:person_proto"],
)

Mandatory Attributes

NameTypeDefaultDescription
depslist<ProtoInfo>[]List of labels that provide a ProtoInfo (such as native.proto_library)

Optional Attributes

NameTypeDefaultDescription
pluginslist<ProtoPluginInfo>[]List of labels that provide a ProtoPluginInfo
plugin_optionslist<string>[]List of additional ‘global’ plugin options (applies to all plugins). To apply plugin specific options, use the options attribute on proto_plugin
outputslist<generated file>[]List of additional expected generated file outputs
verboseint0The verbosity level. Supported values and results are 1: show command, 2: show command and sandbox after running protoc, 3: show command and sandbox before and after running protoc, 4. show env, command, expected outputs and sandbox before and after running protoc
include_importsboolTruePass the --include_imports argument to the protoc_plugin
include_source_infoboolTruePass the --include_source_info argument to the protoc_plugin
transitiveboolTrueGenerate outputs for both *.proto directly named in deps AND all their transitive proto_library dependencies
transitivitystring_dict{}Transitive filters to apply when the ‘transitive’ property is enabled. This string_dict can be used to exclude or explicitly include protos from the compilation list by using exclude or include respectively as the dict value

cpp_grpc_compile

Generates .h,.cc protobuf+gRPC artifacts

WORKSPACE

load("@build_stack_rules_proto//cpp:deps.bzl", "cpp_grpc_compile")

cpp_grpc_compile()

load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")

grpc_deps()

BUILD.bazel

load("@build_stack_rules_proto//cpp:cpp_grpc_compile.bzl", "cpp_grpc_compile")

cpp_grpc_compile(
    name = "greeter_cpp_grpc",
    deps = ["@build_stack_rules_proto//example/proto:greeter_grpc"],
)

Mandatory Attributes

NameTypeDefaultDescription
depslist<ProtoInfo>[]List of labels that provide a ProtoInfo (such as native.proto_library)

Optional Attributes

NameTypeDefaultDescription
pluginslist<ProtoPluginInfo>[]List of labels that provide a ProtoPluginInfo
plugin_optionslist<string>[]List of additional ‘global’ plugin options (applies to all plugins). To apply plugin specific options, use the options attribute on proto_plugin
outputslist<generated file>[]List of additional expected generated file outputs
verboseint0The verbosity level. Supported values and results are 1: show command, 2: show command and sandbox after running protoc, 3: show command and sandbox before and after running protoc, 4. show env, command, expected outputs and sandbox before and after running protoc
include_importsboolTruePass the --include_imports argument to the protoc_plugin
include_source_infoboolTruePass the --include_source_info argument to the protoc_plugin
transitiveboolTrueGenerate outputs for both *.proto directly named in deps AND all their transitive proto_library dependencies
transitivitystring_dict{}Transitive filters to apply when the ‘transitive’ property is enabled. This string_dict can be used to exclude or explicitly include protos from the compilation list by using exclude or include respectively as the dict value

cpp_proto_library

Generates .h,.cc protobuf library

WORKSPACE

load("@build_stack_rules_proto//cpp:deps.bzl", "cpp_proto_library")

cpp_proto_library()

BUILD.bazel

load("@build_stack_rules_proto//cpp:cpp_proto_library.bzl", "cpp_proto_library")

cpp_proto_library(
    name = "person_cpp_library",
    deps = ["@build_stack_rules_proto//example/proto:person_proto"],
)

Mandatory Attributes

NameTypeDefaultDescription
depslist<ProtoInfo>[]List of labels that provide a ProtoInfo (such as native.proto_library)

Optional Attributes

NameTypeDefaultDescription
pluginslist<ProtoPluginInfo>[]List of labels that provide a ProtoPluginInfo
plugin_optionslist<string>[]List of additional ‘global’ plugin options (applies to all plugins). To apply plugin specific options, use the options attribute on proto_plugin
outputslist<generated file>[]List of additional expected generated file outputs
verboseint0The verbosity level. Supported values and results are 1: show command, 2: show command and sandbox after running protoc, 3: show command and sandbox before and after running protoc, 4. show env, command, expected outputs and sandbox before and after running protoc
include_importsboolTruePass the --include_imports argument to the protoc_plugin
include_source_infoboolTruePass the --include_source_info argument to the protoc_plugin
transitiveboolTrueGenerate outputs for both *.proto directly named in deps AND all their transitive proto_library dependencies
transitivitystring_dict{}Transitive filters to apply when the ‘transitive’ property is enabled. This string_dict can be used to exclude or explicitly include protos from the compilation list by using exclude or include respectively as the dict value

cpp_grpc_library

Generates .h,.cc protobuf+gRPC library

WORKSPACE

load("@build_stack_rules_proto//cpp:deps.bzl", "cpp_grpc_library")

cpp_grpc_library()

load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")

grpc_deps()

BUILD.bazel

load("@build_stack_rules_proto//cpp:cpp_grpc_library.bzl", "cpp_grpc_library")

cpp_grpc_library(
    name = "greeter_cpp_library",
    deps = ["@build_stack_rules_proto//example/proto:greeter_grpc"],
)

Mandatory Attributes

NameTypeDefaultDescription
depslist<ProtoInfo>[]List of labels that provide a ProtoInfo (such as native.proto_library)

Optional Attributes

NameTypeDefaultDescription
pluginslist<ProtoPluginInfo>[]List of labels that provide a ProtoPluginInfo
plugin_optionslist<string>[]List of additional ‘global’ plugin options (applies to all plugins). To apply plugin specific options, use the options attribute on proto_plugin
outputslist<generated file>[]List of additional expected generated file outputs
verboseint0The verbosity level. Supported values and results are 1: show command, 2: show command and sandbox after running protoc, 3: show command and sandbox before and after running protoc, 4. show env, command, expected outputs and sandbox before and after running protoc
include_importsboolTruePass the --include_imports argument to the protoc_plugin
include_source_infoboolTruePass the --include_source_info argument to the protoc_plugin
transitiveboolTrueGenerate outputs for both *.proto directly named in deps AND all their transitive proto_library dependencies
transitivitystring_dict{}Transitive filters to apply when the ‘transitive’ property is enabled. This string_dict can be used to exclude or explicitly include protos from the compilation list by using exclude or include respectively as the dict value