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