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 )