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

     1  load("@rules_proto//proto:defs.bzl", "proto_library")
     2  load("@build_stack_rules_proto//rules/cc:grpc_cc_library.bzl", "grpc_cc_library")
     3  load("@build_stack_rules_proto//rules/cc:proto_cc_library.bzl", "proto_cc_library")
     4  load("@build_stack_rules_proto//rules/closure:grpc_closure_js_library.bzl", "grpc_closure_js_library")
     5  load("@build_stack_rules_proto//rules/closure:proto_closure_js_library.bzl", "proto_closure_js_library")
     6  load("@build_stack_rules_proto//rules/go:proto_go_library.bzl", "proto_go_library")
     7  load("@build_stack_rules_proto//rules/java:grpc_java_library.bzl", "grpc_java_library")
     8  load("@build_stack_rules_proto//rules/java:proto_java_library.bzl", "proto_java_library")
     9  load("@build_stack_rules_proto//rules/nodejs:grpc_nodejs_library.bzl", "grpc_nodejs_library")
    10  load("@build_stack_rules_proto//rules/nodejs:grpc_web_js_library.bzl", "grpc_web_js_library")
    11  load("@build_stack_rules_proto//rules/nodejs:proto_nodejs_library.bzl", "proto_nodejs_library")
    12  load("@build_stack_rules_proto//rules/py:grpc_py_library.bzl", "grpc_py_library")
    13  load("@build_stack_rules_proto//rules/py:proto_py_library.bzl", "proto_py_library")
    14  load("@build_stack_rules_proto//rules/scala:grpc_scala_library.bzl", "grpc_scala_library")
    15  load("@build_stack_rules_proto//rules/ts:proto_ts_library.bzl", "proto_ts_library")
    16  load("@build_stack_rules_proto//rules:proto_compile.bzl", "proto_compile")
    17  load("@aspect_rules_js//js:defs.bzl", "js_library")
    18  
    19  # gazelle:proto_plugin ts_proto option nestJs=true
    20  
    21  filegroup(
    22      name = "features",
    23      srcs = ["features.json"],
    24      visibility = ["//visibility:public"],
    25  )
    26  
    27  js_library(
    28      name = "features_json",
    29      srcs = ["features.json"],
    30      visibility = ["//example/routeguide/nodejs:__pkg__"],
    31  )
    32  
    33  genrule(
    34      name = "feature_db_json",
    35      srcs = ["features.json"],
    36      outs = ["feature_db.json"],
    37      cmd = """
    38      echo -n '{ "feature": ' > $@
    39      cat $< >> $@
    40      echo '}' >> $@
    41      """,
    42  )
    43  
    44  filegroup(
    45      name = "feature_db",
    46      srcs = ["feature_db.json"],
    47      visibility = ["//visibility:public"],
    48  )
    49  
    50  # --- generated rules below here ---
    51  
    52  proto_library(
    53      name = "routeguide_proto",
    54      srcs = ["routeguide.proto"],
    55      visibility = ["//visibility:public"],
    56  )
    57  
    58  grpc_closure_js_library(
    59      name = "routeguide_grpc_closure_js_library",
    60      srcs = ["routeguide.grpc.js"],
    61      suppress = [
    62          "JSC_IMPLICITLY_NONNULL_JSDOC",
    63          "JSC_UNUSED_LOCAL_ASSIGNMENT",
    64      ],
    65      visibility = ["//visibility:public"],
    66      exports = [":routeguide_closure_js_library"],
    67      deps = [":routeguide_closure_js_library"],
    68  )
    69  
    70  proto_closure_js_library(
    71      name = "routeguide_closure_js_library",
    72      srcs = ["routeguide_closure.js"],
    73      internal_descriptors = ["//example/routeguide:routeguide_proto"],
    74      suppress = [
    75          "JSC_IMPLICITLY_NONNULL_JSDOC",
    76          "JSC_UNUSED_LOCAL_ASSIGNMENT",
    77      ],
    78      visibility = ["//visibility:public"],
    79      exports = [],
    80  )
    81  
    82  proto_compile(
    83      name = "routeguide_closure_js_compile",
    84      options = {
    85          "@build_stack_rules_proto//plugin/builtin:closurejs": [
    86              "import_style=closure",
    87              "library=example/routeguide/routeguide_closure",
    88          ],
    89          "@build_stack_rules_proto//plugin/stackb/grpc_js:protoc-gen-grpc-js": ["out=example/routeguide/routeguide.grpc.js"],
    90      },
    91      outputs = [
    92          "routeguide.grpc.js",
    93          "routeguide_closure.js",
    94      ],
    95      plugins = [
    96          "@build_stack_rules_proto//plugin/builtin:closurejs",
    97          "@build_stack_rules_proto//plugin/stackb/grpc_js:protoc-gen-grpc-js",
    98      ],
    99      proto = "routeguide_proto",
   100      visibility = ["//visibility:public"],
   101  )
   102  
   103  grpc_cc_library(
   104      name = "routeguide_grpc_cc_library",
   105      srcs = ["routeguide.grpc.pb.cc"],
   106      hdrs = ["routeguide.grpc.pb.h"],
   107      visibility = ["//visibility:public"],
   108      deps = [
   109          ":routeguide_cc_library",
   110          "@com_github_grpc_grpc//:grpc++",
   111          "@com_github_grpc_grpc//:grpc++_reflection",
   112      ],
   113  )
   114  
   115  proto_cc_library(
   116      name = "routeguide_cc_library",
   117      srcs = ["routeguide.pb.cc"],
   118      hdrs = ["routeguide.pb.h"],
   119      visibility = ["//visibility:public"],
   120      deps = ["@com_google_protobuf//:protobuf"],
   121  )
   122  
   123  proto_compile(
   124      name = "routeguide_cpp_compile",
   125      outputs = [
   126          "routeguide.grpc.pb.cc",
   127          "routeguide.grpc.pb.h",
   128          "routeguide.pb.cc",
   129          "routeguide.pb.h",
   130      ],
   131      plugins = [
   132          "@build_stack_rules_proto//plugin/builtin:cpp",
   133          "@build_stack_rules_proto//plugin/grpc/grpc:protoc-gen-grpc-cpp",
   134      ],
   135      proto = "routeguide_proto",
   136      visibility = ["//visibility:public"],
   137  )
   138  
   139  proto_compile(
   140      name = "routeguide_go_compile",
   141      output_mappings = [
   142          "routeguide.pb.go=github.com/stackb/rules_proto/example/routeguide/routeguide.pb.go",
   143          "routeguide_grpc.pb.go=github.com/stackb/rules_proto/example/routeguide/routeguide_grpc.pb.go",
   144      ],
   145      outputs = [
   146          "routeguide.pb.go",
   147          "routeguide_grpc.pb.go",
   148      ],
   149      plugins = [
   150          "@build_stack_rules_proto//plugin/golang/protobuf:protoc-gen-go",
   151          "@build_stack_rules_proto//plugin/grpc/grpc-go:protoc-gen-go-grpc",
   152      ],
   153      proto = "routeguide_proto",
   154      visibility = ["//visibility:public"],
   155  )
   156  
   157  proto_go_library(
   158      name = "routeguide_go_proto",
   159      srcs = [
   160          "routeguide.pb.go",
   161          "routeguide_grpc.pb.go",
   162      ],
   163      importpath = "github.com/stackb/rules_proto/example/routeguide",
   164      visibility = ["//visibility:public"],
   165      deps = [
   166          "@org_golang_google_grpc//:go_default_library",
   167          "@org_golang_google_grpc//codes",
   168          "@org_golang_google_grpc//status",
   169          "@org_golang_google_protobuf//reflect/protoreflect",
   170          "@org_golang_google_protobuf//runtime/protoimpl",
   171      ],
   172  )
   173  
   174  grpc_java_library(
   175      name = "routeguide_grpc_java_library",
   176      srcs = ["routeguide_grpc.srcjar"],
   177      visibility = ["//visibility:public"],
   178      exports = [
   179          ":routeguide_java_library",
   180          "@com_google_guava_guava//jar",
   181          "@io_grpc_grpc_java//context",
   182          "@io_grpc_grpc_java//protobuf",
   183          "@io_grpc_grpc_java//stub",
   184          "@io_grpc_grpc_java//stub:javax_annotation",
   185      ],
   186      deps = [
   187          ":routeguide_java_library",
   188          "@com_google_guava_guava//jar",
   189          "@io_grpc_grpc_java//context",
   190          "@io_grpc_grpc_java//protobuf",
   191          "@io_grpc_grpc_java//stub",
   192          "@io_grpc_grpc_java//stub:javax_annotation",
   193      ],
   194  )
   195  
   196  proto_compile(
   197      name = "routeguide_java_compile",
   198      outs = {
   199          "@build_stack_rules_proto//plugin/builtin:java": "example/routeguide/routeguide.srcjar",
   200          "@build_stack_rules_proto//plugin/grpc/grpc-java:protoc-gen-grpc-java": "example/routeguide/routeguide_grpc.srcjar",
   201      },
   202      outputs = [
   203          "routeguide.srcjar",
   204          "routeguide_grpc.srcjar",
   205      ],
   206      plugins = [
   207          "@build_stack_rules_proto//plugin/builtin:java",
   208          "@build_stack_rules_proto//plugin/grpc/grpc-java:protoc-gen-grpc-java",
   209      ],
   210      proto = "routeguide_proto",
   211      visibility = ["//visibility:public"],
   212  )
   213  
   214  proto_java_library(
   215      name = "routeguide_java_library",
   216      srcs = ["routeguide.srcjar"],
   217      visibility = ["//visibility:public"],
   218      exports = ["@com_google_protobuf//:protobuf_java"],
   219      deps = ["@com_google_protobuf//:protobuf_java"],
   220  )
   221  
   222  grpc_nodejs_library(
   223      name = "routeguide_grpc_nodejs_library",
   224      srcs = ["routeguide_grpc_pb.js"],
   225      visibility = ["//visibility:public"],
   226      deps = [":routeguide_nodejs_library"],
   227  )
   228  
   229  grpc_web_js_library(
   230      name = "routeguide_grpc_web_js_library",
   231      srcs = ["routeguide_grpc_web_pb.js"],
   232      visibility = ["//visibility:public"],
   233      deps = [
   234          ":routeguide_nodejs_library",
   235          "@org_golang_google_protobuf//reflect/protoreflect",
   236          "@org_golang_google_protobuf//runtime/protoimpl",
   237      ],
   238  )
   239  
   240  proto_compile(
   241      name = "routeguide_node_js_compile",
   242      options = {
   243          "@build_stack_rules_proto//plugin/builtin:commonjs": ["import_style=commonjs"],
   244          "@build_stack_rules_proto//plugin/grpc/grpc-node:protoc-gen-grpc-node": ["grpc_js"],
   245          "@build_stack_rules_proto//plugin/grpc/grpc-web:protoc-gen-grpc-web": [
   246              "import_style=commonjs+dts",
   247              "mode=grpcwebtext",
   248          ],
   249      },
   250      outputs = [
   251          "routeguide_grpc_pb.js",
   252          "routeguide_grpc_web_pb.js",
   253          "routeguide_pb.js",
   254      ],
   255      plugins = [
   256          "@build_stack_rules_proto//plugin/builtin:commonjs",
   257          "@build_stack_rules_proto//plugin/grpc/grpc-node:protoc-gen-grpc-node",
   258          "@build_stack_rules_proto//plugin/grpc/grpc-web:protoc-gen-grpc-web",
   259      ],
   260      proto = "routeguide_proto",
   261      visibility = ["//visibility:public"],
   262  )
   263  
   264  proto_nodejs_library(
   265      name = "routeguide_nodejs_library",
   266      srcs = ["routeguide_pb.js"],
   267      visibility = ["//visibility:public"],
   268  )
   269  
   270  grpc_py_library(
   271      name = "routeguide_grpc_py_library",
   272      srcs = ["routeguide_pb2_grpc.py"],
   273      visibility = ["//visibility:public"],
   274      deps = [":routeguide_py_library"],
   275  )
   276  
   277  proto_compile(
   278      name = "routeguide_python_compile",
   279      outputs = [
   280          "routeguide_pb2.py",
   281          "routeguide_pb2.pyi",
   282          "routeguide_pb2_grpc.py",
   283      ],
   284      plugins = [
   285          "@build_stack_rules_proto//plugin/builtin:pyi",
   286          "@build_stack_rules_proto//plugin/builtin:python",
   287          "@build_stack_rules_proto//plugin/grpc/grpc:protoc-gen-grpc-python",
   288      ],
   289      proto = "routeguide_proto",
   290      visibility = ["//visibility:public"],
   291  )
   292  
   293  proto_py_library(
   294      name = "routeguide_py_library",
   295      srcs = ["routeguide_pb2.py"],
   296      visibility = ["//visibility:public"],
   297      deps = ["@com_google_protobuf//:protobuf_python"],
   298  )
   299  
   300  grpc_scala_library(
   301      name = "routeguide_grpc_scala_library",
   302      srcs = [
   303          "routeguide_akka_grpc.srcjar",
   304          "routeguide_scala_grpc.srcjar",
   305      ],
   306      visibility = ["//visibility:public"],
   307      deps = [
   308          "@maven_akka//:com_lightbend_akka_grpc_akka_grpc_runtime_2_12_2_1_3",
   309          "@maven_akka//:com_typesafe_akka_akka_actor_2_12",
   310          "@maven_akka//:com_typesafe_akka_akka_http_core_2_12",
   311          "@maven_akka//:com_typesafe_akka_akka_stream_2_12",
   312          "@maven_scala//:com_google_protobuf_protobuf_java",
   313          "@maven_scala//:com_thesamet_scalapb_lenses_2_12",
   314          "@maven_scala//:com_thesamet_scalapb_scalapb_runtime_2_12",
   315          "@maven_scala//:com_thesamet_scalapb_scalapb_runtime_grpc_2_12",
   316          "@maven_scala//:io_grpc_grpc_api",
   317          "@maven_scala//:io_grpc_grpc_protobuf",
   318          "@maven_scala//:io_grpc_grpc_stub",
   319      ],
   320  )
   321  
   322  proto_compile(
   323      name = "routeguide_scala_compile",
   324      options = {"@build_stack_rules_proto//plugin/scalapb/scalapb:protoc-gen-scala-grpc": ["grpc"]},
   325      outputs = [
   326          "routeguide_akka_grpc.srcjar",
   327          "routeguide_scala.srcjar",
   328          "routeguide_scala_grpc.srcjar",
   329      ],
   330      plugins = [
   331          "@build_stack_rules_proto//plugin/akka/akka-grpc:protoc-gen-akka-grpc",
   332          "@build_stack_rules_proto//plugin/scalapb/scalapb:protoc-gen-scala",
   333          "@build_stack_rules_proto//plugin/scalapb/scalapb:protoc-gen-scala-grpc",
   334      ],
   335      proto = "routeguide_proto",
   336      visibility = ["//visibility:public"],
   337  )
   338  
   339  proto_compile(
   340      name = "routeguide_ts_proto_compile",
   341      options = {"@build_stack_rules_proto//plugin/stephenh/ts-proto:protoc-gen-ts-proto": [
   342          "emitImportedFiles=false",
   343          "esModuleInterop=true",
   344          "nestJs=true",
   345      ]},
   346      outputs = ["routeguide.ts"],
   347      plugins = ["@build_stack_rules_proto//plugin/stephenh/ts-proto:protoc-gen-ts-proto"],
   348      proto = "routeguide_proto",
   349      visibility = ["//visibility:public"],
   350  )
   351  
   352  proto_ts_library(
   353      name = "routeguide_ts_proto",
   354      srcs = ["routeguide.ts"],
   355      visibility = ["//visibility:public"],
   356      deps = [
   357          "@//:node_modules/@nestjs/microservices",
   358          "@//:node_modules/@types/node",
   359          "@//:node_modules/long",
   360          "@//:node_modules/protobufjs",
   361          "@//:node_modules/rxjs",
   362      ],
   363  )