xref: /aosp_15_r20/frameworks/base/ProtoLibraries.bp (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Worker// Copyright (C) 2021 The Android Open Source Project
2*d57664e9SAndroid Build Coastguard Worker//
3*d57664e9SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d57664e9SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d57664e9SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d57664e9SAndroid Build Coastguard Worker//
7*d57664e9SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*d57664e9SAndroid Build Coastguard Worker//
9*d57664e9SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d57664e9SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d57664e9SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d57664e9SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d57664e9SAndroid Build Coastguard Worker// limitations under the License.
14*d57664e9SAndroid Build Coastguard Worker
15*d57664e9SAndroid Build Coastguard Workergensrcs {
16*d57664e9SAndroid Build Coastguard Worker    name: "framework-javastream-protos",
17*d57664e9SAndroid Build Coastguard Worker
18*d57664e9SAndroid Build Coastguard Worker    tools: [
19*d57664e9SAndroid Build Coastguard Worker        "aprotoc",
20*d57664e9SAndroid Build Coastguard Worker        "protoc-gen-javastream",
21*d57664e9SAndroid Build Coastguard Worker        "soong_zip",
22*d57664e9SAndroid Build Coastguard Worker    ],
23*d57664e9SAndroid Build Coastguard Worker
24*d57664e9SAndroid Build Coastguard Worker    cmd: "mkdir -p $(genDir)/$(in) " +
25*d57664e9SAndroid Build Coastguard Worker        "&& $(location aprotoc) " +
26*d57664e9SAndroid Build Coastguard Worker        "  --plugin=$(location protoc-gen-javastream) " +
27*d57664e9SAndroid Build Coastguard Worker        "  --javastream_out=$(genDir)/$(in) " +
28*d57664e9SAndroid Build Coastguard Worker        "  -Iexternal/protobuf/src " +
29*d57664e9SAndroid Build Coastguard Worker        "  -I . " +
30*d57664e9SAndroid Build Coastguard Worker        "  $(in) " +
31*d57664e9SAndroid Build Coastguard Worker        "&& $(location soong_zip) -jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)",
32*d57664e9SAndroid Build Coastguard Worker
33*d57664e9SAndroid Build Coastguard Worker    srcs: [
34*d57664e9SAndroid Build Coastguard Worker        ":aconfigd_protos",
35*d57664e9SAndroid Build Coastguard Worker        ":ipconnectivity-proto-src",
36*d57664e9SAndroid Build Coastguard Worker        ":libstats_atom_enum_protos",
37*d57664e9SAndroid Build Coastguard Worker        ":libstats_atom_message_protos",
38*d57664e9SAndroid Build Coastguard Worker        ":libtombstone_proto-src",
39*d57664e9SAndroid Build Coastguard Worker        "core/proto/**/*.proto",
40*d57664e9SAndroid Build Coastguard Worker        "libs/incident/**/*.proto",
41*d57664e9SAndroid Build Coastguard Worker    ],
42*d57664e9SAndroid Build Coastguard Worker
43*d57664e9SAndroid Build Coastguard Worker    data: [
44*d57664e9SAndroid Build Coastguard Worker        ":libprotobuf-internal-protos",
45*d57664e9SAndroid Build Coastguard Worker    ],
46*d57664e9SAndroid Build Coastguard Worker
47*d57664e9SAndroid Build Coastguard Worker    output_extension: "srcjar",
48*d57664e9SAndroid Build Coastguard Worker}
49*d57664e9SAndroid Build Coastguard Worker
50*d57664e9SAndroid Build Coastguard Workergensrcs {
51*d57664e9SAndroid Build Coastguard Worker    name: "framework-cppstream-protos",
52*d57664e9SAndroid Build Coastguard Worker
53*d57664e9SAndroid Build Coastguard Worker    tools: [
54*d57664e9SAndroid Build Coastguard Worker        "aprotoc",
55*d57664e9SAndroid Build Coastguard Worker        "protoc-gen-cppstream",
56*d57664e9SAndroid Build Coastguard Worker    ],
57*d57664e9SAndroid Build Coastguard Worker
58*d57664e9SAndroid Build Coastguard Worker    cmd: "mkdir -p $(genDir) " +
59*d57664e9SAndroid Build Coastguard Worker        "&& $(location aprotoc) " +
60*d57664e9SAndroid Build Coastguard Worker        "  --plugin=$(location protoc-gen-cppstream) " +
61*d57664e9SAndroid Build Coastguard Worker        "  --cppstream_out=$(genDir) " +
62*d57664e9SAndroid Build Coastguard Worker        "  -Iexternal/protobuf/src " +
63*d57664e9SAndroid Build Coastguard Worker        "  -I . " +
64*d57664e9SAndroid Build Coastguard Worker        "  $(in)",
65*d57664e9SAndroid Build Coastguard Worker
66*d57664e9SAndroid Build Coastguard Worker    srcs: [
67*d57664e9SAndroid Build Coastguard Worker        ":ipconnectivity-proto-src",
68*d57664e9SAndroid Build Coastguard Worker        ":libstats_atom_enum_protos",
69*d57664e9SAndroid Build Coastguard Worker        ":libstats_atom_message_protos",
70*d57664e9SAndroid Build Coastguard Worker        "core/proto/**/*.proto",
71*d57664e9SAndroid Build Coastguard Worker        "libs/incident/**/*.proto",
72*d57664e9SAndroid Build Coastguard Worker    ],
73*d57664e9SAndroid Build Coastguard Worker
74*d57664e9SAndroid Build Coastguard Worker    data: [
75*d57664e9SAndroid Build Coastguard Worker        ":libprotobuf-internal-protos",
76*d57664e9SAndroid Build Coastguard Worker    ],
77*d57664e9SAndroid Build Coastguard Worker
78*d57664e9SAndroid Build Coastguard Worker    output_extension: "proto.h",
79*d57664e9SAndroid Build Coastguard Worker}
80*d57664e9SAndroid Build Coastguard Worker
81*d57664e9SAndroid Build Coastguard Worker// ====  nfc framework java library  ==============================
82*d57664e9SAndroid Build Coastguard Workergensrcs {
83*d57664e9SAndroid Build Coastguard Worker    name: "framework-nfc-javastream-protos",
84*d57664e9SAndroid Build Coastguard Worker
85*d57664e9SAndroid Build Coastguard Worker    tools: [
86*d57664e9SAndroid Build Coastguard Worker        "aprotoc",
87*d57664e9SAndroid Build Coastguard Worker        "protoc-gen-javastream",
88*d57664e9SAndroid Build Coastguard Worker        "soong_zip",
89*d57664e9SAndroid Build Coastguard Worker    ],
90*d57664e9SAndroid Build Coastguard Worker
91*d57664e9SAndroid Build Coastguard Worker    cmd: "mkdir -p $(genDir)/$(in) " +
92*d57664e9SAndroid Build Coastguard Worker        "&& $(location aprotoc) " +
93*d57664e9SAndroid Build Coastguard Worker        "  --plugin=$(location protoc-gen-javastream) " +
94*d57664e9SAndroid Build Coastguard Worker        "  --javastream_out=$(genDir)/$(in) " +
95*d57664e9SAndroid Build Coastguard Worker        "  -Iexternal/protobuf/src " +
96*d57664e9SAndroid Build Coastguard Worker        "  -I . " +
97*d57664e9SAndroid Build Coastguard Worker        "  $(in) " +
98*d57664e9SAndroid Build Coastguard Worker        "&& $(location soong_zip) -jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)",
99*d57664e9SAndroid Build Coastguard Worker
100*d57664e9SAndroid Build Coastguard Worker    srcs: [
101*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/app/pendingintent.proto",
102*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/content/component_name.proto",
103*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/content/intent.proto",
104*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/nfc/*.proto",
105*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/os/patternmatcher.proto",
106*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/os/persistablebundle.proto",
107*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/privacy.proto",
108*d57664e9SAndroid Build Coastguard Worker    ],
109*d57664e9SAndroid Build Coastguard Worker
110*d57664e9SAndroid Build Coastguard Worker    data: [
111*d57664e9SAndroid Build Coastguard Worker        ":libprotobuf-internal-protos",
112*d57664e9SAndroid Build Coastguard Worker    ],
113*d57664e9SAndroid Build Coastguard Worker
114*d57664e9SAndroid Build Coastguard Worker    output_extension: "srcjar",
115*d57664e9SAndroid Build Coastguard Worker}
116*d57664e9SAndroid Build Coastguard Worker
117*d57664e9SAndroid Build Coastguard Worker// ====  java proto host library  ==============================
118*d57664e9SAndroid Build Coastguard Workerjava_library_host {
119*d57664e9SAndroid Build Coastguard Worker    name: "platformprotos",
120*d57664e9SAndroid Build Coastguard Worker    srcs: [
121*d57664e9SAndroid Build Coastguard Worker        ":ipconnectivity-proto-src",
122*d57664e9SAndroid Build Coastguard Worker        ":libstats_internal_protos",
123*d57664e9SAndroid Build Coastguard Worker        ":statsd_internal_protos",
124*d57664e9SAndroid Build Coastguard Worker        "cmds/am/proto/instrumentation_data.proto",
125*d57664e9SAndroid Build Coastguard Worker        "cmds/statsd/src/**/*.proto",
126*d57664e9SAndroid Build Coastguard Worker        "core/proto/**/*.proto",
127*d57664e9SAndroid Build Coastguard Worker        "libs/incident/proto/**/*.proto",
128*d57664e9SAndroid Build Coastguard Worker    ],
129*d57664e9SAndroid Build Coastguard Worker    proto: {
130*d57664e9SAndroid Build Coastguard Worker        include_dirs: [
131*d57664e9SAndroid Build Coastguard Worker            "external/protobuf/src",
132*d57664e9SAndroid Build Coastguard Worker            "frameworks/proto_logging/stats",
133*d57664e9SAndroid Build Coastguard Worker        ],
134*d57664e9SAndroid Build Coastguard Worker        type: "full",
135*d57664e9SAndroid Build Coastguard Worker    },
136*d57664e9SAndroid Build Coastguard Worker    // b/267831518: Pin tradefed and dependencies to Java 11.
137*d57664e9SAndroid Build Coastguard Worker    java_version: "11",
138*d57664e9SAndroid Build Coastguard Worker    // Protos have lots of MissingOverride and similar.
139*d57664e9SAndroid Build Coastguard Worker    errorprone: {
140*d57664e9SAndroid Build Coastguard Worker        enabled: false,
141*d57664e9SAndroid Build Coastguard Worker    },
142*d57664e9SAndroid Build Coastguard Worker}
143*d57664e9SAndroid Build Coastguard Worker
144*d57664e9SAndroid Build Coastguard Worker// ====  java proto device library (for test only)  ==============================
145*d57664e9SAndroid Build Coastguard Workerjava_library {
146*d57664e9SAndroid Build Coastguard Worker    name: "platformprotosnano",
147*d57664e9SAndroid Build Coastguard Worker    proto: {
148*d57664e9SAndroid Build Coastguard Worker        type: "nano",
149*d57664e9SAndroid Build Coastguard Worker        output_params: ["store_unknown_fields=true"],
150*d57664e9SAndroid Build Coastguard Worker        include_dirs: ["external/protobuf/src"],
151*d57664e9SAndroid Build Coastguard Worker    },
152*d57664e9SAndroid Build Coastguard Worker    exclude_srcs: [
153*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/privacy.proto",
154*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/section.proto",
155*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/typedef.proto",
156*d57664e9SAndroid Build Coastguard Worker    ],
157*d57664e9SAndroid Build Coastguard Worker    sdk_version: "9",
158*d57664e9SAndroid Build Coastguard Worker    srcs: [
159*d57664e9SAndroid Build Coastguard Worker        ":ipconnectivity-proto-src",
160*d57664e9SAndroid Build Coastguard Worker        ":libstats_atom_enum_protos",
161*d57664e9SAndroid Build Coastguard Worker        ":libstats_atom_message_protos",
162*d57664e9SAndroid Build Coastguard Worker        "core/proto/**/*.proto",
163*d57664e9SAndroid Build Coastguard Worker        "libs/incident/proto/android/os/**/*.proto",
164*d57664e9SAndroid Build Coastguard Worker    ],
165*d57664e9SAndroid Build Coastguard Worker    // Protos have lots of MissingOverride and similar.
166*d57664e9SAndroid Build Coastguard Worker    errorprone: {
167*d57664e9SAndroid Build Coastguard Worker        enabled: false,
168*d57664e9SAndroid Build Coastguard Worker    },
169*d57664e9SAndroid Build Coastguard Worker}
170*d57664e9SAndroid Build Coastguard Worker
171*d57664e9SAndroid Build Coastguard Worker// ====  java proto device library (for test only)  ==============================
172*d57664e9SAndroid Build Coastguard Workerjava_library {
173*d57664e9SAndroid Build Coastguard Worker    name: "platformprotoslite",
174*d57664e9SAndroid Build Coastguard Worker    proto: {
175*d57664e9SAndroid Build Coastguard Worker        type: "lite",
176*d57664e9SAndroid Build Coastguard Worker        include_dirs: ["external/protobuf/src"],
177*d57664e9SAndroid Build Coastguard Worker    },
178*d57664e9SAndroid Build Coastguard Worker
179*d57664e9SAndroid Build Coastguard Worker    srcs: [
180*d57664e9SAndroid Build Coastguard Worker        ":ipconnectivity-proto-src",
181*d57664e9SAndroid Build Coastguard Worker        ":libstats_atom_enum_protos",
182*d57664e9SAndroid Build Coastguard Worker        ":libstats_atom_message_protos",
183*d57664e9SAndroid Build Coastguard Worker        "core/proto/**/*.proto",
184*d57664e9SAndroid Build Coastguard Worker        "libs/incident/proto/android/os/**/*.proto",
185*d57664e9SAndroid Build Coastguard Worker    ],
186*d57664e9SAndroid Build Coastguard Worker    exclude_srcs: [
187*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/privacy.proto",
188*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/section.proto",
189*d57664e9SAndroid Build Coastguard Worker        "core/proto/android/typedef.proto",
190*d57664e9SAndroid Build Coastguard Worker    ],
191*d57664e9SAndroid Build Coastguard Worker    sdk_version: "core_current",
192*d57664e9SAndroid Build Coastguard Worker    // Protos have lots of MissingOverride and similar.
193*d57664e9SAndroid Build Coastguard Worker    errorprone: {
194*d57664e9SAndroid Build Coastguard Worker        enabled: false,
195*d57664e9SAndroid Build Coastguard Worker    },
196*d57664e9SAndroid Build Coastguard Worker}
197*d57664e9SAndroid Build Coastguard Worker
198*d57664e9SAndroid Build Coastguard Worker// ====  c++ proto device library  ==============================
199*d57664e9SAndroid Build Coastguard Workercc_defaults {
200*d57664e9SAndroid Build Coastguard Worker    name: "libplatformprotos-defaults",
201*d57664e9SAndroid Build Coastguard Worker
202*d57664e9SAndroid Build Coastguard Worker    proto: {
203*d57664e9SAndroid Build Coastguard Worker        export_proto_headers: true,
204*d57664e9SAndroid Build Coastguard Worker        include_dirs: [
205*d57664e9SAndroid Build Coastguard Worker            "external/protobuf/src",
206*d57664e9SAndroid Build Coastguard Worker        ],
207*d57664e9SAndroid Build Coastguard Worker    },
208*d57664e9SAndroid Build Coastguard Worker
209*d57664e9SAndroid Build Coastguard Worker    cflags: [
210*d57664e9SAndroid Build Coastguard Worker        "-Wall",
211*d57664e9SAndroid Build Coastguard Worker        "-Werror",
212*d57664e9SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
213*d57664e9SAndroid Build Coastguard Worker    ],
214*d57664e9SAndroid Build Coastguard Worker
215*d57664e9SAndroid Build Coastguard Worker    srcs: [
216*d57664e9SAndroid Build Coastguard Worker        ":ipconnectivity-proto-src",
217*d57664e9SAndroid Build Coastguard Worker        ":libstats_atom_enum_protos",
218*d57664e9SAndroid Build Coastguard Worker        ":libstats_atom_message_protos",
219*d57664e9SAndroid Build Coastguard Worker        "core/proto/**/*.proto",
220*d57664e9SAndroid Build Coastguard Worker    ],
221*d57664e9SAndroid Build Coastguard Worker}
222*d57664e9SAndroid Build Coastguard Worker
223*d57664e9SAndroid Build Coastguard Workercc_library {
224*d57664e9SAndroid Build Coastguard Worker    name: "libplatformprotos",
225*d57664e9SAndroid Build Coastguard Worker    defaults: ["libplatformprotos-defaults"],
226*d57664e9SAndroid Build Coastguard Worker    host_supported: true,
227*d57664e9SAndroid Build Coastguard Worker
228*d57664e9SAndroid Build Coastguard Worker    target: {
229*d57664e9SAndroid Build Coastguard Worker        host: {
230*d57664e9SAndroid Build Coastguard Worker            proto: {
231*d57664e9SAndroid Build Coastguard Worker                type: "full",
232*d57664e9SAndroid Build Coastguard Worker            },
233*d57664e9SAndroid Build Coastguard Worker        },
234*d57664e9SAndroid Build Coastguard Worker        android: {
235*d57664e9SAndroid Build Coastguard Worker            proto: {
236*d57664e9SAndroid Build Coastguard Worker                type: "lite",
237*d57664e9SAndroid Build Coastguard Worker            },
238*d57664e9SAndroid Build Coastguard Worker            shared_libs: [
239*d57664e9SAndroid Build Coastguard Worker                "libprotobuf-cpp-lite",
240*d57664e9SAndroid Build Coastguard Worker            ],
241*d57664e9SAndroid Build Coastguard Worker            shared: {
242*d57664e9SAndroid Build Coastguard Worker                enabled: false,
243*d57664e9SAndroid Build Coastguard Worker            },
244*d57664e9SAndroid Build Coastguard Worker        },
245*d57664e9SAndroid Build Coastguard Worker    },
246*d57664e9SAndroid Build Coastguard Worker}
247*d57664e9SAndroid Build Coastguard Worker
248*d57664e9SAndroid Build Coastguard Worker// This library is meant for vendor code that needs to output protobuf. It links
249*d57664e9SAndroid Build Coastguard Worker// against the static version of libprotobuf-cpp-lite, for which we can not guarantee
250*d57664e9SAndroid Build Coastguard Worker// binary compatibility.
251*d57664e9SAndroid Build Coastguard Workercc_library {
252*d57664e9SAndroid Build Coastguard Worker    name: "libplatformprotos-static",
253*d57664e9SAndroid Build Coastguard Worker    defaults: ["libplatformprotos-defaults"],
254*d57664e9SAndroid Build Coastguard Worker    host_supported: false,
255*d57664e9SAndroid Build Coastguard Worker
256*d57664e9SAndroid Build Coastguard Worker    // This is okay because this library is only built as a static library.  The C++
257*d57664e9SAndroid Build Coastguard Worker    // API is not guaranteed. The proto API is guaranteed to be stable via Metrics Council,
258*d57664e9SAndroid Build Coastguard Worker    // but is not authorized to be used outside of debugging.
259*d57664e9SAndroid Build Coastguard Worker    vendor_available: true,
260*d57664e9SAndroid Build Coastguard Worker
261*d57664e9SAndroid Build Coastguard Worker    target: {
262*d57664e9SAndroid Build Coastguard Worker        android: {
263*d57664e9SAndroid Build Coastguard Worker            proto: {
264*d57664e9SAndroid Build Coastguard Worker                type: "lite",
265*d57664e9SAndroid Build Coastguard Worker            },
266*d57664e9SAndroid Build Coastguard Worker            static_libs: [
267*d57664e9SAndroid Build Coastguard Worker                "libprotobuf-cpp-lite",
268*d57664e9SAndroid Build Coastguard Worker            ],
269*d57664e9SAndroid Build Coastguard Worker            shared: {
270*d57664e9SAndroid Build Coastguard Worker                enabled: false,
271*d57664e9SAndroid Build Coastguard Worker            },
272*d57664e9SAndroid Build Coastguard Worker        },
273*d57664e9SAndroid Build Coastguard Worker    },
274*d57664e9SAndroid Build Coastguard Worker}
275*d57664e9SAndroid Build Coastguard Worker
276*d57664e9SAndroid Build Coastguard Worker// This is the full proto version of libplatformprotos. It may only
277*d57664e9SAndroid Build Coastguard Worker// be used by test code that is not shipped on the device.
278*d57664e9SAndroid Build Coastguard Workercc_library {
279*d57664e9SAndroid Build Coastguard Worker    name: "libplatformprotos-test",
280*d57664e9SAndroid Build Coastguard Worker    defaults: ["libplatformprotos-defaults"],
281*d57664e9SAndroid Build Coastguard Worker    host_supported: false,
282*d57664e9SAndroid Build Coastguard Worker
283*d57664e9SAndroid Build Coastguard Worker    target: {
284*d57664e9SAndroid Build Coastguard Worker        android: {
285*d57664e9SAndroid Build Coastguard Worker            proto: {
286*d57664e9SAndroid Build Coastguard Worker                type: "full",
287*d57664e9SAndroid Build Coastguard Worker            },
288*d57664e9SAndroid Build Coastguard Worker            shared: {
289*d57664e9SAndroid Build Coastguard Worker                enabled: false,
290*d57664e9SAndroid Build Coastguard Worker            },
291*d57664e9SAndroid Build Coastguard Worker        },
292*d57664e9SAndroid Build Coastguard Worker    },
293*d57664e9SAndroid Build Coastguard Worker}
294