summaryrefslogtreecommitdiff
path: root/system/Android.bp
blob: f3bbab694edec3674b2a882df25f81da69fe464c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "system_bt_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    //   SPDX-license-identifier-BSD
    //   SPDX-license-identifier-MIT
    //   legacy_unencumbered
    default_applicable_licenses: ["system_bt_license"],
}

filegroup {
    name: "BlueberryFacadeProto",
    srcs: [
        "blueberry/facade/common.proto",
        "blueberry/facade/rootservice.proto",
        "blueberry/facade/hal/hal_facade.proto",
        "blueberry/facade/hci/hci_facade.proto",
        "blueberry/facade/hci/acl_manager_facade.proto",
        "blueberry/facade/hci/controller_facade.proto",
        "blueberry/facade/hci/le_acl_manager_facade.proto",
        "blueberry/facade/hci/le_advertising_manager_facade.proto",
        "blueberry/facade/hci/le_initiator_address_facade.proto",
        "blueberry/facade/hci/le_scanning_manager_facade.proto",
        "blueberry/facade/iso/facade.proto",
        "blueberry/facade/neighbor/facade.proto",
        "blueberry/facade/l2cap/classic/facade.proto",
        "blueberry/facade/l2cap/le/facade.proto",
        "blueberry/facade/security/facade.proto",
        "blueberry/facade/shim/facade.proto",
        "blueberry/facade/topshim/facade.proto",
    ],
}

genrule {
    name: "BlueberryFacadeGeneratedStub_h",
    tools: [
        "aprotoc",
        "protoc-gen-grpc-cpp-plugin",
    ],
    cmd: "$(location aprotoc) -Ipackages/modules/Bluetooth/system -Iexternal/protobuf/src --plugin=protoc-gen-grpc=$(location protoc-gen-grpc-cpp-plugin) $(in) --grpc_out=$(genDir) --cpp_out=$(genDir)",
    srcs: [
        ":BlueberryFacadeProto",
    ],
    out: [
        "blueberry/facade/common.grpc.pb.h",
        "blueberry/facade/common.pb.h",
        "blueberry/facade/rootservice.grpc.pb.h",
        "blueberry/facade/rootservice.pb.h",
        "blueberry/facade/hal/hal_facade.grpc.pb.h",
        "blueberry/facade/hal/hal_facade.pb.h",
        "blueberry/facade/hci/hci_facade.grpc.pb.h",
        "blueberry/facade/hci/hci_facade.pb.h",
        "blueberry/facade/hci/acl_manager_facade.grpc.pb.h",
        "blueberry/facade/hci/acl_manager_facade.pb.h",
        "blueberry/facade/hci/controller_facade.grpc.pb.h",
        "blueberry/facade/hci/controller_facade.pb.h",
        "blueberry/facade/hci/le_acl_manager_facade.grpc.pb.h",
        "blueberry/facade/hci/le_acl_manager_facade.pb.h",
        "blueberry/facade/hci/le_advertising_manager_facade.grpc.pb.h",
        "blueberry/facade/hci/le_advertising_manager_facade.pb.h",
        "blueberry/facade/hci/le_initiator_address_facade.grpc.pb.h",
        "blueberry/facade/hci/le_initiator_address_facade.pb.h",
        "blueberry/facade/hci/le_scanning_manager_facade.grpc.pb.h",
        "blueberry/facade/hci/le_scanning_manager_facade.pb.h",
        "blueberry/facade/iso/facade.grpc.pb.h",
        "blueberry/facade/iso/facade.pb.h",
        "blueberry/facade/l2cap/classic/facade.grpc.pb.h",
        "blueberry/facade/l2cap/classic/facade.pb.h",
        "blueberry/facade/l2cap/le/facade.grpc.pb.h",
        "blueberry/facade/l2cap/le/facade.pb.h",
        "blueberry/facade/neighbor/facade.grpc.pb.h",
        "blueberry/facade/neighbor/facade.pb.h",
        "blueberry/facade/security/facade.grpc.pb.h",
        "blueberry/facade/security/facade.pb.h",
        "blueberry/facade/shim/facade.grpc.pb.h",
        "blueberry/facade/shim/facade.pb.h",
    ],
}

genrule {
    name: "BlueberryFacadeGeneratedStub_cc",
    tools: [
        "aprotoc",
        "protoc-gen-grpc-cpp-plugin",
    ],
    cmd: "$(location aprotoc) -Ipackages/modules/Bluetooth/system -Iexternal/protobuf/src --plugin=protoc-gen-grpc=$(location protoc-gen-grpc-cpp-plugin) $(in) --grpc_out=$(genDir) --cpp_out=$(genDir)",
    srcs: [
        ":BlueberryFacadeProto",
    ],
    out: [
        "blueberry/facade/common.grpc.pb.cc",
        "blueberry/facade/common.pb.cc",
        "blueberry/facade/rootservice.grpc.pb.cc",
        "blueberry/facade/rootservice.pb.cc",
        "blueberry/facade/hal/hal_facade.grpc.pb.cc",
        "blueberry/facade/hal/hal_facade.pb.cc",
        "blueberry/facade/hci/hci_facade.grpc.pb.cc",
        "blueberry/facade/hci/hci_facade.pb.cc",
        "blueberry/facade/hci/acl_manager_facade.grpc.pb.cc",
        "blueberry/facade/hci/acl_manager_facade.pb.cc",
        "blueberry/facade/hci/controller_facade.grpc.pb.cc",
        "blueberry/facade/hci/controller_facade.pb.cc",
        "blueberry/facade/hci/le_acl_manager_facade.grpc.pb.cc",
        "blueberry/facade/hci/le_acl_manager_facade.pb.cc",
        "blueberry/facade/hci/le_advertising_manager_facade.grpc.pb.cc",
        "blueberry/facade/hci/le_advertising_manager_facade.pb.cc",
        "blueberry/facade/hci/le_initiator_address_facade.grpc.pb.cc",
        "blueberry/facade/hci/le_initiator_address_facade.pb.cc",
        "blueberry/facade/hci/le_scanning_manager_facade.grpc.pb.cc",
        "blueberry/facade/hci/le_scanning_manager_facade.pb.cc",
        "blueberry/facade/iso/facade.grpc.pb.cc",
        "blueberry/facade/iso/facade.pb.cc",
        "blueberry/facade/l2cap/classic/facade.grpc.pb.cc",
        "blueberry/facade/l2cap/classic/facade.pb.cc",
        "blueberry/facade/l2cap/le/facade.grpc.pb.cc",
        "blueberry/facade/l2cap/le/facade.pb.cc",
        "blueberry/facade/neighbor/facade.grpc.pb.cc",
        "blueberry/facade/neighbor/facade.pb.cc",
        "blueberry/facade/security/facade.grpc.pb.cc",
        "blueberry/facade/security/facade.pb.cc",
        "blueberry/facade/shim/facade.grpc.pb.cc",
        "blueberry/facade/shim/facade.pb.cc",
    ],
}

genrule {
    name: "BlueberryFacadeAndCertGeneratedStub_py",
    tools: [
        "aprotoc",
        "protoc-gen-grpc-python-plugin",
        "soong_zip",
    ],
    cmd: "mkdir -p $(genDir)/files && " +
        "$(location aprotoc) -Ipackages/modules/Bluetooth/system -Iexternal/protobuf/src --plugin=protoc-gen-grpc=$(location protoc-gen-grpc-python-plugin) $(in) --grpc_out=$(genDir)/files --python_out=$(genDir)/files && " +
        "find $(genDir)/files -type d -exec touch {}/__init__.py \\; &&" +
        "$(location soong_zip) -C $(genDir)/files -D $(genDir)/files -o $(out)",
    srcs: [
        ":BlueberryFacadeProto",
    ],
    out: ["blueberry_facade_generated_py.zip"],
}

rust_protobuf {
    name: "libbt_facade_proto",
    crate_name: "bt_facade_proto",
    protos: ["blueberry/facade/common.proto"],
    grpc_protos: [
        "blueberry/facade/hci/controller_facade.proto",
        "blueberry/facade/hci/hci_facade.proto",
        "blueberry/facade/hal/hal_facade.proto",
        "blueberry/facade/rootservice.proto",
    ],
    source_stem: "facade",
    host_supported: true,
    apex_available: [
        "//apex_available:platform",
        "com.android.bluetooth",
    ],
    min_sdk_version: "30",
}

rust_protobuf {
    name: "libbt_topshim_facade_protobuf",
    crate_name: "bt_topshim_facade_protobuf",
    source_stem: "topshim_facade",
    host_supported: true,
    grpc_protos: ["blueberry/facade/topshim/facade.proto"],
}

genrule {
    name: "libbt_topshim_facade_py_proto",
    tools: [
        "aprotoc",
        "protoc-gen-grpc-python-plugin",
        "soong_zip",
    ],
    cmd: "$(location aprotoc) --plugin=protoc-gen-grpc=$(location protoc-gen-grpc-python-plugin) -Iexternal/protobuf/src -Ipackages/modules/Bluetooth/system $(in) --grpc_out=$(genDir) --python_out=$(genDir)",
    srcs: ["blueberry/facade/topshim/facade.proto"],
    out: [
        "blueberry/facade/topshim/facade_pb2.py",
        "blueberry/facade/topshim/facade_pb2_grpc.py"
    ],
}