blob: c40a4c81903fc928a83511f6c48c6578b3e7f3cd [file] [log] [blame] [edit]
// These targets are appended to the autogenerated Android.bp by tools/gen_android_bp.
java_library_host {
name: "perfetto_config-full",
proto: {
type: "full",
},
srcs: [
"protos/perfetto/config/perfetto_config.proto",
],
}
java_library {
name: "perfetto_config-lite",
proto: {
type: "lite",
},
srcs: [
"protos/perfetto/config/perfetto_config.proto",
],
}
java_library_host {
name: "trace_summary-full",
proto: {
type: "full",
canonical_path_from_root: false,
},
static_libs: [
"libprotobuf-java-full",
],
srcs: [
":perfetto_trace_summary_filegroup_proto",
],
// b/267831518: Pin tradefed and dependencies to Java 11.
java_version: "11",
}
java_library_host {
name: "perfetto_trace-full",
proto: {
type: "full",
},
srcs: [
"protos/perfetto/trace/perfetto_trace.proto",
],
// b/267831518: Pin tradefed and dependencies to Java 11.
java_version: "11",
}
java_library_host {
name: "perfetto_metrics-full",
proto: {
type: "full",
},
srcs: [
"protos/perfetto/metrics/perfetto_merged_metrics.proto",
],
// b/267831518: Pin tradefed and dependencies to Java 11.
java_version: "11",
}
// This sample target shows how to use the perfetto client API from within the
// Android tree.
cc_binary {
name: "libperfetto_client_example",
srcs: [
"test/client_api_example.cc",
],
static_libs: [
"libperfetto_client_experimental",
"perfetto_trace_protos",
],
shared_libs: [
"libprotobuf-cpp-lite",
"liblog",
],
cflags: [
"-DGOOGLE_PROTOBUF_NO_RTTI",
"-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
],
defaults: [
"perfetto_defaults",
],
}
cc_library_static {
name: "libstatslog_perfetto",
generated_sources: ["statslog_perfetto.cpp"],
generated_headers: ["statslog_perfetto.h"],
cflags: [
"-Wall",
"-Werror",
],
export_generated_headers: ["statslog_perfetto.h"],
shared_libs: [
"libcutils",
"liblog",
"libstatssocket",
"libutils",
],
}
genrule {
name: "statslog_perfetto.h",
tools: ["stats-log-api-gen"],
cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_perfetto.h --module perfetto --namespace perfetto,android_internal",
out: [
"statslog_perfetto.h",
],
}
genrule {
name: "statslog_perfetto.cpp",
tools: ["stats-log-api-gen"],
cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_perfetto.cpp --module perfetto --namespace perfetto,android_internal --importHeader statslog_perfetto.h",
out: [
"statslog_perfetto.cpp",
],
}
package {
default_applicable_licenses: ["external_perfetto_license"],
}
python_library {
name: "perfetto-trace-processor-python",
srcs: [
":perfetto-trace-processor-python-srcs",
":perfetto-trace-uri-resolver-python-srcs",
],
data: [
":perfetto-trace-processor-python-data",
],
libs: [
"libprotobuf-python",
],
host_supported: true,
}
filegroup {
name: "perfetto-trace-uri-resolver-python-srcs",
srcs: ["python/perfetto/trace_uri_resolver/*.py"],
path: "python",
}
filegroup {
name: "perfetto-trace-processor-python-srcs",
srcs: [
"python/perfetto/common/*.py",
"python/perfetto/trace_processor/*.py",
],
path: "python",
}
filegroup {
name: "perfetto-trace-processor-python-data",
srcs: ["python/perfetto/trace_processor/*.descriptor*"],
path: "python",
}
python_library {
name: "perfetto-trace-proto-python",
srcs: [
":perfetto-trace-proto-python-srcs",
],
libs: [
"libprotobuf-python",
],
host_supported: true,
}
filegroup {
name: "perfetto-trace-proto-python-srcs",
srcs: [
"python/perfetto/protos/perfetto/trace/*.py",
],
path: "python",
}
// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
name: "external_perfetto_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
"SPDX-license-identifier-BSD",
"SPDX-license-identifier-CC-BY",
],
license_text: [
"LICENSE",
],
}
gensrcs {
name: "perfetto_trace_javastream_protos",
srcs: [
":perfetto_javastream_filegroup_proto",
],
tools: [
"aprotoc",
"protoc-gen-javastream",
"soong_zip",
],
cmd: "mkdir -p $(genDir)/$(in) " +
"&& $(location aprotoc) " +
"--plugin=$(location protoc-gen-javastream) " +
"--javastream_opt=include_filter:perfetto.protos.TracePacket,perfetto.protos.ShellTransition,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogMessage,perfetto.protos.ProtoLogViewerConfig,perfetto.protos.ShellHandlerMapping,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogGroup,perfetto.protos.ProtoLogConfig,perfetto.protos.DataSourceConfig,perfetto.protos.InternedString,perfetto.protos.InternedData,perfetto.protos.ProtoLogLevel,perfetto.protos.TestEvent,perfetto.protos.TestEvent.TestPayload,perfetto.protos.TestConfig,perfetto.protos.TestConfig.DummyFields,perfetto.protos.WinscopeExtensionsImpl,perfetto.protos.ViewCapture,perfetto.protos.AppWakelocksConfig,perfetto.protos.AppWakelockInfo,perfetto.protos.AppWakelockBundle," +
// IME protos
"perfetto.protos.ClientSideProto,perfetto.protos.DisplayCutoutProto,perfetto.protos.EditorInfoProto,perfetto.protos.ImeFocusControllerProto,perfetto.protos.InputConnectionCallProto,perfetto.protos.InputConnectionProto,perfetto.protos.InputMethodClientsTraceProto,perfetto.protos.InputMethodManagerProto,perfetto.protos.InputMethodManagerServiceProto,perfetto.protos.InputMethodManagerServiceTraceProto,perfetto.protos.InputMethodServiceProto,perfetto.protos.InputMethodServiceTraceProto,perfetto.protos.InsetsAnimationControlImplProto,perfetto.protos.InsetsControllerProto,perfetto.protos.InsetsProto,perfetto.protos.InsetsSourceConsumerProto,perfetto.protos.InsetsSourceControlProto,perfetto.protos.InsetsSourceProto,perfetto.protos.InsetsStateProto,perfetto.protos.RectProto,perfetto.protos.SoftInputWindowProto,perfetto.protos.SurfaceControlProto,perfetto.protos.ViewRootImplProto,perfetto.protos.WindowLayoutParamsProto," +
// WindowManager protos
"perfetto.protos.ActivityInfoProto,perfetto.protos.ActivityRecordProto,perfetto.protos.AlphaAnimationSpecProto,perfetto.protos.AnimationAdapterProto,perfetto.protos.AnimationSpecProto,perfetto.protos.AppTransitionProto,perfetto.protos.BackNavigationProto,perfetto.protos.ConfigurationContainerProto,perfetto.protos.ConfigurationProto,perfetto.protos.DeviceConfigurationProto,perfetto.protos.DisplayAreaProto,perfetto.protos.DisplayContentProto,perfetto.protos.DisplayInfoProto,perfetto.protos.DisplayRotationProto,perfetto.protos.GlobalConfigurationProto,perfetto.protos.IdentifierProto,perfetto.protos.ImeInsetsSourceProviderProto,perfetto.protos.InsetsSourceProviderProto,perfetto.protos.KeyguardControllerProto,perfetto.protos.KeyguardPerDisplayProto,perfetto.protos.KeyguardServiceDelegateProto,perfetto.protos.LocalAnimationAdapterProto,perfetto.protos.LocaleProto,perfetto.protos.MoveAnimationSpecProto,perfetto.protos.PointProto,perfetto.protos.RemoteAnimationTargetProto,perfetto.protos.RemoteInsetsControlTargetProto,perfetto.protos.ResourcesConfigurationProto,perfetto.protos.RootWindowContainerProto,perfetto.protos.SurfaceAnimatorProto,perfetto.protos.TaskFragmentProto,perfetto.protos.TaskProto,perfetto.protos.WindowAnimationSpecProto,perfetto.protos.WindowConfigurationProto,perfetto.protos.WindowContainerChildProto,perfetto.protos.WindowContainerProto,perfetto.protos.WindowFramesProto,perfetto.protos.WindowManagerConfig,perfetto.protos.WindowManagerPolicyProto,perfetto.protos.WindowManagerServiceDumpProto,perfetto.protos.WindowManagerTraceFileProto,perfetto.protos.WindowOrientationListenerProto,perfetto.protos.WindowStateAnimatorProto,perfetto.protos.WindowStateProto,perfetto.protos.WindowSurfaceControllerProto,perfetto.protos.WindowTokenProto " +
"--javastream_out=$(genDir)/$(in) " +
"-Iexternal/protobuf/src " +
"-Iexternal/perfetto " +
"-I . $(in) " +
"&& $(location soong_zip) " +
"-jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)",
data: [
":libprotobuf-internal-protos",
],
output_extension: "srcjar",
}
java_library {
name: "perfetto_winscope-lite",
proto: {
type: "lite",
include_dirs: ["external/protobuf/src"],
canonical_path_from_root: false,
},
srcs: [
":libprotobuf-internal-descriptor-proto",
":perfetto_javastream_filegroup_proto",
],
static_libs: [
"libprotobuf-java-lite",
],
sdk_version: "current",
}
java_library {
name: "perfetto_config_java_protos_system_server_current",
srcs: [
":perfetto_config_filegroup_proto",
],
static_libs: [
"libprotobuf-java-lite",
],
proto: {
type: "lite",
canonical_path_from_root: false,
},
sdk_version: "system_server_current",
min_sdk_version: "35",
apex_available: [
"com.android.profiling",
],
}
prebuilt_etc {
name: "perfetto_persistent_cfg.pbtxt",
filename: "persistent_cfg.pbtxt",
sub_dir: "perfetto",
src: "persistent_cfg.pbtxt",
}
phony {
name: "perfetto-extras",
required: [
"libperfetto_android_internal",
"traced_perf",
"trigger_perfetto",
],
}
filegroup {
name: "heap_profile",
srcs: [
"tools/heap_profile",
],
}
aconfig_declarations {
name: "perfetto_flags-aconfig",
package: "perfetto.flags",
container: "system",
srcs: ["perfetto_flags.aconfig"],
}
cc_aconfig_library {
name: "perfetto_flags_c_lib",
aconfig_declarations: "perfetto_flags-aconfig",
vendor_available: true,
product_available: true,
apex_available: [
"//apex_available:anyapex",
"//apex_available:platform",
"com.android.profiling",
],
min_sdk_version: "30",
}