1// These targets are appended to the autogenerated Android.bp by tools/gen_android_bp. 2 3java_library_host { 4 name: "perfetto_config-full", 5 proto: { 6 type: "full", 7 }, 8 srcs: [ 9 "protos/perfetto/config/perfetto_config.proto", 10 ], 11} 12 13java_library { 14 name: "perfetto_config-lite", 15 proto: { 16 type: "lite", 17 }, 18 srcs: [ 19 "protos/perfetto/config/perfetto_config.proto", 20 ], 21} 22 23java_library_host { 24 name: "perfetto_trace-full", 25 proto: { 26 type: "full", 27 }, 28 srcs: [ 29 "protos/perfetto/trace/perfetto_trace.proto", 30 ], 31 // b/267831518: Pin tradefed and dependencies to Java 11. 32 java_version: "11", 33} 34 35java_library_host { 36 name: "perfetto_metrics-full", 37 proto: { 38 type: "full", 39 }, 40 srcs: [ 41 "protos/perfetto/metrics/perfetto_merged_metrics.proto", 42 ], 43 // b/267831518: Pin tradefed and dependencies to Java 11. 44 java_version: "11", 45} 46 47// This sample target shows how to use the perfetto client API from within the 48// Android tree. 49cc_binary { 50 name: "libperfetto_client_example", 51 srcs: [ 52 "test/client_api_example.cc", 53 ], 54 static_libs: [ 55 "libperfetto_client_experimental", 56 "perfetto_trace_protos", 57 ], 58 shared_libs: [ 59 "libprotobuf-cpp-lite", 60 "liblog", 61 ], 62 cflags: [ 63 "-DGOOGLE_PROTOBUF_NO_RTTI", 64 "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER", 65 ], 66 defaults: [ 67 "perfetto_defaults", 68 ], 69} 70 71cc_library_static { 72 name: "libstatslog_perfetto", 73 generated_sources: ["statslog_perfetto.cpp"], 74 generated_headers: ["statslog_perfetto.h"], 75 cflags: [ 76 "-Wall", 77 "-Werror", 78 ], 79 export_generated_headers: ["statslog_perfetto.h"], 80 shared_libs: [ 81 "libcutils", 82 "liblog", 83 "libstatssocket", 84 "libutils", 85 ], 86} 87 88genrule { 89 name: "statslog_perfetto.h", 90 tools: ["stats-log-api-gen"], 91 cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_perfetto.h --module perfetto --namespace perfetto,android_internal", 92 out: [ 93 "statslog_perfetto.h", 94 ], 95} 96 97genrule { 98 name: "statslog_perfetto.cpp", 99 tools: ["stats-log-api-gen"], 100 cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_perfetto.cpp --module perfetto --namespace perfetto,android_internal --importHeader statslog_perfetto.h", 101 out: [ 102 "statslog_perfetto.cpp", 103 ], 104} 105 106sh_binary { 107 name: "mm_events", 108 src: "tools/mm_events", 109} 110 111package { 112 default_applicable_licenses: ["external_perfetto_license"], 113} 114 115python_library { 116 name: "perfetto-trace-processor-python", 117 srcs: [ 118 ":perfetto-trace-processor-python-srcs", 119 ":perfetto-trace-uri-resolver-python-srcs", 120 ], 121 data: [ 122 ":perfetto-trace-processor-python-data", 123 ], 124 libs: [ 125 "libprotobuf-python", 126 ], 127 host_supported: true, 128} 129 130filegroup { 131 name: "perfetto-trace-uri-resolver-python-srcs", 132 srcs: ["python/perfetto/trace_uri_resolver/*.py"], 133 path: "python", 134} 135 136filegroup { 137 name: "perfetto-trace-processor-python-srcs", 138 srcs: ["python/perfetto/trace_processor/*.py"], 139 path: "python", 140} 141 142filegroup { 143 name: "perfetto-trace-processor-python-data", 144 srcs: ["python/perfetto/trace_processor/*.descriptor*"], 145 path: "python", 146} 147 148// Added automatically by a large-scale-change that took the approach of 149// 'apply every license found to every target'. While this makes sure we respect 150// every license restriction, it may not be entirely correct. 151// 152// e.g. GPL in an MIT project might only apply to the contrib/ directory. 153// 154// Please consider splitting the single license below into multiple licenses, 155// taking care not to lose any license_kind information, and overriding the 156// default license using the 'licenses: [...]' property on targets as needed. 157// 158// For unused files, consider creating a 'fileGroup' with "//visibility:private" 159// to attach the license to, and including a comment whether the files may be 160// used in the current project. 161// See: http://go/android-license-faq 162license { 163 name: "external_perfetto_license", 164 visibility: [":__subpackages__"], 165 license_kinds: [ 166 "SPDX-license-identifier-Apache-2.0", 167 "SPDX-license-identifier-BSD", 168 "SPDX-license-identifier-CC-BY", 169 ], 170 license_text: [ 171 "LICENSE", 172 ], 173} 174 175gensrcs { 176 name: "perfetto_trace_javastream_protos", 177 srcs: [ 178 ":perfetto_winscope_filegroup_proto", 179 ], 180 tools: [ 181 "aprotoc", 182 "protoc-gen-javastream", 183 "soong_zip", 184 ], 185 cmd: "mkdir -p $(genDir)/$(in) " + 186 "&& $(location aprotoc) " + 187 "--plugin=$(location protoc-gen-javastream) " + 188 "--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 " + 189 "--javastream_out=$(genDir)/$(in) " + 190 "-Iexternal/protobuf/src " + 191 "-Iexternal/perfetto " + 192 "-I . $(in) " + 193 "&& $(location soong_zip) " + 194 "-jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)", 195 data: [ 196 ":libprotobuf-internal-protos", 197 ], 198 output_extension: "srcjar", 199} 200 201java_library { 202 name: "perfetto_config_java_protos", 203 srcs: [ 204 ":perfetto_config_filegroup_proto", 205 ], 206 static_libs: [ 207 "libprotobuf-java-lite", 208 ], 209 proto: { 210 type: "lite", 211 canonical_path_from_root: false, 212 }, 213} 214 215java_library { 216 name: "perfetto_config_java_protos_system_server_current", 217 srcs: [ 218 ":perfetto_config_filegroup_proto", 219 ], 220 static_libs: [ 221 "libprotobuf-java-lite", 222 ], 223 proto: { 224 type: "lite", 225 canonical_path_from_root: false, 226 }, 227 sdk_version: "system_server_current", 228 apex_available: [ 229 "com.android.profiling", 230 ], 231} 232 233prebuilt_etc { 234 name: "perfetto_persistent_cfg.pbtxt", 235 filename: "persistent_cfg.pbtxt", 236 sub_dir: "perfetto", 237 src: "persistent_cfg.pbtxt", 238} 239 240phony { 241 name: "perfetto-extras", 242 required: [ 243 "libperfetto_android_internal", 244 "mm_events", 245 "traced_perf", 246 "trigger_perfetto", 247 ], 248} 249