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 )