github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/example/person/BUILD.bazel (about)

     1  load("@rules_proto//proto:defs.bzl", "proto_library")
     2  load("@build_stack_rules_proto//rules/cc:proto_cc_library.bzl", "proto_cc_library")
     3  load("@build_stack_rules_proto//rules/closure:proto_closure_js_library.bzl", "proto_closure_js_library")
     4  load("@build_stack_rules_proto//rules/go:proto_go_library.bzl", "proto_go_library")
     5  load("@build_stack_rules_proto//rules/java:proto_java_library.bzl", "proto_java_library")
     6  load("@build_stack_rules_proto//rules/nodejs:proto_nodejs_library.bzl", "proto_nodejs_library")
     7  load("@build_stack_rules_proto//rules/py:proto_py_library.bzl", "proto_py_library")
     8  load("@build_stack_rules_proto//rules/scala:proto_scala_library.bzl", "proto_scala_library")
     9  load("@build_stack_rules_proto//rules/ts:proto_ts_library.bzl", "proto_ts_library")
    10  load("@build_stack_rules_proto//rules:proto_compile.bzl", "proto_compile")
    11  
    12  proto_library(
    13      name = "person_proto",
    14      srcs = ["person.proto"],
    15      visibility = ["//visibility:public"],
    16      deps = ["//example/place:place_proto"],
    17  )
    18  
    19  proto_closure_js_library(
    20      name = "person_closure_js_library",
    21      srcs = ["person_closure.js"],
    22      internal_descriptors = [
    23          "//example/person:person_proto",
    24          "//example/place:place_proto",
    25          "//example/thing:thing_proto",
    26          "//google/protobuf:timestamppb_proto",
    27      ],
    28      suppress = [
    29          "JSC_IMPLICITLY_NONNULL_JSDOC",
    30          "JSC_UNUSED_LOCAL_ASSIGNMENT",
    31      ],
    32      visibility = ["//visibility:public"],
    33      exports = ["//example/place:place_closure_js_library"],
    34      deps = ["//example/place:place_closure_js_library"],
    35  )
    36  
    37  proto_compile(
    38      name = "person_closure_js_compile",
    39      options = {"@build_stack_rules_proto//plugin/builtin:closurejs": [
    40          "import_style=closure",
    41          "library=example/person/person_closure",
    42      ]},
    43      outputs = ["person_closure.js"],
    44      plugins = ["@build_stack_rules_proto//plugin/builtin:closurejs"],
    45      proto = "person_proto",
    46      visibility = ["//visibility:public"],
    47  )
    48  
    49  proto_cc_library(
    50      name = "person_cc_library",
    51      srcs = ["person.pb.cc"],
    52      hdrs = ["person.pb.h"],
    53      visibility = ["//visibility:public"],
    54      deps = [
    55          "//example/place:place_cc_library",
    56          "@com_google_protobuf//:protobuf",
    57      ],
    58  )
    59  
    60  proto_compile(
    61      name = "person_cpp_compile",
    62      outputs = [
    63          "person.pb.cc",
    64          "person.pb.h",
    65      ],
    66      plugins = ["@build_stack_rules_proto//plugin/builtin:cpp"],
    67      proto = "person_proto",
    68      visibility = ["//visibility:public"],
    69  )
    70  
    71  proto_compile(
    72      name = "person_go_compile",
    73      output_mappings = ["person.pb.go=github.com/stackb/rules_proto/example/person/person.pb.go"],
    74      outputs = ["person.pb.go"],
    75      plugins = ["@build_stack_rules_proto//plugin/golang/protobuf:protoc-gen-go"],
    76      proto = "person_proto",
    77      visibility = ["//visibility:public"],
    78  )
    79  
    80  proto_go_library(
    81      name = "person_go_proto",
    82      srcs = ["person.pb.go"],
    83      importpath = "github.com/stackb/rules_proto/example/person",
    84      visibility = ["//visibility:public"],
    85      deps = [
    86          "//example/place:place_go_proto",
    87          "@org_golang_google_protobuf//reflect/protoreflect",
    88          "@org_golang_google_protobuf//runtime/protoimpl",
    89      ],
    90  )
    91  
    92  proto_compile(
    93      name = "person_java_compile",
    94      outs = {"@build_stack_rules_proto//plugin/builtin:java": "example/person/person.srcjar"},
    95      outputs = ["person.srcjar"],
    96      plugins = ["@build_stack_rules_proto//plugin/builtin:java"],
    97      proto = "person_proto",
    98      visibility = ["//visibility:public"],
    99  )
   100  
   101  proto_java_library(
   102      name = "person_java_library",
   103      srcs = ["person.srcjar"],
   104      visibility = ["//visibility:public"],
   105      exports = [
   106          "//example/place:place_java_library",
   107          "@com_google_protobuf//:protobuf_java",
   108      ],
   109      deps = [
   110          "//example/place:place_java_library",
   111          "@com_google_protobuf//:protobuf_java",
   112      ],
   113  )
   114  
   115  proto_compile(
   116      name = "person_node_js_compile",
   117      options = {"@build_stack_rules_proto//plugin/builtin:commonjs": ["import_style=commonjs"]},
   118      outputs = ["person_pb.js"],
   119      plugins = ["@build_stack_rules_proto//plugin/builtin:commonjs"],
   120      proto = "person_proto",
   121      visibility = ["//visibility:public"],
   122  )
   123  
   124  proto_nodejs_library(
   125      name = "person_nodejs_library",
   126      srcs = ["person_pb.js"],
   127      visibility = ["//visibility:public"],
   128  )
   129  
   130  proto_compile(
   131      name = "person_python_compile",
   132      outputs = [
   133          "person_pb2.py",
   134          "person_pb2.pyi",
   135      ],
   136      plugins = [
   137          "@build_stack_rules_proto//plugin/builtin:pyi",
   138          "@build_stack_rules_proto//plugin/builtin:python",
   139      ],
   140      proto = "person_proto",
   141      visibility = ["//visibility:public"],
   142  )
   143  
   144  proto_py_library(
   145      name = "person_py_library",
   146      srcs = ["person_pb2.py"],
   147      visibility = ["//visibility:public"],
   148      deps = [
   149          "//example/place:place_py_library",
   150          "@com_google_protobuf//:protobuf_python",
   151      ],
   152  )
   153  
   154  proto_compile(
   155      name = "person_scala_compile",
   156      options = {"@build_stack_rules_proto//plugin/scalapb/scalapb:protoc-gen-scala-grpc": ["grpc"]},
   157      outputs = [
   158          "person_scala.srcjar",
   159          "person_scala_grpc.srcjar",
   160      ],
   161      plugins = [
   162          "@build_stack_rules_proto//plugin/scalapb/scalapb:protoc-gen-scala",
   163          "@build_stack_rules_proto//plugin/scalapb/scalapb:protoc-gen-scala-grpc",
   164      ],
   165      proto = "person_proto",
   166      visibility = ["//visibility:public"],
   167  )
   168  
   169  proto_scala_library(
   170      name = "person_proto_scala_library",
   171      srcs = ["person_scala.srcjar"],
   172      visibility = ["//visibility:public"],
   173      deps = [
   174          "//example/place:place_proto_scala_library",
   175          "@maven_scala//:com_google_protobuf_protobuf_java",
   176          "@maven_scala//:com_thesamet_scalapb_lenses_2_12",
   177          "@maven_scala//:com_thesamet_scalapb_scalapb_runtime_2_12",
   178      ],
   179  )
   180  
   181  proto_compile(
   182      name = "person_ts_proto_compile",
   183      options = {"@build_stack_rules_proto//plugin/stephenh/ts-proto:protoc-gen-ts-proto": [
   184          "emitImportedFiles=false",
   185          "esModuleInterop=true",
   186      ]},
   187      outputs = ["person.ts"],
   188      plugins = ["@build_stack_rules_proto//plugin/stephenh/ts-proto:protoc-gen-ts-proto"],
   189      proto = "person_proto",
   190      visibility = ["//visibility:public"],
   191  )
   192  
   193  proto_ts_library(
   194      name = "person_ts_proto",
   195      srcs = ["person.ts"],
   196      visibility = ["//visibility:public"],
   197      deps = [
   198          "//example/place:place_ts_proto",
   199          "@//:node_modules/@nestjs/microservices",
   200          "@//:node_modules/@types/node",
   201          "@//:node_modules/long",
   202          "@//:node_modules/protobufjs",
   203          "@//:node_modules/rxjs",
   204      ],
   205  )