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