Copy py_proto_library from rules_python to protobuf https://github.com/bazelbuild/rules_python/blob/main/python/private/proto/py_proto_library.bzl Contributors: d96214f tpudlik@google.com Wed Nov 15 02:48:06 2023 -0800 fix: py_proto_library: transitive strip_import_prefix (#1558) 85e50d2 tpudlik@gmail.com Tue Nov 14 06:04:59 2023 -0800 fix: py_proto_library: append to PYTHONPATH less (#1553) bee35ef zplin@uber.com Wed Oct 11 20:59:34 2023 -0700 fix: allowing to import code generated from proto with strip_import_prefix (#1406) 1a333ce ilist@google.com Tue Jun 20 19:36:39 2023 +0200 fix: plugin_output in py_proto_library rule (#1280) 6905e63 ignas.anikevicius@woven-planet.global Sat Feb 11 14:02:33 2023 +0900 fix: make py_proto_library respect PyInfo imports (#1046) 0d3c4f7 ilist@google.com Wed Jan 18 23:15:52 2023 +0000 Implement py_proto_library (#832) PiperOrigin-RevId: 623401031
diff --git a/python/build_targets.bzl b/python/build_targets.bzl index eb0df0e..e710ec3 100644 --- a/python/build_targets.bzl +++ b/python/build_targets.bzl
@@ -9,6 +9,7 @@ load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix") load("@rules_python//python:defs.bzl", "py_library") load("//:protobuf.bzl", "internal_py_proto_library") +load("//bazel/toolchains:proto_lang_toolchain.bzl", "proto_lang_toolchain") load("//build_defs:arch_tests.bzl", "aarch64_test", "x86_64_test") load("//build_defs:cpp_opts.bzl", "COPTS") load("//conformance:defs.bzl", "conformance_test") @@ -510,3 +511,13 @@ strip_prefix = strip_prefix.from_root(""), visibility = ["//pkg:__pkg__"], ) + + proto_lang_toolchain( + name = "python_toolchain", + command_line = "--python_out=%s", + progress_message = "Generating Python proto_library %{label}", + runtime = ":protobuf_python", + # NOTE: This isn't *actually* public. It's an implicit dependency of py_proto_library, + # so must be public so user usages of the rule can reference it. + visibility = ["//visibility:public"], + )