blob: 44eeab4790bd068324618080610143ee820a4b89 [file] [log] [blame]
// 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: "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",
],
}
sh_binary {
name: "mm_events",
src: "tools/mm_events",
}
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/trace_processor/*.py"],
path: "python",
}
filegroup {
name: "perfetto-trace-processor-python-data",
srcs: ["python/perfetto/trace_processor/*.descriptor*"],
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_winscope_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.InputMethodClientsTraceProto,perfetto.protos.InputMethodManagerServiceTraceProto,perfetto.protos.InputMethodServiceTraceProto,perfetto.protos.ViewCapture,perfetto.protos.WindowManagerConfig,perfetto.protos.WindowManagerTraceEntry " +
"--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_winscope_filegroup_proto",
],
static_libs: [
"libprotobuf-java-lite",
],
}
java_library {
name: "perfetto_config_java_protos",
srcs: [
":perfetto_config_filegroup_proto",
],
static_libs: [
"libprotobuf-java-lite",
],
proto: {
type: "lite",
canonical_path_from_root: false,
},
}
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",
"mm_events",
"traced_perf",
"trigger_perfetto",
],
}