• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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