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