Move framework proto build rules to separate file
The proto build rules are quite large and makes the top-level Android.bp file difficult to navigate. Move them to a separate file. Bug: 185128417 Test: m Change-Id: I5719ba0fa8e03dcfca0cc32dc30db3f87ea4e3cd
This commit is contained in:
parent
9f9f90b260
commit
31fb58bd22
235
Android.bp
235
Android.bp
@ -428,66 +428,6 @@ platform_compat_config {
|
||||
src: ":framework-minus-apex",
|
||||
}
|
||||
|
||||
gensrcs {
|
||||
name: "framework-javastream-protos",
|
||||
depfile: true,
|
||||
|
||||
tools: [
|
||||
"aprotoc",
|
||||
"protoc-gen-javastream",
|
||||
"soong_zip",
|
||||
],
|
||||
|
||||
cmd: "mkdir -p $(genDir)/$(in) " +
|
||||
"&& $(location aprotoc) " +
|
||||
" --plugin=$(location protoc-gen-javastream) " +
|
||||
" --dependency_out=$(depfile) " +
|
||||
" --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",
|
||||
":libtombstone_proto-src",
|
||||
"core/proto/**/*.proto",
|
||||
"libs/incident/**/*.proto",
|
||||
":service-permission-protos",
|
||||
],
|
||||
output_extension: "srcjar",
|
||||
}
|
||||
|
||||
gensrcs {
|
||||
name: "framework-cppstream-protos",
|
||||
depfile: true,
|
||||
|
||||
tools: [
|
||||
"aprotoc",
|
||||
"protoc-gen-cppstream",
|
||||
],
|
||||
|
||||
cmd: "mkdir -p $(genDir) " +
|
||||
"&& $(location aprotoc) " +
|
||||
" --plugin=$(location protoc-gen-cppstream) " +
|
||||
" --dependency_out=$(depfile) " +
|
||||
" --cppstream_out=$(genDir) " +
|
||||
" -Iexternal/protobuf/src " +
|
||||
" -I . " +
|
||||
" $(in)",
|
||||
|
||||
srcs: [
|
||||
":ipconnectivity-proto-src",
|
||||
":libstats_atom_enum_protos",
|
||||
"core/proto/**/*.proto",
|
||||
"libs/incident/**/*.proto",
|
||||
":service-permission-protos",
|
||||
],
|
||||
|
||||
output_extension: "proto.h",
|
||||
}
|
||||
|
||||
filegroup {
|
||||
name: "framework-annotations",
|
||||
srcs: [
|
||||
@ -577,180 +517,6 @@ java_library {
|
||||
dxflags: ["--core-library"],
|
||||
}
|
||||
|
||||
// ==== java proto host library ==============================
|
||||
java_library_host {
|
||||
name: "platformprotos",
|
||||
srcs: [
|
||||
":ipconnectivity-proto-src",
|
||||
":libstats_atom_enum_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-protos",
|
||||
],
|
||||
proto: {
|
||||
include_dirs: [
|
||||
"external/protobuf/src",
|
||||
"frameworks/proto_logging/stats",
|
||||
],
|
||||
type: "full",
|
||||
},
|
||||
// Protos have lots of MissingOverride and similar.
|
||||
errorprone: {
|
||||
javacflags: ["-XepDisableAllChecks"],
|
||||
},
|
||||
}
|
||||
|
||||
// ==== 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",
|
||||
"core/proto/**/*.proto",
|
||||
"libs/incident/proto/android/os/**/*.proto",
|
||||
":service-permission-protos",
|
||||
],
|
||||
}
|
||||
|
||||
// ==== 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",
|
||||
"core/proto/**/*.proto",
|
||||
"libs/incident/proto/android/os/**/*.proto",
|
||||
":service-permission-protos",
|
||||
],
|
||||
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: {
|
||||
javacflags: ["-XepDisableAllChecks"],
|
||||
},
|
||||
}
|
||||
|
||||
// ==== 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",
|
||||
"core/proto/**/*.proto",
|
||||
":service-permission-protos",
|
||||
],
|
||||
}
|
||||
|
||||
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,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// utility classes statically linked into framework-wifi and dynamically linked
|
||||
// into wifi-service
|
||||
java_library {
|
||||
@ -811,4 +577,5 @@ filegroup {
|
||||
build = [
|
||||
"StubLibraries.bp",
|
||||
"ApiDocs.bp",
|
||||
"ProtoLibraries.bp",
|
||||
]
|
||||
|
1
OWNERS
1
OWNERS
@ -30,3 +30,4 @@ per-file Android.bp = file:platform/build/soong:/OWNERS
|
||||
per-file Android.mk = file:platform/build/soong:/OWNERS
|
||||
per-file ApiDocs.bp = file:platform/build/soong:/OWNERS
|
||||
per-file StubLibraries.bp = file:platform/build/soong:/OWNERS
|
||||
per-file ProtoLibraries.bp = file:platform/build/soong:/OWNERS
|
||||
|
247
ProtoLibraries.bp
Normal file
247
ProtoLibraries.bp
Normal file
@ -0,0 +1,247 @@
|
||||
// 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",
|
||||
depfile: true,
|
||||
|
||||
tools: [
|
||||
"aprotoc",
|
||||
"protoc-gen-javastream",
|
||||
"soong_zip",
|
||||
],
|
||||
|
||||
cmd: "mkdir -p $(genDir)/$(in) " +
|
||||
"&& $(location aprotoc) " +
|
||||
" --plugin=$(location protoc-gen-javastream) " +
|
||||
" --dependency_out=$(depfile) " +
|
||||
" --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",
|
||||
":libtombstone_proto-src",
|
||||
"core/proto/**/*.proto",
|
||||
"libs/incident/**/*.proto",
|
||||
":service-permission-protos",
|
||||
],
|
||||
output_extension: "srcjar",
|
||||
}
|
||||
|
||||
gensrcs {
|
||||
name: "framework-cppstream-protos",
|
||||
depfile: true,
|
||||
|
||||
tools: [
|
||||
"aprotoc",
|
||||
"protoc-gen-cppstream",
|
||||
],
|
||||
|
||||
cmd: "mkdir -p $(genDir) " +
|
||||
"&& $(location aprotoc) " +
|
||||
" --plugin=$(location protoc-gen-cppstream) " +
|
||||
" --dependency_out=$(depfile) " +
|
||||
" --cppstream_out=$(genDir) " +
|
||||
" -Iexternal/protobuf/src " +
|
||||
" -I . " +
|
||||
" $(in)",
|
||||
|
||||
srcs: [
|
||||
":ipconnectivity-proto-src",
|
||||
":libstats_atom_enum_protos",
|
||||
"core/proto/**/*.proto",
|
||||
"libs/incident/**/*.proto",
|
||||
":service-permission-protos",
|
||||
],
|
||||
|
||||
output_extension: "proto.h",
|
||||
}
|
||||
|
||||
// ==== java proto host library ==============================
|
||||
java_library_host {
|
||||
name: "platformprotos",
|
||||
srcs: [
|
||||
":ipconnectivity-proto-src",
|
||||
":libstats_atom_enum_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-protos",
|
||||
],
|
||||
proto: {
|
||||
include_dirs: [
|
||||
"external/protobuf/src",
|
||||
"frameworks/proto_logging/stats",
|
||||
],
|
||||
type: "full",
|
||||
},
|
||||
// Protos have lots of MissingOverride and similar.
|
||||
errorprone: {
|
||||
javacflags: ["-XepDisableAllChecks"],
|
||||
},
|
||||
}
|
||||
|
||||
// ==== 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",
|
||||
"core/proto/**/*.proto",
|
||||
"libs/incident/proto/android/os/**/*.proto",
|
||||
":service-permission-protos",
|
||||
],
|
||||
}
|
||||
|
||||
// ==== 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",
|
||||
"core/proto/**/*.proto",
|
||||
"libs/incident/proto/android/os/**/*.proto",
|
||||
":service-permission-protos",
|
||||
],
|
||||
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: {
|
||||
javacflags: ["-XepDisableAllChecks"],
|
||||
},
|
||||
}
|
||||
|
||||
// ==== 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",
|
||||
"core/proto/**/*.proto",
|
||||
":service-permission-protos",
|
||||
],
|
||||
}
|
||||
|
||||
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,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user