Files
frameworks_base/ProtoLibraries.bp
Aaron Huang 93239bf038 Remove framework-connectivity-proto from platform
In the generated javastream and cppsteam incident proto file,
it defines the start position for netstats at 3001 and it doesn't
actually use the NetworkStatsServiceDumpProto which is deinfed in
netstats.proto.
Thus, the framework-connectivity-proto can be removed from
framework-javastream-protos and framework-cppstream-protos.

The generated incident proto file defines netstats as the following,

    // optional .android.service.NetworkStatsServiceDumpProto netstats = 3001;
    public static final long NETSTATS = 0x0000010b00000bb9L;

Furthermore, on Android side, this is not strictly proto dependency,
and there's no one using this section, so it can be removed and mark
it as reserved.

Bug: 222625935
Test: FrameworksNetTests
      atest CtsIncidentHostTestCases:IncidentdTest
      adb shell dumpsys netstats
Change-Id: I3083a43a2f9c20768264ce2a531e0a0593f31697
2022-08-19 16:15:05 +08:00

262 lines
6.9 KiB
Plaintext

// 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",
],
tool_files: [
":libprotobuf-internal-protos",
],
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: [
":ipconnectivity-proto-src",
":libstats_atom_enum_protos",
":libstats_atom_message_protos",
":libtombstone_proto-src",
"core/proto/**/*.proto",
"libs/incident/**/*.proto",
":service-permission-streaming-proto-sources",
],
output_extension: "srcjar",
}
gensrcs {
name: "framework-cppstream-protos",
tools: [
"aprotoc",
"protoc-gen-cppstream",
],
tool_files: [
":libprotobuf-internal-protos",
],
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",
":service-permission-streaming-proto-sources",
],
output_extension: "proto.h",
}
// ==== java proto host library ==============================
java_library_host {
name: "platformprotos",
srcs: [
":ipconnectivity-proto-src",
":libstats_atom_enum_protos",
":libstats_atom_message_protos",
":libstats_internal_protos",
":statsd_internal_protos",
"cmds/am/proto/instrumentation_data.proto",
"cmds/statsd/src/**/*.proto",
"core/proto/**/*.proto",
"libs/incident/proto/**/*.proto",
":service-permission-streaming-proto-sources",
],
proto: {
include_dirs: [
"external/protobuf/src",
"frameworks/proto_logging/stats",
],
type: "full",
},
// 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",
":service-permission-streaming-proto-sources",
],
// 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",
":service-permission-streaming-proto-sources",
],
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",
":service-permission-streaming-proto-sources",
],
}
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,
},
},
},
}