| // Copyright (C) 2021 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. | |
| gensrcs { | |
| name: "framework-javastream-protos", | |
| tools: [ | |
| "aprotoc", | |
| "protoc-gen-javastream", | |
| "soong_zip", | |
| ], | |
| cmd: "mkdir -p $(genDir)/$(in) " + | |
| "&& $(location aprotoc) " + | |
| " --plugin=$(location protoc-gen-javastream) " + | |
| " --javastream_out=$(genDir)/$(in) " + | |
| " -Iexternal/protobuf/src " + | |
| " -I . " + | |
| " $(in) " + | |
| "&& $(location soong_zip) -jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)", | |
| srcs: [ | |
| ":aconfigd_protos", | |
| ":ipconnectivity-proto-src", | |
| ":libstats_atom_enum_protos", | |
| ":libstats_atom_message_protos", | |
| ":libtombstone_proto-src", | |
| "core/proto/**/*.proto", | |
| "libs/incident/**/*.proto", | |
| ], | |
| data: [ | |
| ":libprotobuf-internal-protos", | |
| ], | |
| output_extension: "srcjar", | |
| } | |
| gensrcs { | |
| name: "framework-cppstream-protos", | |
| tools: [ | |
| "aprotoc", | |
| "protoc-gen-cppstream", | |
| ], | |
| cmd: "mkdir -p $(genDir) " + | |
| "&& $(location aprotoc) " + | |
| " --plugin=$(location protoc-gen-cppstream) " + | |
| " --cppstream_out=$(genDir) " + | |
| " -Iexternal/protobuf/src " + | |
| " -I . " + | |
| " $(in)", | |
| srcs: [ | |
| ":ipconnectivity-proto-src", | |
| ":libstats_atom_enum_protos", | |
| ":libstats_atom_message_protos", | |
| "core/proto/**/*.proto", | |
| "libs/incident/**/*.proto", | |
| ], | |
| data: [ | |
| ":libprotobuf-internal-protos", | |
| ], | |
| output_extension: "proto.h", | |
| } | |
| // ==== nfc framework java library ============================== | |
| gensrcs { | |
| name: "framework-nfc-javastream-protos", | |
| tools: [ | |
| "aprotoc", | |
| "protoc-gen-javastream", | |
| "soong_zip", | |
| ], | |
| cmd: "mkdir -p $(genDir)/$(in) " + | |
| "&& $(location aprotoc) " + | |
| " --plugin=$(location protoc-gen-javastream) " + | |
| " --javastream_out=$(genDir)/$(in) " + | |
| " -Iexternal/protobuf/src " + | |
| " -I . " + | |
| " $(in) " + | |
| "&& $(location soong_zip) -jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)", | |
| srcs: [ | |
| "core/proto/android/app/pendingintent.proto", | |
| "core/proto/android/content/component_name.proto", | |
| "core/proto/android/content/intent.proto", | |
| "core/proto/android/nfc/*.proto", | |
| "core/proto/android/os/patternmatcher.proto", | |
| "core/proto/android/os/persistablebundle.proto", | |
| "core/proto/android/privacy.proto", | |
| ], | |
| data: [ | |
| ":libprotobuf-internal-protos", | |
| ], | |
| output_extension: "srcjar", | |
| } | |
| // ==== java proto host library ============================== | |
| java_library_host { | |
| name: "platformprotos", | |
| srcs: [ | |
| ":ipconnectivity-proto-src", | |
| ":libstats_internal_protos", | |
| ":statsd_internal_protos", | |
| "cmds/am/proto/instrumentation_data.proto", | |
| "cmds/statsd/src/**/*.proto", | |
| "core/proto/**/*.proto", | |
| "libs/incident/proto/**/*.proto", | |
| ], | |
| proto: { | |
| include_dirs: [ | |
| "external/protobuf/src", | |
| "frameworks/proto_logging/stats", | |
| ], | |
| type: "full", | |
| }, | |
| // b/267831518: Pin tradefed and dependencies to Java 11. | |
| java_version: "11", | |
| // Protos have lots of MissingOverride and similar. | |
| errorprone: { | |
| enabled: false, | |
| }, | |
| } | |
| // ==== java proto device library (for test only) ============================== | |
| java_library { | |
| name: "platformprotosnano", | |
| proto: { | |
| type: "nano", | |
| output_params: ["store_unknown_fields=true"], | |
| include_dirs: ["external/protobuf/src"], | |
| }, | |
| exclude_srcs: [ | |
| "core/proto/android/privacy.proto", | |
| "core/proto/android/section.proto", | |
| "core/proto/android/typedef.proto", | |
| ], | |
| sdk_version: "9", | |
| srcs: [ | |
| ":ipconnectivity-proto-src", | |
| ":libstats_atom_enum_protos", | |
| ":libstats_atom_message_protos", | |
| "core/proto/**/*.proto", | |
| "libs/incident/proto/android/os/**/*.proto", | |
| ], | |
| // Protos have lots of MissingOverride and similar. | |
| errorprone: { | |
| enabled: false, | |
| }, | |
| } | |
| // ==== java proto device library (for test only) ============================== | |
| java_library { | |
| name: "platformprotoslite", | |
| proto: { | |
| type: "lite", | |
| include_dirs: ["external/protobuf/src"], | |
| }, | |
| srcs: [ | |
| ":ipconnectivity-proto-src", | |
| ":libstats_atom_enum_protos", | |
| ":libstats_atom_message_protos", | |
| "core/proto/**/*.proto", | |
| "libs/incident/proto/android/os/**/*.proto", | |
| ], | |
| exclude_srcs: [ | |
| "core/proto/android/privacy.proto", | |
| "core/proto/android/section.proto", | |
| "core/proto/android/typedef.proto", | |
| ], | |
| sdk_version: "core_current", | |
| // Protos have lots of MissingOverride and similar. | |
| errorprone: { | |
| enabled: false, | |
| }, | |
| } | |
| // ==== c++ proto device library ============================== | |
| cc_defaults { | |
| name: "libplatformprotos-defaults", | |
| proto: { | |
| export_proto_headers: true, | |
| include_dirs: [ | |
| "external/protobuf/src", | |
| ], | |
| }, | |
| cflags: [ | |
| "-Wall", | |
| "-Werror", | |
| "-Wno-unused-parameter", | |
| ], | |
| srcs: [ | |
| ":ipconnectivity-proto-src", | |
| ":libstats_atom_enum_protos", | |
| ":libstats_atom_message_protos", | |
| "core/proto/**/*.proto", | |
| ], | |
| } | |
| cc_library { | |
| name: "libplatformprotos", | |
| defaults: ["libplatformprotos-defaults"], | |
| host_supported: true, | |
| target: { | |
| host: { | |
| proto: { | |
| type: "full", | |
| }, | |
| }, | |
| android: { | |
| proto: { | |
| type: "lite", | |
| }, | |
| shared_libs: [ | |
| "libprotobuf-cpp-lite", | |
| ], | |
| shared: { | |
| enabled: false, | |
| }, | |
| }, | |
| }, | |
| } | |
| // This library is meant for vendor code that needs to output protobuf. It links | |
| // against the static version of libprotobuf-cpp-lite, for which we can not guarantee | |
| // binary compatibility. | |
| cc_library { | |
| name: "libplatformprotos-static", | |
| defaults: ["libplatformprotos-defaults"], | |
| host_supported: false, | |
| // This is okay because this library is only built as a static library. The C++ | |
| // API is not guaranteed. The proto API is guaranteed to be stable via Metrics Council, | |
| // but is not authorized to be used outside of debugging. | |
| vendor_available: true, | |
| target: { | |
| android: { | |
| proto: { | |
| type: "lite", | |
| }, | |
| static_libs: [ | |
| "libprotobuf-cpp-lite", | |
| ], | |
| shared: { | |
| enabled: false, | |
| }, | |
| }, | |
| }, | |
| } | |
| // This is the full proto version of libplatformprotos. It may only | |
| // be used by test code that is not shipped on the device. | |
| cc_library { | |
| name: "libplatformprotos-test", | |
| defaults: ["libplatformprotos-defaults"], | |
| host_supported: false, | |
| target: { | |
| android: { | |
| proto: { | |
| type: "full", | |
| }, | |
| shared: { | |
| enabled: false, | |
| }, | |
| }, | |
| }, | |
| } | |
| // ==== rust proto library ============================== | |
| rust_protobuf { | |
| name: "libframework_privacy_protos_rs", | |
| protos: [ | |
| "core/proto/android/privacy.proto", | |
| ], | |
| crate_name: "framework_privacy_protos_rs", | |
| source_stem: "framework_privacy_protos_rs_source", | |
| header_libs: ["libprotobuf-cpp-lite"], | |
| proto_flags: [ | |
| "-I external/protobuf/src", | |
| ], | |
| host_supported: true, | |
| } | |
| rust_protobuf { | |
| name: "libframework_component_name_protos_rs", | |
| protos: [ | |
| "core/proto/android/content/component_name.proto", | |
| ], | |
| rustlibs: [ | |
| "libframework_privacy_protos_rs", | |
| ], | |
| crate_name: "framework_component_name_protos_rs", | |
| source_stem: "framework_component_name_protos_rs_source", | |
| proto_flags: [ | |
| "-I .", | |
| "-I external/protobuf/src", | |
| ], | |
| host_supported: true, | |
| } | |
| rust_protobuf { | |
| name: "libframework_usb_protos_rs", | |
| protos: [ | |
| "core/proto/android/service/usb.proto", | |
| ], | |
| rustlibs: [ | |
| "libframework_service_enums_protos_rs", | |
| "libframework_privacy_protos_rs", | |
| "libframework_component_name_protos_rs", | |
| ], | |
| crate_name: "framework_usb_protos_rs", | |
| source_stem: "framework_usb_protos_rs_source", | |
| proto_flags: [ | |
| "-I .", | |
| "-I external/protobuf/src", | |
| ], | |
| host_supported: true, | |
| } |