# Copyright (C) 2022 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # This BUILD.bazel file is a handcrafted addition to the one generated # from Android.bp. The BUILD file in this folder is unused, it's from # the protocol-buffers github repo. load("//build/bazel/rules/python:py_proto.bzl", "py_proto_library") py_library( name = "libprotobuf-python", srcs = glob(["python/google/**/*.py"]) + [":libprotobuf-python-copy-protos"], imports = ["python"], deps = ["//external/python/six:py-six"], ) proto_filenames = [ "google/protobuf/descriptor", "google/protobuf/any", "google/protobuf/source_context", "google/protobuf/type", "google/protobuf/compiler/plugin", "google/protobuf/api", "google/protobuf/duration", "google/protobuf/empty", "google/protobuf/field_mask", "google/protobuf/struct", "google/protobuf/timestamp", "google/protobuf/wrappers", ] # Copy protobufs to the python/ folder. They must be in the same folder # as other source files in the same package, adding more folders to # the PYTHONPATH won't help because the interpreter stops once it sees # the first folder matching the package name of an import. genrule( name = "libprotobuf-python-copy-protos", srcs = [":libprotobuf-python-proto-gen"], outs = ["python/" + f + "_pb2.py" for f in proto_filenames], cmd = "cp -rf $(BINDIR)/external/protobuf/_virtual_imports/libprotobuf-proto/google $(BINDIR)/external/protobuf/python/" ) py_proto_library( name = "libprotobuf-python-proto-gen", deps = [":libprotobuf-proto"], ) proto_library( name = "libprotobuf-proto", srcs = ["src/" + f + ".proto" for f in proto_filenames], strip_import_prefix = "src", )