1package { 2 default_applicable_licenses: [ 3 "external_pandora_bt-test-interfaces_license", 4 ], 5} 6 7genrule { 8 name: "protoc-gen-pandora-python-src", 9 srcs: ["_build/protoc-gen-custom_grpc"], 10 cmd: "cp $(in) $(out)", 11 out: ["protoc-gen-custom_grpc.py"], 12} 13 14python_binary_host { 15 name: "protoc-gen-pandora-python", 16 main: "protoc-gen-custom_grpc.py", 17 srcs: [":protoc-gen-pandora-python-src"], 18 libs: ["libprotobuf-python"], 19} 20 21genrule { 22 name: "pandora-python-gen-src", 23 tools: [ 24 "aprotoc", 25 "protoc-gen-pandora-python" 26 ], 27 cmd: "$(location aprotoc)" + 28 " -Iexternal/pandora/bt-test-interfaces" + 29 " -Iexternal/protobuf/src" + 30 " --plugin=protoc-gen-grpc=$(location protoc-gen-pandora-python)" + 31 " --python_out=$(genDir)" + 32 " --grpc_out=$(genDir)" + 33 " $(locations :pandora-protos) &&" + 34 "touch $(genDir)/pandora/py.typed &&" + 35 "touch $(genDir)/pandora/__init__.py", 36 srcs: [ 37 ":pandora-protos", 38 ":libprotobuf-internal-protos", 39 ], 40 out: [ 41 "pandora/py.typed", 42 "pandora/__init__.py", 43 "pandora/_utils.py", 44 "pandora/a2dp_grpc.py", 45 "pandora/a2dp_grpc_aio.py", 46 "pandora/a2dp_pb2.py", 47 "pandora/a2dp_pb2.pyi", 48 "pandora/host_grpc.py", 49 "pandora/host_grpc_aio.py", 50 "pandora/host_pb2.py", 51 "pandora/host_pb2.pyi", 52 "pandora/l2cap_grpc.py", 53 "pandora/l2cap_grpc_aio.py", 54 "pandora/l2cap_pb2.py", 55 "pandora/l2cap_pb2.pyi", 56 "pandora/security_grpc.py", 57 "pandora/security_grpc_aio.py", 58 "pandora/security_pb2.py", 59 "pandora/security_pb2.pyi", 60 ] 61} 62 63filegroup { 64 name: "pandora-python-src", 65 srcs: [ 66 ":pandora-python-gen-src" 67 ], 68 exclude_srcs: [ 69 ":pandora-python-stubs", 70 ] 71} 72 73filegroup { 74 name: "pandora-python-stubs", 75 srcs: [ 76 ":pandora-python-gen-src{pandora/py.typed}", 77 ":pandora-python-gen-src{pandora/a2dp_pb2.pyi}", 78 ":pandora-python-gen-src{pandora/host_pb2.pyi}", 79 ":pandora-python-gen-src{pandora/l2cap_pb2.pyi}", 80 ":pandora-python-gen-src{pandora/security_pb2.pyi}", 81 ], 82} 83 84python_library_host { 85 name: "pandora-python", 86 srcs: [ 87 ":pandora-python-src", 88 ], 89 data: [ 90 ":pandora-python-stubs" 91 ] 92} 93