| // 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_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", |
| ], |
| } |