// 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_config_java_protos",
    srcs: [
        ":perfetto_config_filegroup_proto",
    ],
    static_libs: [
        "libprotobuf-java-lite",
    ],
    proto: {
        type: "lite",
        canonical_path_from_root: false,
    },
}

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