github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/docs/cpp.md (about)

     1  ---
     2  layout: default
     3  title: cpp
     4  permalink: examples/cpp
     5  parent: Examples
     6  ---
     7  
     8  
     9  # cpp example
    10  
    11  `bazel test //example/golden:cpp_test`
    12  
    13  
    14  ## `BUILD.bazel` (after gazelle)
    15  
    16  ~~~python
    17  load("@rules_proto//proto:defs.bzl", "proto_library")
    18  load("@build_stack_rules_proto//rules:proto_compile.bzl", "proto_compile")
    19  
    20  # "proto_rule" instantiates the proto_compile rule
    21  # gazelle:proto_rule proto_compile implementation stackb:rules_proto:proto_compile
    22  
    23  # "proto_plugin" instantiates the builtin cpp plugin
    24  # gazelle:proto_plugin cpp implementation builtin:cpp
    25  
    26  # "proto_language" binds the rule(s) and plugin(s) together
    27  # gazelle:proto_language cpp rule proto_compile
    28  # gazelle:proto_language cpp plugin cpp
    29  
    30  proto_library(
    31      name = "example_proto",
    32      srcs = ["example.proto"],
    33      visibility = ["//visibility:public"],
    34  )
    35  
    36  proto_compile(
    37      name = "example_cpp_compile",
    38      outputs = [
    39          "example.pb.cc",
    40          "example.pb.h",
    41      ],
    42      plugins = ["@build_stack_rules_proto//plugin/builtin:cpp"],
    43      proto = "example_proto",
    44  )
    45  ~~~
    46  
    47  
    48  ## `BUILD.bazel` (before gazelle)
    49  
    50  ~~~python
    51  # "proto_rule" instantiates the proto_compile rule
    52  # gazelle:proto_rule proto_compile implementation stackb:rules_proto:proto_compile
    53  
    54  # "proto_plugin" instantiates the builtin cpp plugin
    55  # gazelle:proto_plugin cpp implementation builtin:cpp
    56  
    57  # "proto_language" binds the rule(s) and plugin(s) together
    58  # gazelle:proto_language cpp rule proto_compile
    59  # gazelle:proto_language cpp plugin cpp
    60  ~~~
    61  
    62  
    63  ## `WORKSPACE`
    64  
    65  ~~~python
    66  ~~~
    67