github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/example/thing/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 = "thing_proto",
    14      srcs = ["thing.proto"],
    15      visibility = ["//visibility:public"],
    16      deps = ["@protoapis//google/protobuf:timestamp_proto"],
    17  )
    18  
    19  proto_closure_js_library(
    20      name = "thing_closure_js_library",
    21      srcs = ["thing_closure.js"],
    22      internal_descriptors = [
    23          "//example/thing:thing_proto",
    24          "//google/protobuf:timestamppb_proto",
    25      ],
    26      suppress = [
    27          "JSC_IMPLICITLY_NONNULL_JSDOC",
    28          "JSC_UNUSED_LOCAL_ASSIGNMENT",
    29      ],
    30      visibility = ["//visibility:public"],
    31      exports = [],
    32  )
    33  
    34  proto_compile(
    35      name = "thing_closure_js_compile",
    36      options = {"@build_stack_rules_proto//plugin/builtin:closurejs": [
    37          "import_style=closure",
    38          "library=example/thing/thing_closure",
    39      ]},
    40      outputs = ["thing_closure.js"],
    41      plugins = ["@build_stack_rules_proto//plugin/builtin:closurejs"],
    42      proto = "thing_proto",
    43      visibility = ["//visibility:public"],
    44  )
    45  
    46  proto_cc_library(
    47      name = "thing_cc_library",
    48      srcs = ["thing.pb.cc"],
    49      hdrs = ["thing.pb.h"],
    50      visibility = ["//visibility:public"],
    51      deps = [
    52          "@com_google_protobuf//:protobuf",
    53          "@protoapis//google/protobuf:timestamp_cc_library",
    54      ],
    55  )
    56  
    57  proto_compile(
    58      name = "thing_cpp_compile",
    59      outputs = [
    60          "thing.pb.cc",
    61          "thing.pb.h",
    62      ],
    63      plugins = ["@build_stack_rules_proto//plugin/builtin:cpp"],
    64      proto = "thing_proto",
    65      visibility = ["//visibility:public"],
    66  )
    67  
    68  proto_compile(
    69      name = "thing_go_compile",
    70      output_mappings = ["thing.pb.go=github.com/stackb/rules_proto/example/thing/thing.pb.go"],
    71      outputs = ["thing.pb.go"],
    72      plugins = ["@build_stack_rules_proto//plugin/golang/protobuf:protoc-gen-go"],
    73      proto = "thing_proto",
    74      visibility = ["//visibility:public"],
    75  )
    76  
    77  proto_go_library(
    78      name = "thing_go_proto",
    79      srcs = ["thing.pb.go"],
    80      importpath = "github.com/stackb/rules_proto/example/thing",
    81      visibility = ["//visibility:public"],
    82      deps = [
    83          "@org_golang_google_protobuf//reflect/protoreflect",
    84          "@org_golang_google_protobuf//runtime/protoimpl",
    85          "@org_golang_google_protobuf//types/known/timestamppb",
    86      ],
    87  )
    88  
    89  proto_compile(
    90      name = "thing_java_compile",
    91      outs = {"@build_stack_rules_proto//plugin/builtin:java": "example/thing/thing.srcjar"},
    92      outputs = ["thing.srcjar"],
    93      plugins = ["@build_stack_rules_proto//plugin/builtin:java"],
    94      proto = "thing_proto",
    95      visibility = ["//visibility:public"],
    96  )
    97  
    98  proto_java_library(
    99      name = "thing_java_library",
   100      srcs = ["thing.srcjar"],
   101      visibility = ["//visibility:public"],
   102      exports = [
   103          "@com_google_protobuf//:protobuf_java",
   104          "@protoapis//google/protobuf:timestamp_java_library",
   105      ],
   106      deps = [
   107          "@com_google_protobuf//:protobuf_java",
   108          "@protoapis//google/protobuf:timestamp_java_library",
   109      ],
   110  )
   111  
   112  proto_compile(
   113      name = "thing_node_js_compile",
   114      options = {"@build_stack_rules_proto//plugin/builtin:commonjs": ["import_style=commonjs"]},
   115      outputs = ["thing_pb.js"],
   116      plugins = ["@build_stack_rules_proto//plugin/builtin:commonjs"],
   117      proto = "thing_proto",
   118      visibility = ["//visibility:public"],
   119  )
   120  
   121  proto_nodejs_library(
   122      name = "thing_nodejs_library",
   123      srcs = ["thing_pb.js"],
   124      visibility = ["//visibility:public"],
   125  )
   126  
   127  proto_compile(
   128      name = "thing_python_compile",
   129      outputs = [
   130          "thing_pb2.py",
   131          "thing_pb2.pyi",
   132      ],
   133      plugins = [
   134          "@build_stack_rules_proto//plugin/builtin:pyi",
   135          "@build_stack_rules_proto//plugin/builtin:python",
   136      ],
   137      proto = "thing_proto",
   138      visibility = ["//visibility:public"],
   139  )
   140  
   141  proto_py_library(
   142      name = "thing_py_library",
   143      srcs = ["thing_pb2.py"],
   144      visibility = ["//visibility:public"],
   145      deps = [
   146          "@com_google_protobuf//:protobuf_python",
   147          "@protoapis//google/protobuf:timestamp_py_library",
   148      ],
   149  )
   150  
   151  proto_compile(
   152      name = "thing_scala_compile",
   153      options = {"@build_stack_rules_proto//plugin/scalapb/scalapb:protoc-gen-scala-grpc": ["grpc"]},
   154      outputs = [
   155          "thing_scala.srcjar",
   156          "thing_scala_grpc.srcjar",
   157      ],
   158      plugins = [
   159          "@build_stack_rules_proto//plugin/scalapb/scalapb:protoc-gen-scala",
   160          "@build_stack_rules_proto//plugin/scalapb/scalapb:protoc-gen-scala-grpc",
   161      ],
   162      proto = "thing_proto",
   163      visibility = ["//visibility:public"],
   164  )
   165  
   166  proto_scala_library(
   167      name = "thing_proto_scala_library",
   168      srcs = ["thing_scala.srcjar"],
   169      visibility = ["//visibility:public"],
   170      deps = [
   171          "@maven_scala//:com_google_protobuf_protobuf_java",
   172          "@maven_scala//:com_thesamet_scalapb_lenses_2_12",
   173          "@maven_scala//:com_thesamet_scalapb_scalapb_runtime_2_12",
   174      ],
   175  )
   176  
   177  proto_compile(
   178      name = "thing_ts_proto_compile",
   179      options = {"@build_stack_rules_proto//plugin/stephenh/ts-proto:protoc-gen-ts-proto": [
   180          "emitImportedFiles=false",
   181          "esModuleInterop=true",
   182      ]},
   183      outputs = ["thing.ts"],
   184      plugins = ["@build_stack_rules_proto//plugin/stephenh/ts-proto:protoc-gen-ts-proto"],
   185      proto = "thing_proto",
   186      visibility = ["//visibility:public"],
   187  )
   188  
   189  proto_ts_library(
   190      name = "thing_ts_proto",
   191      srcs = ["thing.ts"],
   192      visibility = ["//visibility:public"],
   193      deps = [
   194          "//google/protobuf:timestamppb_ts_proto",
   195          "@//:node_modules/@nestjs/microservices",
   196          "@//:node_modules/@types/node",
   197          "@//:node_modules/long",
   198          "@//:node_modules/protobufjs",
   199          "@//:node_modules/rxjs",
   200      ],
   201  )